资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第九章 MCS-51单片机接口电路,9.1 人机接口 9.1.1 LED接口 9.1.2 键盘接口 9.2 数字I/O接口 9.2.1 光电隔离接口 9.2.2 功率输出(继电器)接口 9.3串行接口 9.3.1单片机和PC机通信 9.3.2串行通讯应用及实例 9.3.3 I2C接口存储芯片的应用,单片机接口电路是单片机同外部设备之间实现信息传输的控制电路。,89C51单片机与外设的连接示意图,大多数单片机系统都把外设的状态信息视为输入数据,而把命令信息看成输出数据。,信息形式的转换,速度匹配,单片机接口电路一般要具备两个功能 :,如键盘和打印机,则外部接口只需完成速度匹配任务即可; 如压力、温度等模拟信号,故人机接口不仅要完成速度匹配任务,还要完成信息形式的转换任务。,9.1 人机接口,在单片机应用系统中,通常都要有人机对话功能。它是应用系统与操作人员之间交互的窗口,是系统与外界联系的纽带和界面。,对系统状态实现干预及数据输出设备最常用的是键盘和显示器,单片机中最常用的LED显示器和键盘。,9.1.1 LED接口,1. LED发光二极管,结构:,电致发光的半导体材料,符号:,参数:,导通压降:1.7V1.9V 工作电流:5mA10mA,特点:,低压电源、耗能少、适应性强、多色发光,图9-2为驱动发光二极管的典型应用电路; 其中R2、R3、R4为 对应二极管的限流电阻。,如果希望流过LED的电流ID限制为10mA,则此限流电阻R1为:,当单片机对应端口输出为低电平时,输出端电压接近0V; 若LED正向偏压时,两端电压VD为1.7V,则限流电阻R1两端电压为3.3V。,例9-1:如上图所示,若LED正向偏压时,两端电压VD为1.7V,试选择适当的限流电阻R1,使发光二极管的电流ID限制为8mA,并编程实现发光二极管约2s亮灭一次。,程序代码: #include sbit gate = P10; / 定义P1.0口 void main(void) unsigned int i,j; while(1) for (i=1000; i0; i-) / 双重循环,延时约1s for (j=1000; j0; j-); gate =!gate; / 对P1.0口取反 ,试编制程序,要求当其中某一按键压下时与其对应的二极管将被点亮。,课堂练习,LED数码管如何显示出指定数字/字母?,2. LED数码管,7段数码管内部字段LED和引脚分布图,LED数码管内部连接方式,共阴极接法,共阳极接法,7段LED显示器字符段码表,例9-2:如图所示,编写字符“0-9”的显示子程序。,C51程序代码: /*共阳极LED数码管显示子程序* 入口: 显示字符-定义为变量dis_index 出口: 无 功能: 将显示字符对应的段码送到P2口,实现对应字符的显示功能 */ #include unsigned char code LEDvalue10= 0xc0,0xf9,0xa4,0xb0, 0x99, / 0, 1, 2, 3, 4 0x92,0x82,0xf8,0x80,0x90; / 5, 6, 7, 8, 9 void proc_dis(unsigned char dis_index) P2 = LEDvalue dis_index; / 显示代码传送到P2口 ,9.1.2 键盘接口,键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。 键盘主要有两种结构:独立式按键结构、矩阵式按键结构。,9.1.2 键盘接口,键盘系统设计: 首先,确定键盘采用独立式按键结构或矩阵式按键结构。 其次,确定键盘工作方式:采用中断或查询方式输入键操作信息。 最后,设计硬件电路。 在键盘系统中,键闭合和键释放信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均可由软件来完成。,键盘工作方式,查询方式,中断扫描方式,1键盘的键输入程序应完成的基本任务 (1)监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。 (2)判断是哪个键按下。 (3)完成键处理任务。,9.1.2 键盘接口,9.1.2 键盘接口,2从电路或软件的角度应解决的问题 (1)消除抖动影响 抖动时间的长短由按键的机械特性决定,一般为510ms 按键的消抖,通常有软件、硬件两种消除方法。,(2)采取串键保护措施 串键:是指同时有一个以上的键按下。 通常采取的策略:单键按下有效,多键同时按下无效。 (3)处理连击 连击:是一次按键产生多次击键的效果。 为了消除连击,则要有对按键释放的处理。,例9-3:参照9-9独立式按键接口电路图,编写按键扫描处理子程序。已知按键处理子程序分别为Sub_S1( )、Sub_S2( )和Sub_S3( )。,C51程序代码: #include void key_deal(void) unsigned char Key_value; / 按键键值 P1 |= 0x07; / P1.0P1.2为输入端口 Key_value = P1 ,本例中没有考虑按键消抖的问题。,(2)矩阵式键盘接口设计,矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。可以节省I/O口。,行线通过上拉电阻接到+5V上,并将行线所接的单片机I/O口作为输入端,而列线所接的I/O作为输出端。,例9-4:参照9-12矩阵式键盘接口电路图,编写33矩阵式按键扫描处理子程序。已知按键处理子程序分别为Sub_S1( )、Sub_S2( )、Sub_S9( )。,C51程序代码: #include sbit row1 = P1 0; /定义位变量,参看电路图 sbit row2 = P1 1; sbit row3 = P1 2; sbit col1 = P1 3; sbit col2 = P1 4; sbit col3 = P1 5; void Delay10ms(void); / 10ms软件延时,子程序略,/* * 函数名称:KeyDown() * 功 能:检测键盘是否按下 * 入口参数:无 * 出口参数:返回1表示键盘按下,返回0表示键盘未按下*/ unsigned char KeyDown(void) row1=1; row2=1; row3=1; / 行线设为输入 col1=0; col2=0; col3=0; / 列线全部置低 if(row1=0) | (row2=0) | (row3=0) / 若有任一行线读回状态为低 Delay10ms(); / 10ms延时消抖 if(row1=0) | (row2=0) | (row3=0) / 再次读行线状态,若有任一行线读回状态为低 return 1; / 返回1,表明有键盘按下 else return 0; / 返回0,表明无键盘按下 else return 0; ,/* * 函数名称:KeyUp() * 功 能:检测键盘是否弹起 * 入口参数:无 * 出口参数:返回1表示键盘弹起,返回0表示键盘未弹起 */ unsigned char KeyUp(void) col1=0; col2=0; col3=0; / 列线全部置低 if(row1=1) ,/* 函数名称:KeyValue() * 功 能:检测用户按下的键盘所对应的键盘号 * 入口参数:无 * 出口参数:返回0表示没有键盘被按动,返回19对应被按动的键盘*/ unsigned char KeyValue(void) unsigned char KeyTemp=0; if(KeyDown()=1) / 若键盘被按下 col1=0; col2=1; col3=1; / 将列线1置低,其他列线置高 if (row1=0) KeyTemp=1; / 若行线1读回状态为低,则表明按键1被按下 if (row2=0) KeyTemp=4; / 若行线2读回状态为低,则表明按键4被按下 if (row3=0) KeyTemp=7; / 若行线3读回状态为低,则表明按键7被按下 while ( KeyUp()!=1); / 等待按下的键盘被释放 return KeyTemp; / 返回被按下并被释放的键盘的编号 else return 0; ,void key_deal(void) switch (KeyValue() case 1: Sub_S1();break; / S1按键按下,执行对应子程序 case 2: Sub_S2();break; / S2按键按下,执行对应子程序 case 9: Sub_S9();break; / S9按键按下,执行对应子程序 default: break; ,9.2.1 光电隔离接口,光电隔离电路的作用是在电隔离的情况下,以光为媒介传送信号,对输入和输出电路可以进行隔离。,发光源的引脚为输入端,受光器的引脚为输出端,常见的发光源为发光二极管,受光器为光敏二极管、光敏三极管等等,这样就实现了“电光电”的转换。,9.2.1 光电隔离接口,上图为典型的光电耦合电路。 对于数字量,当输入为低电平“0”时,光敏三极管截止,输出为低电平“0”;,输出端:,输入端:,0,1,0,1,9.2.1 光电隔离接口,上图为典型的光电耦合电路。 对于数字量,当输入为低电平“0”时,光敏三极管截止,输出为低电平“0”; 当输出为高电平“1”时,光敏三极管饱和导通,输出为高电平“1”。,输出端:,输入端:,1,0,1,0,9.2.2 功率输出(继电器)接口,继电器是单片机测控系统中常用的一种控制设备,通俗的意义上来说就是开关,在条件满足的情况下关闭或者开启。,驱动继电器主要考虑以下三个因素: 控制电路的电源电压,能提供的最大电流。 被控制电路中的电压和电流。 被控电路需要几组、什么形式的触点。,9.2.2 功率输出(继电器)接口,驱动继电器的接口电路,驱动芯片,晶体管驱动电路,当ULN2003输入端为高电平时,对应的输出口输出低电平,继电器线圈通电,继电器触点吸合; 当ULN2003输入端为低电平时,继电器线圈断电,继电器触点断开; 在ULN2003内部已集成起反向续流作用的二极管,因此可直接用它驱动继电器。,9.2.2 功率输出(继电器)接口,驱动继电器的接口电路,驱动芯片,晶体管驱动电路,1,0,当晶体管Q1基极被输入高电平时,晶体管饱和导通,集电极变为低电平。 因此继电器线圈通电,触点K1吸合。,9.3 串行接口,9.3.1单片机和PC机通信,PC机可以使用“超级终端”或“串门专家”等软件来进行串口数据的接收和发送。,9.3 串行接口,9.3.1单片机和PC机通信,选择正确的串口(通常PC机有两个串行口,COM1和COM2),设置波特率和通信协议规定的帧格式 。,9.3 串行接口,9.3.1单片机和PC机通信,9.3 串行接口,9.3.2串行通讯应用及实例,AT89C51串
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号