版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 单片机的接口技术,PC机除了主机以外还需要哪些部分呢?,单片机电路有时候也需要键盘、显示等外设。,本章主要内容,键盘 显示器 A/D转换 D/A转换,7.1 键盘与计算机接口,非编码键盘:按键的动作靠软件识别 编码键盘:由硬件电路产生按键的键值或编号,并由硬件识别闭合键,按下:P1.0输入低电平0 松开:P1.0输入高电平1,键功能的实现: 对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该
2、键的功能程序,执行完后再返回主程序。,抖动、去抖,在按键按下与断开的过程中,按键产生机械抖动。抖动现象将使 CPU产生误判断。,在键数较少时, 可采用硬件去抖, 而当键数较多时, 采用软件去抖,双稳态去抖电路,波,7.1.1 独立式非编码键盘接口,MOV A,#0FFH MOV P1,A MOV A,P1 JNB ACC.0,KEY0 JNB ACC.1,KEY1 ,假设为P1口,电路简单;但键数较多时,需占用较多的I/O线,准双向口:输入时须先写1,用于较多按键,节省I/O线。 采用逐行(逐列)扫描法识别按键,编程较复杂。,7.1.2 行列式非编码键盘接口,关键是如何识别键号,1、键盘工作原
3、理,行线:通过电阻接+5V。没有键闭合时,行线呈高电平; 某键闭合时,该键对应的行线和列线被短路。此时行线电平由列线电位所决定。,按键识别扫描法,例:键盘扫描程序,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 TRYKLINE3: JB ACC.0,LINE4 MOV A,#0C
4、H AJMP TRYKLINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3BACK: RET,7.1.3单片机对非编码键盘的控制,程序扫描方式 CPU不断调用键盘处理程序,对键盘进行扫描 定时扫描方式 利用定时器的溢出中断请求,每隔一定的时间对键盘扫描一次 中断扫描方式 提高CPU的效率,当键盘上有键闭合时产生中断请求,7.2 LED显示器及接口设计,1、由发光二极管组成,分共阳、共阴两种。,Low Emitting Diode,问题引入:,LED显示器如何显示出指定数字/字符?,2. LED
5、显示字符方法: COM接低电平; 各输入端输入一个显示代码,如5BH01011011,对应c,f灭,而a,b,d,e,g点亮,则LED显示字符“2” 显示各种字符的代码见下表。对于共阳极LED,将显示代码取反。 若显示小数点,可利用D7位。,限流电阻,字型表,静态显示方式,连接 所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。 特点 原理简单;显示亮度强,无闪烁;占用I/O资源较多。 常用于位数较少的场合。,静态显示方式,动态显示方式,动态显示方式,将各个显示器的输入(段选)线并联,由一个I/O口提供字形代
6、码;由另一个I/O口提供位选代码。采用软件扫描显示方法,某个时刻只点亮1个显示器,点亮时间不超过20ms,分时逐个点亮LED。,与静态显示相比,特点: 节省硬件电路及I/O资源; 占用CPU时间多; 亮度相对较低; 适用于LED位数较多的场合。,利用视觉暂留特性,怎样实现显示呢?,延时时间若为1s或10ms,看到的现象分别是什么?,问题1:当数码管显示数字时,怎样使用查表程序,1. 查表方法,2. 表格建立,问题2:从缓冲区取数据的查表方法,MOV R1,#40H,MOV A,R1 MOVC A,A+DPTR MOV P2, A,根据缓冲区内容查表,设显示缓冲区首地址,如何取显示的下一位?,I
7、NC R1,根据缓冲区的数据显示,例:6位共阴LED。利用8155的PA口(假设地址7F01H)作为位选,75452反相驱动;PB口(7F02H)作为段选,7407同相驱动。在片内RAM中设一显示缓冲区79H7EH,依次存放要显示的6个字符(高4位清0,即0009H,0A0FH)。反复调用显示子程序。,键盘和显示器综合应用停车场计数器,硬件设计 软件设计,硬件电路设计,显示部分 计数部分,实际电路多数采用传感器,这里用按键模拟代替,停车场计数器程序设计,编写程序的基本思路 主程序完成单片机的初始设定、初始显示等 两个按键可采用查询或者中断方式,本例子采用中断方式,各段功能程序地址确定,MAIN
8、主程序流程,进车中断子程序模拟“进车”按键按下后,出车中断子程序,DEC,总结,通过静态显示和独立式按键完成了一个应用系统的设计。 实际系统通常需传感器。,思考,LCD液晶显示器,Liquid Crystal Display,微功耗、体积小、显示内容丰富、超薄轻巧。,这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。,任务:如何在LCD的指定位置显示出 指定的字符以及字符串。,2行16列,Hello world,主要内容,TC1602A LCD模
9、块引脚及结构 单片机与字符型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模块,Vss: +5V电源管脚(Vcc) VDD: 地管脚(GND) Vo: 液晶显示驱动电源(0V5V),V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。,一、TC1602A LCD模块引脚及结构,1,2,3,4,5,6,7,8,9,10,
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,3,4,5,6,7,8,9,10,11,12,13,14,15,16,VSS,VDD,
11、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,DB1,A,DB3,DB2,DB5,DB4,DB7,DB6,K,LCD模块,RS:数
12、据和指令选择控制端,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,return,单片机与LCD模块硬件连接,连线表:,三、LCD接口程序设计,程序设计 功能设置 写命令子程序 LCD初始化:按一定顺序写命令字 如:写清屏命令字、写DDRAM光标定位地址命令字 显示数据 写数据子程序 读入状态字读状态子程序,1
13、. 写命令,读写操作、屏幕和光标的操作都是通过指令编程来实现,清除屏幕-01H ,光标复位到地址00H位置,光标复位。光标返回到地址00H,return,光标和显示模式设置。I/D:光标移动方向,1:右移,0:左移; S:屏幕上所有文字是否左移或者右移。S=1:移位 S=0:不移位,设整体显示开关(D),光标显示开关(C),光标位的字符闪耀(B) D=1;C=0;B=0 000011000cH,S/C:高电平时移动显示的文字,低电平时移动光标,设接口数据位数(DL),显示行数(N),及字型(F) DL=1,8位 =0: 4位 N=1:2行 =0:1行 F=1:510 =0: 57 001110
14、0038H,字符发生器RAM地址设置,设置DDRAM地址,为显示定位,读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。,定位光标位置,把显示数据显示在某个位置,就是把显示数据写在相应的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,0c
15、dH,0ceH,0cfH,2. 写数据,3. 读状态,液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。,例如要在液晶模块的第二行第一个字符的位置显示字母“A”,第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+1
16、0000000B(80H)=11000000B(C0H),LCD显示程序设计,程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序 ,然后输入显示位置的地址,最后输入要显示的字符的代码。,lcd_rs bit P3.0 ;LCD寄存器选择 lcd_rw bit P3.1 ;LCD读写控制 lcd_e bit P3.2 ;LCD选通 lcdio equ P1 lcdbusy equ 33H ;LCD忙寄存 lcddata equ 34H ;LCD传递数据 ORG 0000H ljmp main ;
17、复位入口,转主程序 ORG 030H Main: mov sp,#50H ;设置堆栈指针 mov dptr,#char1 lcall delay lcall delay lcall lcd_init ;调液晶初始化 lcall lcd_sendchar loop: nop Ajmp loop,lcd_init_3: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_3 mov lcddata,#0dH;显示状态设置 lcall lcd_writecomm lcall delay lcd_init_4: lcall lcd_readbusy
18、mov a,lcdbusy cjne A,#0,lcd_init_4 mov lcddata,#01H ;清屏 lcall lcd_writecomm lcall delay ret,lcd_init: ;液晶初始化程序 lcd_init_1: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_1 mov lcddata,#38H; 8位2行5x7点阵 lcall lcd_writecomm lcall delay lcd_init_2: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init
19、_2 mov lcddata,#06H;文字不动,光标自 ;动右移 lcall lcd_writecomm lcall delay,lcd_sendchar: ;发送字符 lcd_sendchar_1: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_1 mov lcddata,#80H; lcall lcd_writecomm lcall delay mov r1,#16 lcd_sendchar_2: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_2 CLR A movc A,A+DPTR Inc dptr mov lcddata,A lcall lcd_writedata lcall delay djnz r1,lcd_sendchar_2,lcd_sendchar_3: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_3 mov lcddata,#0c0H; lcall lcd_writecomm lcall delay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建立健全原材料采购制度
- 上海建设管理职业技术学院《会计学原理》2025-2026学年期末试卷
- 沈阳药科大学《材料成形工艺基础》2025-2026学年期末试卷
- 上海视觉艺术学院《播音主持创作基础》2025-2026学年期末试卷
- 上海科学技术职业学院《特殊教育概论》2025-2026学年期末试卷
- 上海城建职业学院《环境保护法》2025-2026学年期末试卷
- 上海出版印刷高等专科学校《服装材料学》2025-2026学年期末试卷
- 山西中医药大学《铁运输道收入管理》2025-2026学年期末试卷
- 沈阳建筑大学《C语言》2025-2026学年期末试卷
- 苏州大学《旅游政策法律法规》2025-2026学年期末试卷
- 2026湖北宜昌夷陵区小溪塔街道办事处招聘民政助理1人笔试备考试题及答案解析
- 2026新疆兵团第七师胡杨河市公安机关社会招聘辅警358人考试参考试题及答案解析
- 2024版前列腺癌药物去势治疗随访管理中国专家共识课件
- 2026年基于责任区的幼儿园联片教研活动设计方案
- 《油气管道地质灾害风险管理技术规范》SYT 6828-2024
- 2026新疆喀什正信建设工程检测有限公司招聘12人考试参考试题及答案解析
- GB/T 8175-2025设备及管道绝热设计导则
- 2025年山东省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- 中国医院质量安全管理 第4-6部分:医疗管理 医疗安全(不良)事件管理 T∕CHAS 10-4-6-2018
- 中职旅游专业综合试题
- 晚清末湖北农业改良述略(一)
评论
0/150
提交评论