- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计——抢答器源程序
READY EQU 64H;抢答开始标志位
RING EQU 56H;铃声标志位
ORG 0000H
LJMP MAIN
ORG 0003H ;外部中断0入口
LJMP INT0SUB
ORG 000BH ;定时器0入口
LJMP T0INT
ORG 0013H ;外部中断1入口
LJMP INT1SUB
ORG 001BH ;定时器1入口
LJMP T1INT
ORG 0040H
MAIN: MOV R1,#10;设置初始抢答时间10S
MOV R2,#60;设置初始答题时间60S
MOV TMOD,#11H;设置定时器0、1的工作模式
MOV TH0, #0F0H
MOV TL0,#0FFH;设置蜂鸣器发声频率
MOV TH1, #3CH
MOV TL1,#0B0H;设置100ms为一次溢出中断
SETB EA
SETB ET0
SETB ET1
SETB EX0
SETB EX1;允许四个中断T0、T1、INT0、INT1
CLR READY
CLR RING
SETB TR1
SETB TR0;开始就运行定时器,一开始显示000
;查询程序
START: MOV R5, #0BH
MOV R4, #0BH
MOV R3, #0BH
ACALL DISPLAY;未开始抢答时显示000
JB P3.0,NEXT; 主持人未按下开始键,程序跳转到非法抢答中,否则顺序执行延时去抖动
ACALL DELAY
JB P3.0,NEXT;确实按下开始键就向下执行,否则跳到非法抢答查询
ACALL BAOJING;按键发声
MOV A, R1
MOV R6,A;抢答时间R1送R6,
SETB READY;抢答标志位,用于COUNT子程序中判断是否查询抢答
MOV R7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号
MOV R3,#0AH;抢答只显示计时,灭号数
AJMP COUNT;进入倒计时程序
NEXT: JNB P1.0,FALSE1 ;P1.0 为0时转到非法抢答程序,否则顺序执行
JNB P1.1, FALSE2
JNB P1.2, FALSE3
JNB P1.3, FALSE4
JNB P1.4, FALSE5
JNB P1.5, FALSE6
JNB P1.6, FALSE7
JNB P1.7, FALSE8
AJMP START
;非法抢答处理程序
FALSE1:MOV R3,#01H;1号非法抢答
AJMP ERROR
FALSE2: MOV R3, #02H
AJMP ERROR
FALSE3: MOV R3, #03H
AJMP ERROR
FALSE4: MOV R3, #04H
AJMP ERROR
FALSE5: MOV R3, #05H
AJMP ERROR
FALSE6: MOV R3, #06H
AJMP ERROR
FALSE7: MOV R3, #07H
AJMP ERROR
FALSE8: MOV R3, #08H
AJMP ERROR
;调整抢答时间R1的程序
INT0SUB: MOV A, R1
MOV B, #0AH
DIV AB
MOV R5, A
MOV R4, B
MOV R3, #0AH
ACALL DISPLAY ;在两个LED上显示抢答时间倒计时R1
JNB P3.4,QIANGADD ;P3.4为加1s键,如果按下跳到QIANGADD,否则顺序执行
JNB P3.5,QIANGSUB ;P3.5为减1s键,如果
文档评论(0)