课程设计论文_基于单片机的单片机抢答器设计内容摘要:

*********************************************************************************。 键功能程序。 S2GN (S2键键功能程序 ) 1号选手。 S3GN (S3键键功能程序 ) 2号选手。 S4GN (S4键键功能程序) 3号选手。 S5GN (S5键键功能程序 ) 4号选手。 S6GN (S6键键功能程序 ) 开始键。 S7GN (S7键键功能程序 ) 答完键。 S8GN (S8键键功能程序)复位键。 *********************************************************************************。 常数表格。 DISBH(系统提示符 )。 TAB(共阳数 码管字型代码表 )。 *********************************************************************************。 子程序。 KEY(键扫描子程序 )。 KEYCHULI(P1口数据处理子程序 )。 DISP(数码管显示子程序)。 DL(1毫秒延时子程序 )。 *********************************************************************************。 中断服务 程序。 TC0(50ms定时器 0以中断方式 1进行中断)。 *********************************************************************************。 数据存储器变量及常量单元定义;。 40H字节单元 : 十六进制数 存放定时 50ms循环次数。 20H字节单元 : 十六进制数 键值 17。 : 开始键按下标志位。 : 抢答键按下标志位。 : 超时标志位。 78H7FH字节单元 : 显示缓存区。 30H字节单元: 十进制数 秒个位数 非压缩 BCD码。 31H字节单元: 十进制数 秒十位数 非压缩 BCD码。 32H字节单元: 十进制数 秒值 压缩 BCD码。 *********************************************************************************。 伪指令定义区 SECGE EQU 30H SECSHI EQU 31H SHU EQU 32H。 *********************************************************************************。 系统起始程序区 ORG 0000H START: LJMP MAIN ORG 000BH LJMP TC0。 *********************************************************************************。 系统监控程序区 ORG 0030H MAIN: MOV SP, 7FH。 确立堆栈区 MOV PSW, 00H MOV R0, 20H。 RAM区首地址 MOV R7, 96。 RAM区单元个数 ML: MOV @R0, 00H INC R0 DJNZ R7, ML MOV TMOD, 01H。 定时器初始化,定时器 0 以工作方式 1工作 MOV TH0, 3CH MOV TL0, 0B0H SETB EA。 开启总中断 SETB ET0。 开启定时器 0分中断。 *********************************************************************************。 显示系统提示符“ P.” TSF: MOV DPTR, DISBH。 系统初始化后提示符“ P.”字符代 MOV R5, 08H。 码表首地址 MOV R0, 78H DISPTSF: CLR A MOVC A, @A+DPTR 18 MOV @R0, A INC R0 INC DPTR DJNZ R5, DISPTSF LCALL DISP。 *********************************************************************************。 键盘控制指令 TT: LCALL DISP。 调用显示程序 LCALL KEY JB , S2GN。 1号选手 JB , S3GN1。 2号选手 JB , S4GN1。 3号选手 JB , S5GN1。 4号选手 JB , S6GN1。 开始键 JB , S7GN1。 答完键 JB , S8GN1。 复位键 LJMP TT。 无键按下 , 则返回 TT, 继续调显示、扫描按键 S3GN1: LJMP S3GN S4GN1: LJMP S4GN S5GN1: LJMP S5GN S6GN1: LJMP S6GN S7GN1: LJMP S7GN S8GN1: LJMP S8GN。 *********************************************************************************。 键功能区。 \\S2键功能区 S2GN: JNB , W20。 若抢答违规则跳转到 W20 SETB TR0 CLR SETB LCALL DLL W23: MOV R2, 5 MOV R0, 78H MOV @R0, 0 INC R0 MOV @R0, 3 INC R0 W21: MOV @R0, 16 INC R0 DJNZ R2, W21 MOV @R0, 01H。 此段程序为更新显示缓冲区 SETB W24: LCALL DISP 19 LCALL KEY JB , S7GN22。 答完键 JB , S8GN22。 复位键 JB , W25 LJMP W24 W20: MOV R2, 7 MOV R0, 78H W22: MOV @R0, 16 INC R0 DJNZ R2, W22 MOV @R0, 01H LJMP W26 W25: LCALL DISP CLR CLR LCALL KEY JB , S8GN22。 复位键 LJMP W25 W26: LCALL DISP CLR LCALL KEY JB , S8GN22。 复位键 LJMP W26 S7GN22: LJMP S7GN S8GN22: LJMP S8GN。 \\S3键功能区 S3GN: JNB , W30。 若抢答违规则跳转到 W30 SETB TR0 CLR LCALL DLL SETB W33: MOV R2, 5 MOV R0, 78H MOV @R0, 0 INC R0 MOV @R0, 3 INC R0 W31: MOV @R0, 16 INC R0 DJNZ R2, W31 MOV @R0, 02H。 此段程序为更新显示缓冲区 SETB W34: LCALL DISP 20 LCALL KEY JB , S7GN33。 答完键 JB , S8GN33。 复位键 JB , W35 LJMP W34 W30: MOV R2, 7 MOV R0, 78H W32: MOV @R0, 16 INC R0 DJNZ R2, W32 MOV @R0, 02H LJMP W36 W35: LCALL DISP CLR CLR LCALL KEY JB , S8GN33。 复位键 LJMP W35 W36: LCALL DISP CLR LCALL KEY JB , S8GN33。 复位键 LJMP W36 S7GN33: LJMP S7GN S8GN33: LJMP S8GN。 \\S4键功能区 S4GN: JNB , W40。 若抢答违规则跳转到 W40 SETB TR0 CLR LCALL DLL SETB W43: MOV R2, 5 MOV R0, 78H MOV @R0, 0 INC R0 MOV @R0, 3 INC R0 W41: MOV @R0, 16 INC R0 DJNZ R2, W41 MOV @R0, 03H。 此段程序为更新显示缓冲区 SETB W44: LCALL DISP LCALL KEY 21 JB , S7GN44。 答完键 JB , S8GN44。 复位键 JB , W45 LJMP W44 W40: MOV R2, 7 MOV R0, 78H W42: MOV @R0, 16 INC R0 DJNZ R2, W42 MOV @R0, 03H LJMP W46 W45: LCALL DISP CLR。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。