具体实现功能:
主持人按下抢答按键后,进入抢答模式,8位选手开始抢答,数码管显示抢答成功的选手号码,主持人按键再次按下后复位。
设计介绍
单片机介绍
51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
资料内容
01
仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
02
汇编程序
本设计由汇编语言编写,主代码具体如下:
代码语言:javascript复制 ORG 000
JMP BEGIN
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ; 01234
DB 6DH,7DH,07H,7FH ; 46789
DELAY: MOV R5, #20 ; 延时20×20ms子程序
LOOP4: MOV R6, #50
LOOP5: MOV R7, #100
DJNZ R7, $
DJNZ 6, LOOP5
DJNZ R5, LOOP4
RET
BEGIN: MOV P2, #0FFH ;P2口置高电平,准备接收信号
MOV R4, #0 ; "R4"的位标志值清零。
MOV A, R4 ; "R4"位标志值送A寄存
AGAIN: MOV DPTR, #TABLE ;共阴极数码管代码表首址送
MOVC A, @A DPTR ;取出显示"0"的代码送P口显示
MOV P1, A
LOOP1: MOV A, P3 ;接收P3口的抢答信号。
CPL A ;抢答信号求反
JZ LOOP1 ;如果没有抢答信号再返回LOOP1
LOOP2: RRC A ;有抢答信号则逐次移动判断是那一位抢答
INC R4 ;每移一次位,R4位标志值加1
JNC LOOP2 ;如果没有遇到抢答信号返回LOOP1继续移位
MOV A, R4 ;遇到抢答信号把R4位标志的只送A MOVC A, @A DPTR ;找到相应位的显示代码
MOV P1, A ;送P1口显示
LOOP3: JNB P2.2, BEGIN ;若主持人按了复位信号健则转向程序复位
CPL P2.0 ;若没按复位信号键,则通过P2.2给出高低信号驱动蜂鸣器
LCALL DELAY ;调用延时程序
SJMP LOOP3 ;P2.2口反复间隔0.4秒变化,驱动蜂鸣器
END