




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
三、IO应用 - LED数码管,X 位X 段数码管,8段LED,段码是按格式:如下图,显示位,段码位,显示位,段码位,即为:0xC0,LED数码管 显示“0”编码,显示位,段码位,即为:0xF9,LED数码管 显示“1”编码,七段共阳数码管显示数据表,LED数码管显示器的显示方法有两种: 静态显示和动态扫描显示。,(一)LED数码管的显示方法,LED静态显示,例: 利用2位LED静态显示“12”,#include unsigned char d1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void main() P0=0xff; P2=0Xff; while(1) P0=d11; /笔段码 P2=d12; /笔段码 思考:如是实现 显示完“12”延时一会儿有显示“34”呢?,#include unsigned char d1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void delay(int m) unsigned int i,j; for (i=0; im; i+) for(j=0; j200;j+) ; void main() P0=0xff; P2=0Xff; while(1) P0=d11; /笔段码”1” P2=d12; /笔段码”2” delay(100); P0=d13; /笔段码”3” P2=d14; /笔段码”4” delay(100); ,静态显示: 就是每一个LED数码管都单独和一个I/O接口相连,CPU只要把欲显示的字型代码送到某个I/O口上,就可以使对应的LED数码管显示所需的数字或符号,此后,即使CPU不再向它输出其它字型码,显示的内容也不会消失。 优点:显示程序十分简单,显示亮度大,节约CPU的工作时间 缺点:占用的I/O口线较多,硬件成本较高。,LED动态显示,#include unsigned char d1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void delay(int m) unsigned int i, j; for (i=0; im; i+) for (j=0; j200;j+) ; void main() while(1) P0=d11; /笔段码 P2_1=0; P2_0=1; /位选码 delay(1); /延时 P2=0XFF; /消隐 P0=d12; /笔段码 P2_1=0; P2_0=1; /位选码 delay(1); /延时 P2=0XFF; /消隐 ,动态扫描显示是指采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。 虽然每个时刻只有一个数码管有效,但只要延时适当,由于人眼的“视觉暂留效应”(约20ms左右),看起来则是同时显示的。 其接口电路是把所有显示器的8个笔划段adp同名端并联接到I/O口上,而每一个显示器的公共极COM是各自独立地受I/O线控制。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。,思考:如何利用下面硬件电路显示:123456?,#include unsigned char d1= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ; unsigned char d2= 0xdf,0xef,0xf7,0xfb,0xfd,0xfe ; void delay ( int m) ; void main() unsigned char i; P0=0XFF; P2=0XFF; while(1) for (i=0; i6; i+) P0=d1i+1; /送笔段码 P2=d2i; /送位选码 delay(1); /延时5ms P0=0XFF; /消隐 ,6位LED动态扫描电路-共阳电路连接,笔段码,位选码,0导通,1关闭,6位LED动态扫描电路-共阴电路连接,笔段码,位选码,1导通,0关闭,四、IO应用 点阵(了解:自学),有兴趣了解一下点阵显示器做广告用,一个好的单片机应用系统,通常要有优秀的人机交互接口。键盘是与单片机进行人机交互的最基本的途径,其以按键的形式来设置控制功能或输入数据。 按键的输入状态本质上是一个开关量。人们通过键盘输入一些命令或数据,以达到控制单片机运行的目的。 常用的键盘有独立式按键键盘和矩阵式按键键盘两种。独立式按键接口简单,适合于简单而且少的开关量的输入。矩阵式按键键盘则适合于输入参数较多、功能复杂的系统,可以最大限度地使用单片机的引脚资源。 本小节主要介绍了独立式按键和矩阵式按键键盘输入的相关知识及其编程接口。,五、IO应用 按键(BUTTON),键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。,(一)独立按键,独立式键盘电路设计时,每个按键的一端与单片机的一个端口引脚相连,另一端接地。 无键按下时,P1的3个I/O口均通过电阻接高电平,信息为“1” 。 有键按下,将使对应的I/O口通过该键接地,信息为“0” 。 独立式按键的程序设计比较简单,一般采用查询方式即可。,防抖动措施,为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。 键数较少时,采用硬件去抖; 键数较多时,采用软件去抖。,按键触点的机械抖动,“软件去抖”思想,软件上采取的措施:在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。,任务:键控闪烁灯,#include void Delayms(unsigned char); /具体定义省略 void main(void) /main函数 P2_0 =1; /按键初始化,防止误读 while(1) /保证系统一直运行 if (P2_0=0) /如果有按键按下 Delayms(10); /延时去抖动 if (P2_0 =0) /再次确认按键 P2_7 = P2_7; while (P2_0 =0); /等待按键释放 ,#include sbit LED = P2_7; sbit KEY = P2_0; void Delayms(unsigned char); void main(void) /main函数 KEY=1; /按键初始化 while(1) /死循环,保证系统一直运行 if (KEY=0) /如果有按键按下 Delayms(10); /延时去抖动 if (KEY=0) /再次确认按键 LED = LED; /将LED取反 while (KEY=0); /等待松开 ,例2:键控花样流水灯,请大家思考,根据流程图采用C51编出任务程序!下节课用带来检查,并计入平时成绩!,例2: 2位十进制按键计数器(0099),请大家思考,采用C51编出任务程序,并画出流程图! 下节课用带来检查,并计入平时成绩!,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。,(二)矩阵按键( keyboard ),行列式键盘,由图可知,一个44的行、列结构,可以构成一个含有16个按键的键盘,节省了很多I/O口。,识别矩阵键盘按键的方法,1、行扫描法; 2、线反转法,判断哪一行有键按下 写端口(0xf0):行线电平=0;列线电平=1。 读端口进行判断:若P1 = 0xf0没有按键压下; 若P10xf0某行有键压下W1,判断哪一列有键按下 写端口(0x0f):行线电平=1;列线电平=0。 读端口进行判断:若P1 = 0x0f没有按键压下; 若P1 0x0f某列有键压下W2, 将W1与W2相“或” 并存于W(形成键值) 闭合键所在行、列的状态均为0,其余皆为1。, 利用查表比对法求出闭合按键的键模。,线反转法思路,例1:矩阵键盘识别,利用LED来显示按键。,#include unsigned char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82, 0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E; unsigned char w; void delay(); /申明函数 void key_scan(); void key_tran(); void main() P1=0XFF; /输入初始化 P0=0x00; /LED开始不亮 while(1) /保证系统一直运行 key_scan(); /键盘扫描程序 key_tran(); /键值译码并显示 ,void key_scan() unsigned char w1,w2; P1=0x0F; w1=P1 ,void key_tran() switch(w) case 0xEE: P0=table0; break; / LED显示0 case 0xED: P0=table1; break; / LED显示1 case 0xEB: P0=table2; break; / LED显示2 case 0xE7: P0=table3; break; / LED显示3 case 0xDE: P0=table4; break; / LED显示4 case 0xDD: P0=table5; break; / LED显示5 case 0xDB: P0=table6; break; / LED显示6 case 0xD7: P0=table7; break; / LED显示7 case 0xBE: P0=table8; break; / LED显示8 case 0xBD: P0=table9; break; / LED显示9 case 0xBB: P0=table10; break; / LED显示A case 0xB7: P0=table11; break; / LED显示B cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村委代签补偿协议书范本
- 文化创意产业基地空地租赁与项目合作开发协议
- 申请商标签协议书范本
- 充电桩充电服务及能源供应合同
- 精细化仓储配送与供应链管理合同
- 茶园土地租赁与茶叶种植技术输出合同
- 知名快餐品牌区域代理权及店铺转让合同范本
- 产科医院护士标准聘用合同及母婴护理
- 餐饮品牌股权投资与转让合同
- 企业常年财务顾问与风险控制协议
- 【MOOC】国际商务-暨南大学 中国大学慕课MOOC答案
- 附件四维性格测试表你的颜色
- 羽毛球社团活动教案记录表
- 《宝葫芦的秘密》作业设计
- 中式面点技师、高级技师理论参考的试题(完整版)实用资料
- 全国社保行政区域划分代码
- GB/T 32892-2016光伏发电系统模型及参数测试规程
- 抹灰施工工艺培训课件
- 部编人教版六年级下册语文 第六单元素养提升卷 优质试题课件
- 集团公司落实子企业董事会职权工作方案
- 教程5.13g加密所属
评论
0/150
提交评论