120 likes | 331 Views
第 9 章 接口技术. 9.1 LED 显示器接口. 9.2 键盘与单片机接口. 9.3 D/A 转换器接口. 9.4 A/D 转换器接口. 9.5 扩展 IO 口( 8155). a b h. a f b g e c d h. a b h. P 1.0~1.7 MCS-51. COM. COM. 9.1 LED 显示器接口. LED 显示器用于显示工业控制参数、过程状态。 9.1.1LED 数码管
E N D
第9章接口技术 9.1LED 显示器接口 9.2键盘与单片机接口 9.3D/A转换器接口 9.4A/D转换器接口 9.5扩展IO口(8155)
a b h a f b g e c d h a b h P1.0~1.7 MCS-51 COM COM 9.1 LED 显示器接口 LED显示器用于显示工业控制参数、过程状态。 9.1.1LED数码管 共阴极LED和共阳极LED 当LED字段引线与数据线连接,每个显示字形对应一个字形码。 D7 D6 D5 D4 D3 D2 D1 D0 h g f e d c b a
a f b g e c d h a b h P1.0~1.7 MCS-51 COM 显示程序任务: 1)设置显示缓冲区,存放待显示数据。 2)显示译码:程序存储器中建立字形码常数表,查表得出对应数据的字形码。 3)输出显示:输出字形码到显示端口。 例: MOV DPTR,#WTAB;指向字形码表首地址 MOV A,@R0 ;取显示缓冲区中数据 MOVC A,@A+DPTR;查表显示译码 MOV P1,A ;输出显示 … WTAB: DB 3FH,06H,5BH ;字形码表 …
对应字位线: D0 D1 D2 D3 D4 D5 D7 … D1 D0 a b h a b h a b h a b a h a b b h h D0 D1 D2 COM COM COM COM COM COM a f b g e c d h a f b g e c d h 9.1.2LED接口电路 2.动态显示 多位LED共用一个8位字段口,各位LED公共端用字位口控制,扫描输出显示不同字形。 显示多位数据的两种电路: 1)静态显示 显示缓冲区与多位LED对应关系: 每个LED需要一个8位并行口
显示程序: DIS: MOV R0,#7AH ;指向显示缓冲区起始单元 MOV R3,#01H ;字位码初值→R3 MOV A,R3 ;取字位码 DLP: MOV DPTR,#PAAR;指向字位口 (PA口) MOVX @DPTR,A ;输出字位码,显示其中1位 MOV A,@R0 ;取一个显示数据 ADD A,#0CH ;查表偏移量 MOVC A,@A+PC ;取出字形码 INC DPTR ;指向字段口(PB口) MOVX @DPTR,A ;输出字形码 ACALL DLY1MS ;延时1ms INC R0 ;指向显缓区下一单元 MOV A,R3 ;修改字位码 RL A ;显示下一位 MOV R3,A JNB ACC.6,DLP ;未显示到最右边LED,继续显示 RET ;全部扫描一遍,结束 DTAB:DB 0C0H,0F9H,0A4H ;字形表 DB 0B0H,99H, DLY1MS:… ;延时1ms子程序
“ 1 ” “ 0 ” N 有按键信号? <10ms 抖动时间 <10ms Y +5v 延时等待10ms 开关动作时间 >100ms N 仍有按键信号? Y 键盘处理 I/O 接 口 单片机 & N 按键释放? Y +5v 开关 消除抖动电路 & 9.2 键盘与单片机接口 键盘处理程序任务 1)键输入 检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。 硬件电路消除抖动或软件消除抖动。 2)键译码 键号为键盘位置码,根据键号查表得出被按键的键值。键值:数字键0~9、字符键0AH~0FH、功能键10H~ 。 3)键处理 根据键值转移到不同程序段。 若键值属于数字、字符键,则调用显示数字和字符的子程序。 若键值属于功能键,则进行多分支转移,执行各个功能程序段。
+5v C0 C1 R0 R1 +5v P1.0 P1.1 P1.7 键盘 I/O接口 0 1 9.2.1 独立式键盘电路 9.2.2 矩阵式键盘 每个按键单独占有一根I/O接口引线。 1.扫描法 列线输出,行线输入。 列线逐行输出0,某行有按键,行线输入有0,若无按键,行线输入全部为1。 2.反转法 行列线交换输入、输出,两步获取按键键号。
有按键输入? 延时消抖 确有按键? 键扫描求键号 延时等待 按键释放? 键译码求键值 是数字键? 跳转各功能程序 修改显示缓冲区 按键处理程序:
RVER 输入 寄存器 DAC 寄存器 8位 DAC D0~7 IOUT1 - + VO IOUT2 PA0 AGND PA1 9.3 D/A转换器接口 9.3.1 D/A转换原理 n位数字量与模拟量的关系式: VO = VREF / 2n ×D (VREF - 参考电压) 8.3.2 集成D/A转换器 DAC 0832:8位双缓冲器结构的D/A转换器。
100ms DAC 0832与单片机连接 双缓冲器方式:输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。 直通方式:输入寄存器和DAC寄存器共用一个地址,同时选通输出。 例:D/A转换程序,用DAC 0832输出0~5V锯齿波,电路为直通方式。 设VREF= - 5V,DAC 0832地址为7FFFH,脉冲周期要求为100ms。 DACS:MOV DPTR,#7FFFH;0832I/O地址 MOV A,#0 ;开始输出0V DACL:MOVX @DPTR,A ;输出模拟量 INC A ;升压 ACALL DELAY ;延时100ms/256 AJMP DACL ;连续输出 DELAY:… ;延时子程序
IN0 IN1 IN7 多路 转换 开关 A/D转换 A B C 9.4 A/D转换器接口 一.结构 一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。 9.4.1集成A/D转换器 ADC 0809/0808为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。 二.引脚 8路模拟量输入信号端: IN0~IN7 8位数字量输出信号端: D0~D7 通道选择地址信号输入端: ADDA、ADDB、ADDC
MCS-51 ADC0809 8 AD0~7 ALE INT WR P2 .0 RD D0~7 ADDABC CLK EOC ALE SC OE 3 IN0~7 1 ≥1 1 ≥1 1 三.ADC 0809与单片机连接 A/D转换程序:MOV DPTR,#0FE00H ;ADC口地址 MOV A,#00 ;转换IN0 MOVX @DPTR,A ;启动A/D转换 LCALL DELAY ;等待转换结束 MOVX A,@DPTR ;取转换结果