单片机接口技术.ppt

上传人:本田雅阁 文档编号:2309346 上传时间:2019-03-19 格式:PPT 页数:79 大小:1.83MB
返回 下载 相关 举报
单片机接口技术.ppt_第1页
第1页 / 共79页
单片机接口技术.ppt_第2页
第2页 / 共79页
单片机接口技术.ppt_第3页
第3页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机接口技术.ppt》由会员分享,可在线阅读,更多相关《单片机接口技术.ppt(79页珍藏版)》请在三一文库上搜索。

1、人机接口 键盘接口 显示器接口 模拟量输入/输出接口 D/A转换接口 A/D转换接口 通信接口,第 章 单 片 机 接口技术,本章内容,Single Chip Microcomputer,1实训目的 (1)利用单片机定时器中断和定时器计数方式实现秒、分定时。 (2)通过LED显示程序的调整,熟悉8051与LED的接口技术,熟悉LED动态显示的控制过程。 (3)通过键盘程序的调整,熟悉矩阵式键盘的接口技术,熟悉键盘扫描原理。 (4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。,实训1简易秒表的制作,PC

2、机除了主机以外还需要哪些部分呢?,单片机电路有时候也需要键盘、显示等外设。,3实训流程图,ORG 0000H AJMP MAIN ORG 000BH AJMP CONT ;主程序 ;初始化程序 MAIN: MOV TMOD,#61H ;置T0方式1定时,T1方式2计数 MOV TH0,#3CH ;T0置初值 MOV TL0,#0B0H MOV TH1,#0C4H ;T1置初值 MOV TL1,#0C4H MOV 20H,#00H ;60秒计数单元置初值 MOV 21H,#14H ;50ms计数单元置初值 MOV SP,#3FH ;堆栈指针置初值 MOV R2,#08H ;LED待显示位数送R2

3、 MOV R0,#30H ;显示缓冲区首址送R0 STAR: MOV R0,#00H ;显示缓冲区清零 INC R0 DJNZ R2,STAR CLR A ;累加器清零,3实训程序,注:其它子程序参考教材,4. 实训分析与总结,例5.4与本实训相比,二者均是秒表,但差别较大。前者采用发光二极管显示,后者采用七段码LED(俗称数码管),后者显示更直观;前者计时采用软件延时,后者采用定时器中断,后者更准确;前者功能单一,程序一旦开始运行,中间过程无法控制,后者功能齐全,可随时启动、停止、清零,后者智能化程度更高。综上所述,后者更实用。,7.1 键盘接口,按键的特点及输入原理 独立式按键 矩阵式按键

4、,按键的特点及输入原理,按键的分类: 触点式:机械;无触点式:电气 键输入原理: 通过按键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。 键功能的实现: 对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,是否有键按下,按键识别:,键抖动及消除:,机械按键抖动时间在5ms10ms之间,硬件方案双稳态去抖电路,软件方案延时

5、10ms20ms后再次判断,消除方法:,求键号,独立式按键,接口电路:,特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。,例1:用P1口检测三个按键的状态并完成相应的功能,解:,资源分配: 用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。,流程图:,ORG 0000H KB: MOV P1,#0FFH MOV A,P1 CPL A ANL A,#0FH JZ KB LCALL D10MS MOV A,P1 CPL A ANL A,#0FH JZ KB CJNE A,#01H,KB01 LCALL PGM1 SJMP KB KB01:

6、CJNE A,#02H,KB02 LCALL PGM2 SJMP KB KB02:CJNE A,#04H,KB LCALL PGM3 SJMP KB END,编程:按三个按键中的任一键都对应一个特定功能。,矩阵式按键,关键:如何判断键号?,接口电路:,特点:按键识别应采用扫描法或线路反转法 编程较为复杂,节省口资源,8键以上使用,键盘扫描子程序一般包括以下内容: 1.判别有无键按下; 2.扫描获取闭合键的行、列值; 3.用计算法或查表法得到键值; 4.判断闭合键释放否,如没释放则继续等待; 5.保存闭合键号。,键按下/释放判断,KS: MOV A,#00H MOV P1,A ;全扫描字#00H

7、送P1口 MOV P1,#0FH MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑,高电平表示有键按下 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下,按键识别扫描法,流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。 键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,例2:键盘

8、扫描程序,SERCH: MOV R2,#0EFH MOV R3,#00H LINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYK LINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08H,AJMP TRYK LINE3: JB ACC.3,LINE4 MOV A,#0CH AJMP TRYK LINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 T

9、RYK: ADD A,R3 BACK: RET,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,中断扫描方式,为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,7.2 显示器接口技术,LED的结构和显示原理 静态显示方式 动态显示方式 动态显示的实现,动态显示方式,问题引入:,LED显示器如

10、何显示出指定数字/字符?,例:模拟产品计数显示电路,编 程,ORG 1000H STAR:MOV TMOD,#60H ;定时器T1工作在方式2计数 MOV TH1,#00H ;T1置初值 MOV TL1,#00H MAIN:MOV P1,#0C0H ;数码管显示0 DISP:JB P3.3,DISP ;监测按键信号 ACALL DELAY ;消抖延时 JB P3.3,DISP ;确认低电平信号 DISP1:JNB P3.3,DISP1 ;监测按键信号 ACALL DELAY ;消抖延时 JNB P3.3,DISP1 ;确认高电平信号 SETB TR1 ;启动计数器 DISP2:MOV A,TL

11、1 MOVC A,A+DPTR ;查表获取数码管显示值 MOV P1,A ;数码管显示计数值 CJNE A,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H DELAY:MOV R2,#14H DELAY1:MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DELAY1 RET END,静态显示方式,连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。 特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多。,动态显示方式,连接 所有LED的段选线共同连接在一起共用

12、一个 8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。,动态显示基本原理,电路的接法决定了必须采用逐位扫描显示方式。 即从段选口送出某位LED的字型码,然后选通该位LED, 并保持一段延时时间。然后选通下一位,直到所有位扫 描完。,要注意的两个问题:,1.字型码通常通过查表指令MOVC来求得.,2.换位显示时通常要加一段程序使所有的LED全灭.,动态显示程序流程图,采用动态扫描方式依次循环点亮各位数码管,构成多位动态数码管显示电路。,开 始,显示缓冲区首地址送R0 显示位数送R2,

13、起始显示位送R3,禁止所有位(关显示),从缓冲区取要显示的数,查表得字型码,指向段选口,送字型码,指向位选口,送位选码,延时,指向显示缓冲区下一个单元,位选码左移,结束,1,1,扫描完一遍吗?,Y,N,试编制程序,要求当其中某一按键压下时与其对应的二极管将被点亮。,课堂练习,7.3 D/A转换器接口,D/A转换器的作用 典型芯片DAC0832 DAC0832的应用,D/A转换器的作用,将数字量转换为模拟量,以便操纵控制对象。,D/A转换器的主要指标 转换速度:一般几十微秒到几百微秒,快速的可达1微秒。 转换精度(分辨率):决定于输入数字量的位数,位数越多,精度越高。,典型芯片-DAC0832介

14、绍,DAC0832是一个八位D/A转换器,转换时间1微秒,结构如下:,DAC0832功能分析,DI0-DI7:转换数据输入 CS:片选信号,因此,DAC0832可以有三种工作形式:直通、单级锁存、两级锁存。,单缓冲方式的接口(1),一个处于直通方式,另一个处于受控的锁存方式,“同时”做何解释?,单缓冲方式的接口(2),两个输入寄存器同时受控的方式,单缓冲方式的应用 产生锯齿波,假定采用接口(1)方式,即输入寄存器受控,而DAC寄存器直通,输入寄存器地址为E000H,产生锯齿波。,源程序清单如下: ORG 0200 MOV DPTR,#0E000H ;指向输入寄存器地址 MOV A,#00H ;

15、转换初值 WW: MOVX DPTR,A ;WR1有效,启动D/A转换 INC A NOP ;延时 NOP AJMP WW,1/28,2/28,3/28,254/28,255/28,0,产生的锯齿波的过程,D/A转换产生的锯齿波,用同样的方法也可以产生三角波、矩形波、梯形波。,若将A的初值改为FF INC改为DEC?,ORG 0200 MOV DPTR,#0E000H ;指向输入寄存器地址 MOV A,#0FFH ;转换初值 WW: MOVX DPTR,A ;WR1有效,启动D/A转换 A NOP ;延时 NOP AJMP WW,DEC,INC,两个锁存器都接成受控锁存方式。,双缓冲方式的接口

16、和应用,对一个数字量的转换,需两步完成,程序如下: MOV DPTR,#00E0H MOVX DPTR,A MOV DPTR,#00C0H MOVX DPTR,A,输入寄存器地址:00E0H DAC寄存器地址:00C0H,你知道它与第二种单缓冲方式的区别吗?,7.4 A/D转换器接口,A/D转换器的作用 典型芯片ADC0809 ADC0809的应用,A/D转换器的作用,将模拟量转换为数字量,以便计算机接收处理,传感器,单片机,双积分式A/D转换器 逐次逼近式A/D转换器。,A/D转换器概述,逐次逼近式典型A/D转换器芯片有: (1)ADC0801ADC0805型8位MOS型A/D转换器 (2)

17、ADC0808 / 0809型8位MOS型A/D转换器 (3) ADC0816 / 0817,典型芯片ADC0809介绍,ADC0809是一个8位8通道的AD转换器。,ADC0809功能分析,CLK:时钟信号,可由单片机ALE信号分频得到。,转换有以下几步:,ALE信号上升沿有效,锁存地址并选中相应通道。 ST信号有效,开始转换。A/D转换期间ST为低电平。 EOC信号输出高电平,表示转换结束。 OE信号有效,允许输出转换结果。,ADC0809和单片机的连接,通道选择表,1. 首先分析各个通道的地址。(IN0到IN7的地址为0000H到0007H),编程应用中断方式,编程:可采用中断、查询两种

18、方式。,中断方式: ORG 0000H ;主程序入口地址 AJMP MAIN ;跳转主程序 ORG OO13H ;中断入口地址 AJMP INT1 ;跳转中断服务程序 MAIN:SETB IT1 ;边沿触发 SETB EA ;开中断 SETB EX1 ;允许中断 MOV DPTR,#0007H ;指向0809 IN7通道地址,MOVX DPTR,A ;启动A/D转换 SJMP $ ;等待中断 INT1: MOVX A,DPTR ;读A/D转换结果 MOV B,A ;存数 RETI ;返回,查询方式: ORG 0000H ;主程序入口地址 AJMP MAIN ;跳转主程序 ORG 1000H ;

19、中断入口地址 MAIN: MOV DPTR,#0007H ;指向0809 IN7通道地址 MOVX DPTR,A ;启动A/D转换 L1: JB P3.3 L1 ;查询 MOVX A,DPTR ;读A/D转换结果 MOV B,A ;存数 SJMP $,分析实训电路板中0809的连接,确定各通道地址。 对通道0输入模拟电压,运行转换程序,用动态显示方式在最右边两个LED显示转换结果。,实训练习,7.4 单片机与LCD 接 口 设 计,任务1:如何在LCD的指定位置显示出 指定的字符。,2行16列,A,b,任务2:如何在LCD的指定位置显示字 符串。,2行16列,Shenzhen Polytech

20、nic,基本内容,LCD接口程序设计*,字符型LCD模块的使用方法,单片机与字符型LCD模块接口电路,NOTICE LCD: Liquid Crystal Display,一、字符型LCD模块,Shenzhen Polytechnic,LCD实验模块的连接管脚,1 2 3 4 5 6 7 8 9,10,11,12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,Vss: +5V电源管脚(Vcc) VDD: 地管脚(GN

21、D) Vo: 液晶显示驱动电源(0V5V),1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源,本实验中采用的是八位连接方法。,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,A:背光控制正电源 K:背光控制地,1,2,

22、3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,单片机与LCD模块之间有四种基本操作: 写命令 读状态 写显示数据 读显示数据,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,VO,RS,R/W,E,DB0

23、,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据 R/W:读写控制线,R/W=0:写操作;R/W=1:读操作 E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机之间将进行一次数据交换,二、单片机与字符型LCD模块接口,数据线:DB7DB0接单片机的P1.7 P1.0,控制端: RS P3.0 R/W P3.1 E P3.2,单片机与LCD模块硬件连接,实验模块:A01、A07 连线表:,动手做,注意:连接时,需要将跳线设置与E端接通,三、LCD接口程序设计,程序设计 功能设置 写

24、命令子程序 LCD初始化:按一定顺序写命令字 如:写清屏命令字、写DDRAM光标定位地址命令字 显示数据 写数据子程序 读入状态字读状态子程序,1. 读状态字,RS (P3.0)=0; R/W(P3.1) =1;,RS EQU P3.0 RW EQU P3.1 E EQU P3.2,E(P3.2):,R/W(P3.1)=1; RS(P3.0)=0;,SETB RW ;RW=1 NOP ;3条 CLR RS ;RS=0 NOP ;3条 SETB E ;E=1 NOP ;3条 MOV A,P1 ;读入状态字 NOP ;3条 CLR E ;E=0 NOP ;3条 CLR RW ;RW=0,STAT:

25、,RET,2. 写命令字(实训教程P33),E:,RS=0; R/W=0;,采用查询方式:读入状态字,再判断忙标志ACC.7。,动手做,假定显示数据已存放到内部RAM的 21H单元,3. 命令字,清除屏幕,置AC为零01H,设光标移动方向并指定整体显示是否移动。 I/D=1:增量方式 I/D=0:减量方式 S=1:移位 S=0:不移位 0000011006H,设整体显示开关(D),光标显示开关(C),光标位的字符闪耀(B) D=1;C=0;B=0 000011000cH,设接口数据位数(DL),显示行数(L),及字型(F) DL=1,8位 =0: 4位 N=1:2行 =0:1行 F=1:510

26、 =0: 57 0011100038H,设置DDRAM地址,为显示定位,4. 初始化LCD,上电,延时20ms,功能设置,延时37us,显示状态设置,延时37us,清屏,延时1.52ms,输入方式设置,初始化结束,38h,0ch,01h,06h,动手做,5. 定位光标位置,把显示数据显示在某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如下:,NOTICE 光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式字设置; 第1行DDRAM地址与第2行DDRAM地址并不连续。,80H,81H,82H,83H,84H,8dH,8eH,8fH,0c0H,0c1H,0c2H,0c3H,0c4H,0cdH,0ceH,0cfH,6. LCD显示程序设计,main,LCD初始化,光标定位,显示字符,动手做,SJMP $,7. 显示数据,对于常用数字、字母等显示数据为其ASCII码,1. 分析下页中LCD与单片机的接口电路,并编制LCD显示字符程序; 2. 查找资料,并整理成文档,题目:LCD介绍,内容包括:LCD的分类、结构、特点及应用等。,习题,单片机与字符型LCD模块接口,数据总线双向驱动器,地址锁存器,地址译码器,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1