单片机课程设计
课程名称: 单片机原理接口技术
实验项目: 智力抢答器
设计目
现电视节目日益丰富中竞赛环节越越中智力抢答器缺器材学期学单片机门课组成员觉试着实现抢答器功令准确公正直观判断出第抢答者通抢答器数码显示蜂鸣器报警指出抢答组终做出种数字式抢答器设计方案通Proteus设计完成利WAVE6000软件编辑程序仿真验证适种竞赛场合
二 设计求
设计智力竞赛抢答器功实现单片机控制满足
(1)容许26组进行抢答
(2)显示抢答组号
(3)组记分记分显示
(4)赛结束时发出报警声
三 设计方案
设计中采单片机AT89C51负责控制部分协调工作 P10P17裁判控制分抢答开始停止键P11—P166组抢答输入口应钮抢答P0口数码段选口位选口P2口低4位外部中断0外部中断1P33控制组答题完成结束计时P34—P35分实现时间加减P36蜂鸣器控制口外部中断部中断存单片机硬件复位端输入持续4机器周期高电实现复位外部接蜂鸣器发出报警音采7SEGMPX4CCBLUE显示阴极高电点亮系统仿真WAVE6000Proteus软件通仿真显示设计系统功程序调试等帮助
四 实验器件
采单片机AT89C5110k拉电阻干钮扬声器晶体振荡器X1电容C1C2带极性电容C3排阻RESPACK8数码7SEGMPX4CCBLUE
五 总体框图
六 硬件设计
总体设计电路图
整系统分:外部振荡电路复位电路 加减分电路蜂鸣器报警电路 抢答电路裁判控制开始停止电路数码显示电路部分
设计核心单片机AT89C51
AT89C51种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)低电压高性CMOS 8位微处理器俗称单片机AT89C2051种带2K字节闪存编程擦读存储器单片机单片机擦读存储器反复擦1000次该器件采ATMEL高密度非易失存储器制造技术制造工业标准MCS51指令集输出脚相兼容功8位CPU闪烁存储器组合单芯片中ATMELAT89C51种高效微控制器AT89C2051种精简版AT89C单片机嵌入式控制系统提供种灵活性高价廉方案
AT89C51 提供标准功:4k 字节Flash 闪速存储器128字节部RAM32 IO 口线两16位定时计数器5量两级中断结构全双工串行通信口片振荡器时钟电路时AT89C51降0Hz静态逻辑操作支持两种软件选节电工作模式空闲方式停止CPU工作允许RAM定时计数器串行通信口中断系统继续工作掉电方式保存RAM中容振荡器停止工作禁止部件工作直硬件复位
振荡电路外部振荡电路两1nF电容晶体振荡器组成
外部震荡电路
外部中断部中断存单片机硬件复位端输入持续4机器周期高电实现复位硬件复位状态知寄存器存储器值恢复初始值设计功中倒计时时间记忆功单片机进行硬件复位软复位软复位实际程序执行完毕程序指针通条跳转指令跳转程序开始
复位电路
P33接口开关意味着答题结束P34接口开关表示抢答相应组加分P35接口开关表示相应组减分
裁判示意开始抢答组抢答成功违规抢答5s倒计时会触发蜂鸣器发出警报P36蜂鸣器控制口
加减分电路蜂鸣器报警电路
P10P17裁判控制分抢答开始停止键P11P166组抢答输入口钮抢答
抢答电路裁判控制开始停止电路
采排阻RESPACK8做拉电阻排阻般应数字电路通常作某行口拉者拉电阻排阻具方性色环电阻相具整齐少占空间优点干固定电阻更方便
数码7SEGMPX4CCBLUE阴极数码
允许抢答开始倒计时15s知道0s5s蜂鸣器会发出警报
第三组抢答答题时间30s5s蜂鸣器会发出警报
没允许抢答抢答器蜂鸣器会发出警报显示组违规抢答图第组违规抢答
图第三组回答正确加分
图第三组回答错误减分
电路具记忆功次抢答抢答组分数图表示第三组已获4分
七软件编程
OK EQU 20H
RING EQU 22H
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP T0INT
ORG 0013H
AJMP INT1SUB
ORG 001BH
AJMP T1INT
ORG 0040H
MAIN MOV R1#0FH
MOV R2#01EH
MOV TMOD#11H设置未定时器模式1
MOV TH0#0F0H
MOV TL0#0FFH越高发声频率越高越尖
MOV TH1#3CH
MOV TL1#0B0H50ms次溢出中断
SETB EA
SETB ET0
SETB ET1
SETB EX1允许3中断T0T1INT0INT1
CLR OK
CLR RING
SETB TR1
SETB TR0开始运行定时器初始显示888果想重新计数重置TH1TL1
查询程序
START MOV R5#00H
MOV R4#00H
MOV R3#00H
ACALL DISPLAY未开始抢答时候显示888
JB P10NEXT
ACALL DELAY
JB P10NEXT抖动果开始键执行否者跳非法抢答查询
ACALL BARK键发声
MOV AR1
MOV R6A送R1>R6R1中保存抢答时间
SETB OK抢答标志位COUNT程序中判断否查询抢答
MOV R30AH抢答显示计时灭号数
AJMP COUNT进入倒计时程序查询效抢答程序COUNT里面
NEXTJNB P11FALSE1
JNB P12FALSE2
JNB P13FALSE3
JNB P14FALSE4
JNB P15FALSE5
JNB P16FALSE6
AJMP START
非法抢答处理程序
FALSE1 ACALL BARK键发声
MOV R3#01H
AJMP ERROR
FALSE2 ACALL BARK
MOV R3#02H
AJMP ERROR
FALSE3 ACALL BARK
MOV R3#03H
AJMP ERROR
FALSE4 ACALL BARK
MOV R3#04H
AJMP ERROR
FALSE5 ACALL BARK
MOV R3#05H
AJMP ERROR
FALSE6 ACALL BARK
MOV R3#06H
AJMP ERROR
INT1(答题错加减分数程序)
INT1SUBMOV R4#0AH
MOV R5#0AH
JNB P34INC1
JNB P35DEC1
JNB P17BACK1
ACALL DISPLAY
AJMP INT1SUB
MOV AR3
SUBB A#01H
JZ XXY1
SUBB A#02H
JZ XXY2
SUBB A#03H
JZ XXY3
SUBB A#04H
JZ XXY4
SUBB A#05H
JZ XXY5
SUBB A#06H
JZ XXY6
XXY1MOV R741H
XXY2MOV R742H
XXY3MOV R743H
XXY4MOV R744H
XXY5MOV R745H
XXY6MOV R746H
INC1INC R7
CJNE R3#01HL1
MOV 51HR7
L1CJNE R3#02HL2
MOV 52HR7
L2CJNE R3#03HL3
MOV 53HR7
L3CJNE R3#04HL4
MOV 54HR7
L4CJNE R3#05HL5
MOV 55HR7
L5CJNE R3#06HLL
MOV 56HR7
LLACALL DELAY1
AJMP INT1SUB
DEC1DEC R7
ACALL DELAY1
AJMP INT1SUB
BACK1RETI
倒计时程序(抢答倒计时回答倒计时跳改程序)
COUNT MOV R0#00H重置定时器中断次数
MOV TH1#3CH
MOV TL1#0B0H重置定时器
RECOUNTMOV AR6R6保存倒计时时间前先抢答时间回答时间R6
MOV B#0AH
DIV AB十分出位十位
MOV 30HA十位存(30H)
MOV 31HB位存(31H)
MOV R530H取十位
MOV R431H取位
MOV AR6
SUBB A#07H
JNC LARGER5s跳LARGER等5s会提醒
MOV AR0
CJNE A#0AHFULL1s中05s运行
CLR RING
AJMP CHECK
FULLCJNE A#14HCHECK面时1s情况报警显示号数清R0重新计数
SETB RING
MOV AR6
JZ QUIT计时完毕
MOV R0#00H
DEC R6秒标志减1
AJMP CHECK
LARGER MOV AR0
CJNE A#14HCHECK果1s运行否者跳查停显示
DEC R6计时秒R6动减1
MOV R0#00H
CHECK JNB P17QUIT停止键退出
ACALL DISPLAY
JB OKACCOUT果抢答倒计时查询抢答否者跳查询继续倒数(里起锁抢答作)
AJMP RECOUNT
ACCOUTJNB P11TRUE1
JNB P12TRUE2
JNB P13TRUE3
JNB P14TRUE4
JNB P15TRUE5
JNB P16TRUE6
AJMP RECOUNT
QUITCLR OK果停止键执行程序
CLR RING
AJMP START
正常抢答处理程序
TRUE1 ACALL BARK键发声
MOV AR2
MOV R6A抢答时间R2送R6
MOV R3#01H
MOV R741H
CLR OK答题计时查询抢答锁抢答
AJMP COUNT
TRUE2ACALL BARK
MOV AR2
MOV R6A
MOV R3#02H
MOV R742H
CLR OK
AJMP COUNT
TRUE3ACALL BARK
MOV AR2
MOV R6A
MOV R3#03H
MOV R743H
CLR OK
AJMP COUNT
TRUE4ACALL BARK
MOV AR2
MOV R6A
MOV R3#04H
MOV R744H
CLR OK
AJMP COUNT
TRUE5ACALL BARK
MOV AR2
MOV R6A
MOV R3#05H
MOV R745H
CLR OK
AJMP COUNT
TRUE6ACALL BARK
MOV AR2
MOV R6A
MOV R3#06H
MOV R746H
CLR OK
AJMP COUNT
犯规抢答程序
ERRORMOV R0#00H
MOV TH1#3CH
MOV TL1#0B0H
MOV 34HR3犯规号数暂存(34H)
HERE MOV AR0
CJNE A#0AHFLASH05s运行>灭停响
CLR RING
MOV R3#0AH
MOV R4#0AH
MOV R5#0AH三灯全灭
AJMP CHECK1
FLASHCJNE A#14HCHECK1面系1s情况响显示号数清R0重新计
SETB RING
MOV R0#00H
MOV R334H取回号数
MOV R5#0BH
MOV R4#0BH显示FF号数
AJMP CHECK1
CHECK1JNB P17QUIT1
ACALL DISPLAY
AJMP HERE
QUIT1 CLR RING
CLR OK
AJMP START
显示程序
DISPLAYMOV 41H51H
MOV 42H52H
MOV 43H53H
MOV 44H54H
MOV 45H55H
MOV 46H56H
MOV DPTR#DAT1查表显示程序利P0口做段选码口输出P2低三位做位选码输出
MOV Ar5
MOVC A@A+DPTR
MOV P2#01H
MOV P0A
ACALL DELAY
MOV DPTR#DAT2
MOV Ar4
MOVC A@A+DPTR
MOV P2#02H
MOV P0A
ACALL DELAY
MOV Ar3
MOVC A@A+DPTR
MOV P2#04H
MOV P0A
ACALL DELAY
MOV AR7
MOVC A@A+DPTR
MOV P2#08H
MOV P0A
ACALL DELAY
RET
DAT1DB 00H06h5bh4fh66h6dh7dh07h7fh6fh00H71H
灭123456789灭F
DAT2DB 3fh06h5bh4fh66h6dh7dh07h7fh6fh00H71H
第零相十位果零显示熄灭
加减时间延时(起会加N数)
DELAY1 MOV 35H#08H
LOOP0 ACALL DISPLAY
DJNZ 35HLOOP0
RET
延时(显示抖动)
DELAY MOV 32H#12H
LOOP MOV 33H#0AFH
LOOP1 DJNZ 33HLOOP1
DJNZ 32HLOOP
RET
发声程序
BARK SETB RING
ACALL DELAY1
ACALL DELAY1
CLR RING键发声
RET
TO溢出中断(响铃程序)
T0INT MOV TH0#0ECH
MOV TL0#0FFH
JNB RINGOUT
CPL P36RING标志位1时候P36口短取反喇叭发出定频率声音
OUT RETI
T1溢出中断(计时程序)
T1INT MOV TH1#3CH
MOV TL1#0B0H
INC R0
RETI
END
八 调试程
首先新建Design界面中画出完整电路图保存电路图点击Source→AddRemove Source Files添加编写程序点击Source→Build All仿真
初次调试没成功发现时加载错程序错误重复文件名导致加载正确程序发现处错误某注释前忘记加分号导致程序法识等程序已WAVE6000运行出现错误较少
终出正确仿真结果
软件没问题发现整系统功正常数码显示数字混乱仔细检查发现应该阳数码错接成阴数码纠正发现显示计时两位数字显示颠倒明显片选端两条线接反
述错误全部改正系统求正常工作
九 设计总结
通次设计学会Proteus软件基操作教训时间程中定认真仔细调试中问题粗心造成
次课程设计中学许关实践东西书法学课程设计程中需单片机AT89C51性工作原理定程度解需网查资料解相关参数便应然课堂学少设计实例实际操作中定困难缺乏实践原致应该常参实践学东西更应
课程设计程中学Proteus软件基操作WAVE6000已实验中涉已掌握Proteus进行电路图绘制仿真学Proteus基应软件学帮助设计许常见电路电路图进行调试仿真
十 参考文献
单片机原理接口技术(第版)
豆丁网
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档