2013年6位抢答器单片机实训报告 - 图文(5)

2019-04-17 14:50

ANL A,P2 ;扫描按键 CJNE A,#0FFH,CHANGE LJMP WAIT1

;--------------------------------------------------- CHANGE: CLR WEI ;定时10s内可以抢答 K1: JB KEY1,K2 LJMP SCAN_KEY1 K2: JB KEY2,K3 LJMP SCAN_KEY2 K3: JB KEY3,K4 LJMP SCAN_KEY3 K4: JB KEY4,K5 LJMP SCAN_KEY4 K5: JB KEY5,K6 LJMP SCAN_KEY5 K6: JB KEY6,WAIT LJMP SCAN_KEY6

;--------------------------------------------------- SCAN_KEY1: CLR WEI LCALL KEY_DEL

JB KEY1,NEXT1 MOV P1,#0FFH

CLR D1

MOV LCDDATA,#80H ;第一行起始字符地址 MOV R1,#10

LCALL ENABLE

MOV DPTR,#TABLE0 ;第一行显示字符表头地址 LCALL DISP ;显示第一行数据 MOV R1,#1

MOV LCDDATA,#0C7H ;第二行起始字符地址 LCALL ENABLE

MOV DPTR,#TABLE1 ;第二行显示字符表头地址 LCALL DISP ;显示第二行数 CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ ;答题倒计时 LCALL KEY_DEL JB KEY11,$

LCALL QUESTION NEXT1: LCALL WAIT SCAN_KEY2: CLR WEI

LCALL KEY_DEL

- 20 - 显示Number

JB KEY2,NEXT2 MOV P1,#0FFH CLR D2

MOV LCDDATA,#80H MOV R1,#10 LCALL ENABLE MOV DPTR,#TABLE0 LCALL DISP MOV R1,#1

MOV LCDDATA,#0C7H LCALL ENABLE MOV DPTR,#TABLE2 LCALL DISP CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ LCALL KEY_DEL JB KEY11,$ LCALL QUESTION NEXT2: LCALL WAIT SCAN_KEY3: CLR WEI

LCALL KEY_DEL JB KEY3,NEXT3 MOV P1,#0FFH CLR D3

MOV LCDDATA,#80H MOV R1,#10 LCALL ENABLE MOV DPTR,#TABLE0 LCALL DISP MOV R1,#1

MOV LCDDATA,#0C7H LCALL ENABLE MOV DPTR,#TABLE3 LCALL DISP CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ LCALL KEY_DEL JB KEY11,$ LCALL QUESTION NEXT3: LCALL WAIT

;第一行起始字符地址

;第一行显示字符表头地址 ;显示第一行数据 ;第二行起始字符地址 ;第二行显示字符表头地址 ;显示第二行数据

;答题倒计时

;第一行起始字符地址

;第一行显示字符表头地址 ;显示第一行数据 ;第二行起始字符地址 ;第二行显示字符表头地址 ;显示第二行数据

;答题倒计时

- 21 - 显示Number

显示Number

SCAN_KEY4: CLR WEI

LCALL KEY_DEL JB KEY4,NEXT4 MOV P1,#0FFH CLR D4

MOV LCDDATA,#80H MOV R1,#10 LCALL ENABLE MOV DPTR,#TABLE0 LCALL DISP MOV R1,#1

MOV LCDDATA,#0C7H LCALL ENABLE MOV DPTR,#TABLE4 LCALL DISP CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ LCALL KEY_DEL JB KEY11,$ LCALL QUESTION NEXT4: LCALL WAIT SCAN_KEY5: CLR WEI

LCALL KEY_DEL JB KEY5,NEXT5 MOV P1,#0FFH CLR D5

MOV LCDDATA,#80H MOV R1,#10 LCALL ENABLE MOV DPTR,#TABLE0 LCALL DISP MOV R1,#1

MOV LCDDATA,#0C7H LCALL ENABLE MOV DPTR,#TABLE45 LCALL DISP CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ LCALL KEY_DEL JB KEY11,$

;第一行起始字符地址

