A -DIR: MOV DPTR,#DSEG :数码管译码表首址 P0口送段 MOV RO,#7AH ;待显缓冲区个位地址 !代码,P1 MOV R3,#01H ;个位的位选信号=01H }口送位选 LD1: MOV A, @RO :通过RO间接寻址 信号。 MOVC A,@A+DPTR ;查表 !待显数据 MOV PO,A ;字段码送到P0口 已经放在: MOV P1,R3 ;字位选择送到P1口 LCALL DELY ;调延时1ms子程序 I7FH一7AH INC RO :R0指向下一字节 单 元(分别 MOV A,R3 应十万 JB ACC.5,LD2 :判是否发完6个数? 位→个位) RL A ;R1指向下一个位 使用共阳 MOV R3, A ;位选信号存回R1 译码表。 SJMP LD1 ;跳去再显示下一个数 LD2: RET :发完6个数就返回 DSEG: DB0C0H,0F9H,0A4H,0B0H,99H;共阳译码表 DB 92H, 82H,0F8H, 80H,90H
DIR: MOV DPTR, #DSEG ;数码管译码表首址 MOV R0,#7AH ;待显缓冲区个位地址 MOV R3,#01H ;个位的位选信号=01H LD1: MOV A, @R0 ;通过R0间接寻址 MOVC A, @A+DPTR ;查表 MOV P0, A ;字段码送到P0口 MOV P1,R3 ;字位选择送到P1口 LCALL DELY ;调延时1ms子程序 INC R0 ;R0 指向下一字节 MOV A,R3 JB ACC.5,LD2 ;判是否发完6个数? RL A ;R1指向下一个位 MOV R3,A ;位选信号存回R1 SJMP LD1 ;跳去再显示下一个数 LD2: RET ;发完6个数就返回 DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表 DB 92H, 82H, 0F8H, 80H,90H P0口送段 代码,P1 口送位选 信号。 待显数据 已经放在: 7FH—7AH 单元(分别 对应十万 位→个位) 使用共阳 译码表
共阴型8位动态显示电路 +5V L G1 0 4 G2B P1.0 P1.1 2345 B P1.2 C 77 74138 80C51 P2.7 E Dp b 74377 派 CLK Q0-Q7 8 PO 8 D0-D7 图 共阴型8位动态显示电路 注:74LS377八D边沿触发器,D0>~D7数据输入端,Q0~Q7数据输出端,时钟 输入端(上升沿有效),输出允许控制端(低电平有效)
共阴型8位动态显示电路 注:74LS377八D边沿触发器,D0~D7数据输入端,Q0~Q7数据输出端,时钟 输入端(上升沿有效),输出允许控制端(低电平有效)
第二节键盘接口 键盘接口概述 AT89C52 9Vcc 按键开关 拨动开关 K1 回 ON K2 P1.0 10k2 SW5 K3 P1.1 P0.1 P1.2 254.5678 4卫 P1.3 SW1 P1.4 SW2 SW3 P1.5 P1.6 按键开关符号 拨动开关符号 SW4 P1.7 (a)开关外形 (b)开关与单片机的接口 在单片机应用系统中,通常将按键开关和拨动开关作为简单的 输入设备,其中按键开关常用于开始或结束某项工作,而拨动开关 常用于预置和设定系统的工作状态。开关的外形、符号及其与单片 机的接口如图所示。图中开关直接与AT89C52的P1口连接,与P2口 P3口可采用同样的方法进行连接。但与P0口连接时,需要加3.3 k2~10k2的外部上拉电阻
第二节 键盘接口 一、键盘接口概述 按键开关 按键开关符号 1 2 3 4 5 6 7 8 ON 拨动开关 拨动开关符号 P1.7 AT89C52 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P0.1 VCC 10kΩ K1 K2 K3 K4 SW1 SW2 SW3 SW4 SW5 (a)开关外形 (b)开关与单片机的接口 在单片机应用系统中,通常将按键开关和拨动开关作为简单的 输入设备,其中按键开关常用于开始或结束某项工作,而拨动开关 常用于预置和设定系统的工作状态。开关的外形、符号及其与单片 机的接口如图所示。图中开关直接与AT89C52的P1口连接,与P2口、 P3口可采用同样的方法进行连接。但与P0口连接时,需要加3.3 k~10k的外部上拉电阻
1、按键开关去抖动问题 按下键 垫开键 +5V 前沿抖动 键盘稳定后沿抖动 (a)键输入 (6)键抖动 图 键操作和键抖动 键盘的抖动时间一般为5~10ms,抖动现象会引起 CPU对一次键操作进行多次处理,从而可能产生错误
1、按键开关去抖动问题 键盘的抖动时间一般为5~10ms,抖动现象会引起 CPU对一次键操作进行多次处理,从而可能产生错误