ORG OOOOH MOV SP#60H MOV DPTR #TABLE LCALL QL;40到47单元清零 LCALLXS;40到43单元的内容 KK: LCALLJO;检测是否有按键按下 LCALLYSI JB01HKK;循环检测 MOV 40H 41H MOV 42H 43H MOV 431, 45H LCALLXS LCALLYS SJMP KK MOV RO.#40H MOV R2.#08H KKO MOV aRO,#OOH INC RO DNZR2KKO RET ICO CLR OIH MOV Pl,#OFOH MOV P3, #OCFH MOV P3, #OFBH MOV A P1 C NE A,并#0 FOH.KKI SETB OIH MOV P3.#OFFH RET KKI LCALL YS1;延时20Ms,防抖 MOV Pl,#OFOH MOV P3.#OCFH MOV P3,#OFBH MOV API MOV 50H.A MOV Pl,#OFH MOV P3,#OFH MOV P3.#OFBH MOV APl ORL A 50H MOV 50HA MOV A#00H K4: PUSH ACC
21 ORG 0000H MOV SP,#60H MOV DPTR ,#TABLE LCALL QL;40 到 47 单元清零 LCALL XS;40 到 43 单元的内容 KK: LCALL JC;检测是否有按键按下 LCALL YS1 JB 01H,KK ;循环检测 MOV 40H,41H MOV 41H,42H MOV 42H,43H MOV 43H,45H LCALL XS LCALL YS SJMP KK QL: MOV R0,#40H MOV R2,#08H KKO: MOV @R0,#00H INC R0 DJNZ R2,KKO RET JCO: CLR 01H MOV P1,#0F0H MOV P3,#0CFH MOV P3,#0FBH MOV A,P1 CJNE A,#0F0H,KK1 FH: SETB 01H MOV P3,#0FFH RET KK1: LCALL YS1 ;延时 20MS,防抖 MOV P1,#0F0H MOV P3,#0CFH MOV P3,#0FBH MOV A,P1 MOV 50H,A MOV P1,#0FH MOV P3,#0FH MOV P3,#0FBH MOV A,P1 ORL A,50H MOV 50H,A MOV A,#00H KK4: PUSH ACC
MOVCA, OA+DPTR CJNEA, 50H, KK3 POP ACC KK6: MOV 45H.A MOV P3.#OFFH RET KK3: CJNEA, #OFFH, KKs POP ACC SMP FH KK5 POP ACC SMP KK4 MOV A 40H ORL A#OEOH LCALL XSI MOV A41H ORL A#ODOH LCALLXSI LCALLXSI MOV A, 43H LCALLXSI MOV PLA MOV P3, #OI MOV P3.#OFFH ORLA.#OFOH MOV PlA MOV P3, #OEFH MOV P3, #OFFH RET MOV R7.#OAH MOV TMOD#OIH MOV THO.#4CH MOV TLO#OOH SETBTRO CLR TFO CLR TRO DNZR.YSO RET YSI MOV TMOD #OlH
22 MOVC A,@A+DPTR CJNE A,50H,KK3 POP ACC KK6: MOV 45H,A MOV P3,#0FFH RET KK3: CJNE A,#0FFH,KK5 POP ACC SJMP FH KK5: POP ACC INC A SJMP KK4 XS: MOV A,40H ORL A,#0E0H LCALL XS1 MOV A,41H ORL A,#0D0H LCALL XS1 MOV A,42H ORL A,#0B0H LCALL XS1 MOV A,43H ORL A,#70H LCALL XS1 RET XS1: MOV P1,A MOV P3,#0EFH MOV P3,#0FFH ORL A,#0F0H MOV P1,A MOV P3,#0EFH MOV P3,#0FFH RET YS: MOV R7,#0AH YS0: MOV TMOD,#01H MOV TH0,#4CH MOV TL0,#00H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 DJNZ R7,YS0 RET YS1: MOV TMOD,#01H
MOV THO #OCEH MOV TLO#OOH SETB TRO JNB TFOS CLR TFO CLR TR RET TABLE DB OEEHODEH.OBEH,7EH DB OEDHODDHOBDH7DH DB OEBHODBHOBB H7BH DB OEZH.OD7H.OB7H 77H DB OFFH END 十一、分析总结: 假设3号键被按下,那么第一步即在D0-D3输出完全0,然后,读 入D4-D7位,结果D4=0,而D5、D6和D7均为1,因此,第 行出现电平的变化,说明第一行有键按下;第二步让D4--D7输出 完全0,然后,读入D0--D3位,结果D0=0,而D1、D2和D3均 为1,因此,第四列出现电平的变化,说明第四列有键按下。综合 二两步,即第一行和第四列按键被按下,此键即是三号键。 反转法的优点是简练,无论被按键是处于第一列或是最后一列均只 须经过两步便能获得此键所在的行
23 MOV TH0,#0CEH MOV TL0,#00H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET TABLE: DB 0EEH,0DEH,0BEH,7EH DB 0EDH,0DDH,0BDH,7DH DB 0EBH,0DBH,0BB H,7BH DB 0E7H,0D7H,0B7H,77H DB 0FFH END 十一、分析总结: 假设 3 号键被按下,那么第一步即在 D0---D3 输出完全 0,然后,读 入 D4---D7 位,结果 D4=0,而 D5、D6 和 D7 均为 1,因此,第一 行出现电平的变化,说明第一行有键按下;第二步让 D4---D7 输出 完全 0,然后,读入 D0---D3 位,结果 D0=0,而 D1、D2 和 D3 均 为 1,因此,第四列出现电平的变化,说明第四列有键按下。综合一、 二两步,即第一行和第四列按键被按下,此键即是三号键。 反转法的优点是简练,无论被按键是处于第一列或是最后一列,均只 须经过两步便能获得此键所在的行
[2][2[l 宁 IIII
24 G 1 9 DIR 1 A 1 2 B 1 1 8 A 2 3 B 2 1 7 A 3 4 B 3 1 6 A 4 5 B 4 1 5 A 5 6 B 5 1 4 A 6 7 B 6 1 3 A 7 8 B 7 1 2 A 8 9 B 8 1 1 74LS245 G 1 9 DIR 1 A 1 2 B 1 1 8 A 2 3 B 2 1 7 A 3 4 B 3 1 6 A 4 5 B 4 1 5 A 5 6 B 5 1 4 A 6 7 B 6 1 3 A 7 8 B 7 1 2 A 8 9 B 8 1 1 74LS245 G 1 9 DIR 1 A 1 2 B 1 1 8 A 2 3 B 2 1 7 A 3 4 B 3 1 6 A 4 5 B 4 1 5 A 5 6 B 5 1 4 A 6 7 B 6 1 3 A 7 8 B 7 1 2 A 8 9 B 8 1 1 74LS245 G 1 9 DIR 1 A 1 2 B 1 1 8 A 2 3 B 2 1 7 A 3 4 B 3 1 6 A 4 5 B 4 1 5 A 5 6 B 5 1 4 A 6 7 B 6 1 3 A 7 8 B 7 1 2 A 8 9 B 8 1 1 74LS245 A 1 B 2 C 3 G2A 4 G2B 5 G 1 6 Y 7 7 Y 6 9 Y 5 1 0 Y 4 1 1 Y 3 1 2 Y 2 1 3 Y 1 1 4 Y 0 1 5 74LS138 OC 1 C 1 1 1 D 2 2 D 3 3 D 4 4 D 5 5 D 6 6 D 7 7 D 8 8 D 9 1 Q 1 9 2 Q 1 8 3 Q 1 7 4 Q 1 6 5 Q 1 5 6 Q 1 4 7 Q 1 3 8 Q 1 2 O C 1 C 1 1 1 D 2 2 D 3 3 D 4 4 D 5 5 D 6 6 D 7 7 D 8 8 D 9 1 Q 1 9 2 Q 1 8 3 Q 1 7 4 Q 1 6 5 Q 1 5 6 Q 1 4 7 Q 1 3 8 Q 1 2 74ALS573 CAP CAP +5V EA/VP 3 1 X 1 1 9 X 2 1 8 RESET 9 R D 1 7 W R 1 6 IN T0 1 2 IN T1 1 3 T0 1 4 T1 1 5 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 3 9 P01 3 8 P02 3 7 P03 3 6 P04 3 5 P05 3 4 P06 3 3 P07 3 2 P20 2 1 P21 2 2 P22 2 3 P23 2 4 P24 2 5 P25 2 6 P26 2 7 P27 2 8 PSEN 2 9 ALE/P 3 0 TXD 1 1 RXD 1 0 a f b c g d e 1 DPY 2 3 4 5 6 7 a b c d e f g 8 d p d p a f b c g d e 1 DPY 2 3 4 5 6 7 a b c d e f g 8 d p d p a f b c g d e 1 DPY 2 3 4 5 6 7 a b c d e f g 8 d p d p +5v 74LS573 1 2 2 1 a 1 b 2 c 3 d 4 e 5 f 6 g 7 GND 8 h+i 9 G 1 0 LE 1 1 D 1 2 C 1 3 B 1 4 A 1 5 VCC 1 6 14495 a f b c g d e 1 DPY 2 3 4 5 6 7 a b c d e f g 8 d p d p +5V a 1 b 2 c 3 d 4 e 5 f 6 g 7 GND 8 h+i 9 G 1 0 LE 1 1 D 1 2 C 1 3 B 1 4 A 1 5 VCC 1 6 14495 a 1 b 2 c 3 d 4 e 5 f 6 g 7 GND 8 h+i 9 G 1 0 LE 1 1 D 1 2 C 1 3 B 1 4 A 1 5 VCC 1 6 14495 a 1 b 2 c 3 d 4 e 5 f 6 g 7 GND 8 h+i 9 G 1 0 LE 1 1 D 1 2 C 1 3 B 1 4 A 1 5 VCC 1 6 14495
5基于描法的键盘LED显示接口 设计任务:设计一个基于164串行显示的键盘接口。 二、设计要求:利用164的串行功能将键盘上的值在LED上显示出来 该显示应该是串行的,即:按键从左到右串行显示。 三、设计器材:单片机,万用表,仿真机等 四、主要元件清单: 按键:若干个、74LS164:若干个、LED:若干个、晶震 个、电容若干个、电阻若干个、AT89C51一片。 五、完成时间;一周 六、评分标准: 项目 满分 压/元成方案的提出论证 10 要 尿[元成硬件的制作 15 完成软件的编写 10 完成硬件和软件的成功调试 5 |完成原理图的设计 10 完成程序的编写 20 总结 10 七、原理: 利用74LS164的串行功能将键盘上键入的键串行在LED上显示 出来。在如何判别按键的键值,我们通过不断地扫描各行和各列的电
25 5 基于描法的键盘 LED 显示接口 一、设计任务:设计一个基于164串行显示的键盘接口。 二、设计要求:利用164的串行功能将键盘上的值在LED上显示出来, 该显示应该是串行的,即:按键从左到右串行显示。 三、设计器材:单片机,万用表,仿真机等。 四、主要元件清单: 按键:若干个、74LS164:若干个、LED:若干个、晶震一 个、电容若干个、电阻若干个、AT89C51一片。 五、完成时间;一周 六、评分标准: 项目 满分 基 本 要 求 完成方案的提出论证 10 完成硬件的制作 15 完成软件的编写 10 完成硬件和软件的成功调试 25 报 告 完成原理图的设计 10 完成程序的编写 20 总结 10 七、原理: 利用74LS164的串行功能将键盘上键入的键串行在LED上显示 出来。在如何判别按键的键值,我们通过不断地扫描各行和各列的电