;第一行显示字符表头地址 ;显示第一行数据 ;第二行起始字符地址 ;第二行显示字符表头地址 ;显示第二行数据

;答题倒计时

;第一行起始字符地址

;第一行显示字符表头地址 ;显示第一行数据 ;第二行起始字符地址 ;第二行显示字符表头地址 ;显示第二行数据

;答题倒计时

- 22 - 显示Number

显示Number

LCALL QUESTION NEXT5: LCALL WAIT SCAN_KEY6: CLR WEI

LCALL KEY_DEL

JB KEY6,NEXT6 MOV P1,#0FFH CLR D6

MOV LCDDATA,#80H ;第一行起始字符地址 MOV R1,#10 LCALL ENABLE

MOV DPTR,#TABLE0 ;第一行显示字符表头地址 LCALL DISP ;显示第一行数据 MOV R1,#1

MOV LCDDATA,#0C7H ;第二行起始字符地址 LCALL ENABLE

MOV DPTR,#TABLE46 ;第二行显示字符表头地址 LCALL DISP ;显示第二行数据 CLR BEEP

LCALL DELAY_1S SETB BEEP

JB KEY11,$ ;答题倒计时 LCALL KEY_DEL JB KEY11,$ LCALL QUESTION NEXT6: LCALL WAIT

;--------------------------------------------------- TIME0: INC R3 MOV A,R3

CJNE A,#20,TT2 TT1: CLR A

MOV R3,#00H MOVC A,@A+DPTR MOV P1,A INC DPTR

CJNE A,#3FH,TT2 LJMP OVER TT2: MOV TH0,#3CH ;0.05s MOV TL0,#0B0H SETB TR0

MOV A,#0FFH

ANL A,P2 ;扫描按键 CJNE A,#0FFH,CHANGE1 SJMP LOO CHANGE1:CLR WEI

- 23 - 显示Number

CLR TR0 LOO: RETI

;--------------------------------------------------- ENABLE: CLR RS ;写指令子程序 ; CLR RW CLR EN

LCALL KEY_DEL SETB EN RET

;------------------------------------- QUESTION: MOV DPTR,#TABLE SETB WEI SETB TR0 SJMP $

;------------------------------------- DISP: ;PUSH ACC

MOV A,#00H ;将ACC清零

MOVC A,@A+DPTR ;查表取得要显示的数据 LCALL DISP1 ;写入一个数据

INC DPTR ;数据表指针加1,准备取下一个数据 DJNZ R1,DISP ;一行没有显示完就继续 ;POP ACC RET

;-----------------

DISP1: MOV LCDDATA,A ;写1字节数据到显示端口 SETB RS ; CLR RW CLR EN

LCALL DELAY SETB EN RET

;-----------------

DELAY: MOV R7,#50 ;延时子程序 E1: MOV R6,#50 E2: DJNZ R6,E2 DJNZ R7,E1 RET

KEY_DEL: MOV R7,#50 ;按键消抖程序 E3: MOV R6,#100 E4: DJNZ R6,E4 DJNZ R7,E3 RET

DELAY_1S: MOV R5,#8

E7: MOV R7,#200 ;延时子程序

- 24 -

E5: MOV R6,#200 E6: DJNZ R6,E6 DJNZ R7,E5 DJNZ R5,E7 RET

TABLE0: DB \TABLE1: DB \TABLE2: DB \TABLE3: DB \TABLE4: DB \TABLE45:DB \TABLE46:DB \

TABLE5: DB \TABLE6: DB \TABLE7: DB \TABLE8: DB \

TABLE:DB 6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH ;3FH,06H,5BH 4FH,66H,6DH 7DH 07H,7FH,6FH,00H OVER: MOV LCDDATA,#80H ;第一行起始字符地址 MOV R1,#10 LCALL ENABLE

MOV DPTR,#TABLE7 ;第一行显示字符表头地址 LCALL DISP ;显示第一行数据 CLR BEEP

LCALL DELAY_1S SETB BEEP SJMP $ END

- 25 - 显示Number


2013年6位抢答器单片机实训报告 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:武胜人民法庭土石方工程施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: