Vcc o- U 信号灯控制 ULA Q UIB. UICQ U U2A& U2B U 电路 P20 P21 2 223 P26 s S3 Vor o EA 12MHz E
http://www.wenyuan.com.cn/webnew/ 信 号 灯 控 制 电 路
10.22独立式键盘应用实例 开始 Y P10按下? 执行P1.0键功能程序 信号灯控制程序设计流程图 Y P11按下? 执行P11键功能程序 P12按下? 执行P12键功能程序 Y P13按下? 执行P13键功能程序 版社
http://www.wenyuan.com.cn/webnew/ 10.2.2 独立式键盘应用实例 信 号 灯 控 制 程 序 设 计 流 程 图
0RG0000H MOV SP #60H MOV P2, #00H MOV P1 #OFH START: JNB P1.0 AO 如P1.0键按下,就跳至A0 UNB P1.1 A1 如P1.1键按下,就跳至A1 JNBP1.2,A2;如P1.2键按下,就跳至A2 UNB P1.3 A3 ;如P1.3键按下,就跳至A3 灯控制参考程序 SJMP START *******左移********************冰* A0: MOV DPTR,#TAB;左移常数表首地址送DPTR ACALL DI SP SJMP START *******右移******************* A1: MOV DPTR,#TAB1;右移常数表首地址送DPTR ACALL DI SP SJMP START *******闪烁********************** A2: MOV DPTR,#TAB2;闪烁常数表首地址送DPTR ACALL DI SP SJMP START
http://www.wenyuan.com.cn/webnew/ ORG 0000H MOV SP, #60H MOV P2, #00H MOV P1, #0FH START: JNB P1.0, A0 ; 如P1.0键按下,就跳至A0 JNB P1.1, A1 ; 如P1.1键按下,就跳至A1 JNB P1.2, A2 ; 如P1.2键按下,就跳至A2 JNB P1.3, A3 ; 如P1.3键按下,就跳至A3 SJMP START ********** 左移 ******************************* A0: MOV DPTR, #TAB ; 左移常数表首地址送DPTR ACALL DISP SJMP START ********* 右移 ******************************** A1: MOV DPTR, #TAB1 ; 右移常数表首地址送DPTR ACALL DISP SJMP START ********* 闪烁 ******************************** A2: MOV DPTR, #TAB2 ; 闪烁常数表首地址送DPTR ACALL DISP SJMP START 信 号 灯 控 制 参 考 程 序
******流水追逐******************* A3: MOV DPTR,#TAB3;流水追逐常数表首地址送DPTR ACALL DI SP SJMP START *******LED显示控制子程序*********** 功能:根据常数表控制P2口的LED发光 信入口:常数表的地址送到DPR 出口:无 *米*****米****水*****米***米水水*****水冰**冰水水半** 制 DISP: CLR A 参 MOVC A. @A+DPTR 老 CJNE A #OAH, L00P1 程 RET 序1001:0P2A MOV R3.#20 ACALL DELAY INC DPTR JMP DI SP
http://www.wenyuan.com.cn/webnew/ ******** 流水追逐 ***************************** A3: MOV DPTR, #TAB3 ; 流水追逐常数表首地址送DPTR ACALL DISP SJMP START ********* LED显示控制子程序 ***************** 功能:根据常数表控制P2口的LED发光 入口:常数表的地址送到DPTR 出口:无 ******************************************** DISP: CLR A MOVC A, @A+DPTR CJNE A,#0AH,LOOP1 RET LOOP1: MOV P2,A MOV R3,#20 ACALL DELAY INC DPTR JMP DISP 信 号 灯 控 制 参 考 程 序
DELAY: MOV R4. #20 D1:MoVR5,#248 010 信号灯控制参考程序 DJNZ R5, S DJNZ R4. D1 DJNZ R3. DELAY RET TAB: DB 01H 03H 07H OFH. 1FH 3FH. 7FH OFFH, OAH 左移 TAB1: DB 80H. OCOH, OEOH OFOH OF8H OFCH OFEH OFFH OAH 右移 TAB2: DB OFFH 00H OFFH 00H. OFFH 00H OFFH 00H OAH ;闪烁 TAB3:DB01H,02H,06H,08H,10H,20H,60H,80H,0AH ;流水追逐 END 说明:本例中,根据所按下的键输入不同的常数表地址到DPTR,然后再 调用显示子程序(DPTR为D$P程序的入口条件),从而根据不同的参数控 制发光二极管的变化规律。显然通过改变常数表可任意设定发光规律, 读者可以试一下。调用子程序,可使程序设计实现模块化,但必须明确 子程序的功能、入口和出口参数 通过以上两个实例可以看出独立式键盘应用的特点:识别键盘比较容易 键上用一根线,接位较多时(38个意用版社
http://www.wenyuan.com.cn/webnew/ DELAY: MOV R4,#20 D1: MOV R5,#248 DJNZ R5, $ DJNZ R4, D1 DJNZ R3, DELAY RET TAB : DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH ; 左移 TAB1: DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH ; 右移 TAB2: DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH ; 闪烁 TAB3: DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH ; 流水追逐 END 信 号 灯 控 制 参 考 程 序 ⚫ 说明:本例中,根据所按下的键输入不同的常数表地址到DPTR,然后再 调用显示子程序(DPTR为DISP程序的入口条件),从而根据不同的参数控 制发光二极管的变化规律。显然通过改变常数表可任意设定发光规律, 读者可以试一下。调用子程序,可使程序设计实现模块化,但必须明确 子程序的功能、入口和出口参数。 ⚫ 通过以上两个实例可以看出独立式键盘应用的特点:识别键盘比较容易, 编程也比较简单,很适合于功能键较少的单片机应用系统。但每一个按 键上用一根口线,当按键较多时(超过8个)应采用矩阵式键盘