版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、异步通信字符格式同步通信数据格式图图8-2,3 8-2,3 两种通信数据格式两种通信数据格式图图9-1 9-1 单片机与外部设备连接图单片机与外部设备连接图输入数据:外设状态输出数据:命令信息图图9-2 9-2 单片机驱动单片机驱动LEDLED如上图所示,若如上图所示,若LED正向偏压时,两端电压正向偏压时,两端电压VD为为1.7V,试选择适当的限流电阻,试选择适当的限流电阻R1,使发光二,使发光二极管的电流极管的电流ID限制为限制为8mA,并编程实现发光二,并编程实现发光二极管约极管约2s亮灭一次。亮灭一次。例例9-19-1#include sbitgate = P10; / 定义定义P1.
2、0口口void main(void)unsigned int i,j;while(1)for (i=1000; i0; i-) / 双重循环,延时约双重循环,延时约1sfor (j=1000; j0; j-); gate =!gate; / 对对P1.0口取反口取反例例9-19-1:C51C51编程编程图图9-3 9-3 七段数码管七段数码管表表9-2 9-2 七段七段LEDLED显示器字符段码表显示器字符段码表显示字符显示字符共阴极段码共阴极段码共阳极段码共阳极段码显示字符显示字符共阴极段码共阴极段码共阳极段码共阳极段码03FHC0HC39HC6H106HF9Hd5EHA1H25BHA4HE
3、79H86H34FHB0HF71H8EH466H99H80H7FH56DH92HP73H82H67DH82HU3EHC1H707HF8HT31HCEH87FH80HY6EH91H96FH90H8.FFH00HA77H88H“灭灭”00HFFHb7CH83H自定义自定义例例9-29-2:如图所示,编写字符:如图所示,编写字符“0-9”0-9”的显示子程序的显示子程序。C51程序代码:程序代码:/*共阳极共阳极LED数码管显示子程序数码管显示子程序* 入口入口: 显示字符显示字符-定义为变量定义为变量dis_index 出口出口: 无无 功能功能: 将显示字符对应的段码送到将显示字符对应的段码送到
4、P2口,实现对应字符的显示功能口,实现对应字符的显示功能*/#include unsigned char code LEDvalue10= 0 xc0,0 xf9,0 xa4,0 xb0, 0 x99, 0 x92,0 x82,0 xf8,0 x80,0 x90; void proc_dis(unsigned char dis_index)P2 = LEDvalue dis_index;/ 显示代码传送到显示代码传送到P2口口二、键盘接口二、键盘接口l 键盘功能键盘功能:实现数据输入、传送命令:实现数据输入、传送命令l 键盘系统设计过程键盘系统设计过程:确定键盘电路结构:确定键盘电路结构 确定
5、键盘确定键盘工作方式工作方式 设计硬件电路设计硬件电路1. 键盘键输入程序应完成的基本任务键盘键输入程序应完成的基本任务 (1) 检测有无键按下,即检测电平的高低状态。检测有无键按下,即检测电平的高低状态。 (2) 判断是哪个键按下。判断是哪个键按下。 (3) 完成键处理任务。完成键处理任务。2. 从电路或软件角度应解决的问题从电路或软件角度应解决的问题二、键盘接口二、键盘接口(1) 消除抖动影响消除抖动影响l 机械弹性开关机械弹性开关抖动抖动l 按键机械特性决定抖动时间按键机械特性决定抖动时间(510ms)l 抖动影响:引起抖动影响:引起CPU误处理误处理l 消抖方法:消抖方法: a) 硬件
6、消抖硬件消抖 适用于键数目较少情况适用于键数目较少情况 b) 软件消抖软件消抖 (软件延时软件延时) 首次检测到有键按下首次检测到有键按下 执行延时执行延时10ms子程序子程序 确认键是否确认键是否 仍保持闭合仍保持闭合 若是,则进行相应处理。若是,则进行相应处理。 二、键盘接口二、键盘接口(2) 采取串键保护措施采取串键保护措施l串键:同时有一个以上的键按下。串键:同时有一个以上的键按下。l 解决措施:单键按下有效,多键同时按下无效。解决措施:单键按下有效,多键同时按下无效。(3) 处理连击处理连击l 连击:一次按键产生多次击键的效果。连击:一次按键产生多次击键的效果。l 要有对按键释放的处
7、理。要有对按键释放的处理。 二、键盘接口二、键盘接口3. 键盘工作方式键盘工作方式 ( (cpucpu检测键盘是否有键按下的方式检测键盘是否有键按下的方式) ) 选取原则:即保证及时响应按键操作,又不过多占用选取原则:即保证及时响应按键操作,又不过多占用cpu工工作时间。作时间。(1). 查询方式查询方式(分两种)(分两种) a) 程序扫描方式:程序扫描方式:在主程序中插入键盘处理(检测)子程序在主程序中插入键盘处理(检测)子程序;主程序执行到该处时,对键盘执行一次扫描检测,判断有;主程序执行到该处时,对键盘执行一次扫描检测,判断有无按键输入。若有则执行对应按键功能子程序。无按键输入。若有则执
8、行对应按键功能子程序。 b) 定时扫描方式:定时扫描方式:利用内部定时器每隔一定时间产生定时中利用内部定时器每隔一定时间产生定时中断,断,cpu响应中断后对键盘进行扫描,判断有无按键输入。响应中断后对键盘进行扫描,判断有无按键输入。 二、键盘接口二、键盘接口l cpu会不断地对键盘进行扫描,大量占用会不断地对键盘进行扫描,大量占用cpu工作时间。工作时间。l 要求键盘扫描时间间隔不能太长(比如要求键盘扫描时间间隔不能太长(比如10ms) (2) 中断扫描方式中断扫描方式 利用单片机外部中断源,响应按键输入信号:无按键利用单片机外部中断源,响应按键输入信号:无按键时,无中断请求;有按键时,时,无
9、中断请求;有按键时,cpu产生中断,并在中断服产生中断,并在中断服务子程序中对键盘进行扫描。务子程序中对键盘进行扫描。 * * 查询方式小结查询方式小结 * * cpu工作效率得以提高,但需占用一个中断资源工作效率得以提高,但需占用一个中断资源 二、键盘接口二、键盘接口4. 键盘电路结构键盘电路结构 两种键盘结构:独立式键盘和矩阵式键盘两种键盘结构:独立式键盘和矩阵式键盘1) 独立式键盘接口设计独立式键盘接口设计 独立式键盘:各按键相互独立,并各占用一根独立式键盘:各按键相互独立,并各占用一根I/O口线,每口线,每根根I/O口线上的按键不会影响其他口线上的按键不会影响其他I/O口线工作状态。口
10、线工作状态。 优缺点:电路配置灵活,软件简单;但按键较多时,优缺点:电路配置灵活,软件简单;但按键较多时,I/O口口浪费很大。浪费很大。 该结构适合按键较少或操作速度较高的场合。该结构适合按键较少或操作速度较高的场合。二、键盘接口二、键盘接口独独立立式式按按键键接接口口 二、键盘接口二、键盘接口独立式按键接口设计举例(例独立式按键接口设计举例(例9-3)参照参照9-9独立式按键接口电路图,编写按键扫描处理子程序。独立式按键接口电路图,编写按键扫描处理子程序。已知按键处理子程序分别为已知按键处理子程序分别为Sub_S1( )、Sub_S2( )和和Sub_S3( )。l 各按键开关采用各按键开关
11、采用上拉电阻上拉电阻,保证按键断开时,保证按键断开时I/O口有确定口有确定高电平,有键按下时对应端口为低电平。高电平,有键按下时对应端口为低电平。l 分析:分析:S1、S2、S3分别接分别接P1.0、P1.1、P1.2端口;端口;P1口为口为准双向准双向I/O口,作为输入口,须先对其置口,作为输入口,须先对其置”1”,有按键时对应,有按键时对应端口为低电平(上拉电阻保证);检测到按键后,调用对端口为低电平(上拉电阻保证);检测到按键后,调用对应按键处理子程序。应按键处理子程序。二、键盘接口二、键盘接口二、键盘接口二、键盘接口#include void key_deal(void) unsign
12、ed char Key_value; / 按键键值按键键值P1 |= 0 x07;/ P1.0P1.2为输入端口为输入端口Key_value = P1 & 07;/ 屏蔽屏蔽P1口高口高5位,取键值位,取键值switch (Key_value) case 6: Sub_S1(); break; / S1按键按下,执行对应子程序按键按下,执行对应子程序 case 5: Sub_S2(); break; / S2按键按下,执行对应子程序按键按下,执行对应子程序 case 3: Sub_S3(); break; / S3按键按下,执行对应子程序按键按下,执行对应子程序 default: br
13、eak;二、键盘接口二、键盘接口2) 矩阵式键盘接口设计矩阵式键盘接口设计 矩阵式键盘矩阵式键盘(行列式键盘):(行列式键盘): 用用I/O接口线组成行、列结构,键位置设在行列的交点上。接口线组成行、列结构,键位置设在行列的交点上。例如:一个例如:一个8位端口采用位端口采用44行列结构,可组成行列结构,可组成16个键的键盘。个键的键盘。 矩阵式键盘常用在按键数量较多的场合矩阵式键盘常用在按键数量较多的场合 工作原理:工作原理: 行线经上拉电阻接行线经上拉电阻接+5V电源。将行线所接电源。将行线所接I/O口作为输入端,口作为输入端,列线所接列线所接I/O口作为输出端。口作为输出端。 若无按键,行
14、线为高电平;若有按键,行线电平由列线决定若无按键,行线为高电平;若有按键,行线电平由列线决定二、键盘接口二、键盘接口 I/O口口(输入端)(输入端) I/O口口(输出端)(输出端)二、键盘接口二、键盘接口 工作过程:工作过程:(a) CPU检测键盘是否有键按下检测键盘是否有键按下 通过读入行线(输入线)状态来判断。具体:所有列线(输通过读入行线(输入线)状态来判断。具体:所有列线(输出线)出线)I/O口置口置”0” 将行线状态读入累加器将行线状态读入累加器A(b) 识别哪个键按下识别哪个键按下 行扫描法:在确认有键按下后,依次将列线置行扫描法:在确认有键按下后,依次将列线置”0”,然后读入,然
15、后读入行线状态;若全为行线状态;若全为”1”,则按下的键不在此列,否则必在此列,则按下的键不在此列,否则必在此列,且是该列与且是该列与”0”状态行线交点上的那个键。状态行线交点上的那个键。例例9-4:参照参照9-12矩阵式键盘接口电路图,编写矩阵式键盘接口电路图,编写33矩阵式矩阵式按键扫描处理子程序。已知按键处理子程序分别为按键扫描处理子程序。已知按键处理子程序分别为Sub_S1( )、Sub_S2( )、Sub_S9( )。二、键盘接口二、键盘接口AT89C52#include sbit row1 = P1 0; /定义位变量,参看电路图定义位变量,参看电路图sbit row2 = P1
16、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;/ 行线设
17、为输入行线设为输入 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
18、 0; 二、键盘接口二、键盘接口/* 函数名称:函数名称:KeyUp()* 功功 能:检测键盘是否弹起能:检测键盘是否弹起* 入口参数:无入口参数:无* 出口参数:返回出口参数:返回1表示键盘弹起,返回表示键盘弹起,返回0表示键盘未弹起表示键盘未弹起*/unsigned char KeyUp (void) col1=0; col2=0; col3=0; / 列线全部置低列线全部置低 if (row1=1) & (row2=1) & (row3=1) / 若全部行线读回状态都为高若全部行线读回状态都为高 Delay10ms(); / 10ms延时消抖延时消抖 if (row1=1
19、) & (row2=1) & (row3=1) / 再次读行线状态,若全部行线读回状态都为高再次读行线状态,若全部行线读回状态都为高 return 1; / 返回返回1,表明所有键盘都处于弹起状态,表明所有键盘都处于弹起状态 else return 0; / 返回返回0,表明有键盘处于按下状态,表明有键盘处于按下状态 else return 0;二、键盘接口二、键盘接口/* 函数名称:函数名称:KeyValue()* 功功 能:检测用户按下的键盘所对应的键盘号能:检测用户按下的键盘所对应的键盘号* 入口参数:无入口参数:无* 出口参数:返回出口参数:返回0表示没有键盘被按动,返
20、回表示没有键盘被按动,返回19对应被按动的键盘对应被按动的键盘*/ unsigned char KeyValue(void) unsigned char KeyTemp=0; if(KeyDown()=1) / 若键盘被按下若键盘被按下 col1=0; col2=1; col3=1; / 将列线将列线1置低,其他列线置高置低,其他列线置高 if (row1=0) KeyTemp=1; if (row2=0) KeyTemp=4; if (row3=0) KeyTemp=7; col1=1; col2=0; col3=1; if (row1=0) KeyTemp=2; if (row2=0) K
21、eyTemp=5; if (row3=0) KeyTemp=8; col1=1; col2=1; col3=0; if (row1=0) KeyTemp=3; if (row2=0) KeyTemp=6; if (row3=0) KeyTemp=9; while ( KeyUp()!=1); / 等待按下的键盘被释放等待按下的键盘被释放 return KeyTemp; / 返回被按下并被释放的键盘的编号返回被按下并被释放的键盘的编号 else return 0;void key_deal (void) switch ( KeyValue() ) case 1: Sub_S1();break;
22、/ S1按键按下,执行对应子程序按键按下,执行对应子程序 case 2: Sub_S2();break; / S2按键按下,执行对应子程序按键按下,执行对应子程序 case 9: Sub_S9();break; / S9按键按下,执行对应子程序按键按下,执行对应子程序 default: break; 二、键盘接口二、键盘接口一、光电隔离接口一、光电隔离接口9.2 数字数字I/O接口接口1、光电隔离电路及其作用光电隔离电路及其作用 在电气隔离(使用不同电源)的输入和输出电路之在电气隔离(使用不同电源)的输入和输出电路之间,加入光电耦合器件,通过光传递信息。间,加入光电耦合器件,通过光传递信息。抑
23、制噪声,屏蔽干扰抑制噪声,屏蔽干扰2、光电耦合器光电耦合器(1)(1)结构:结构: 以光为媒介传输信号的一种以光为媒介传输信号的一种“电电- -光光- -电电”转换器件转换器件9.2 数字数字I/O接口接口发光源发光源(LED)受光器受光器( (光敏三极管光敏三极管) )密闭壳体密闭壳体输入端输入端输出端输出端9.2 数字数字I/O接口接口(2) 工作原理工作原理:A (I/O口口)LED灭时,光敏三极管截止,灭时,光敏三极管截止,A点为低电位点为低电位“0”;LED亮时,光敏三极管导通,亮时,光敏三极管导通,A点为高电位点为高电位“1”。二、功率输出(继电器)接口二、功率输出(继电器)接口9
24、.2 数字数字I/O接口接口1、继电器及其应用、继电器及其应用(1) 什么是继电器?什么是继电器? 单片机测控系统中常用的一种控制设备;一种开关,在单片机测控系统中常用的一种控制设备;一种开关,在一定条件下关闭或开启。一定条件下关闭或开启。(2) 应用:在电子设备和机械设备之间起接口作用;单片机应用:在电子设备和机械设备之间起接口作用;单片机应用系统中转换控制信号。应用系统中转换控制信号。9.2 数字数字I/O接口接口(3) 驱动继电器应考虑的因素驱动继电器应考虑的因素l 控制电路的电源电压,能提供的最大电流控制电路的电源电压,能提供的最大电流l 被控制电路中的电压和电流被控制电路中的电压和电
25、流l 被控电路需要几组、什么形式的触点被控电路需要几组、什么形式的触点(4) 两种驱动电路两种驱动电路继电器驱动接口电路继电器驱动接口电路a) 驱动芯片驱动芯片(ULN2003) b) 晶体管驱动电路晶体管驱动电路 9.2 数字数字I/O接口接口驱动芯片驱动芯片ULN2003信信号号输输入入信信号号输输出出9.2 数字数字I/O接口接口驱动芯片驱动芯片ULN2003信信号号输输入入信信号号输输出出输入输入”1”时,输出为时,输出为”0”,继电器吸合,继电器吸合输入输入”0”时,输出为时,输出为”1”,继电器断开,继电器断开二极管:反向续流,抑制浪涌(瞬时脉冲)二极管:反向续流,抑制浪涌(瞬时脉
26、冲)9.2 数字数字I/O接口接口晶晶体体管管驱驱动动电电路路晶体管晶体管Q1基极输基极输入高电平时,晶体入高电平时,晶体管管饱和导通饱和导通,集电,集电极变为低电平。继极变为低电平。继电器线圈通电,触电器线圈通电,触点点K1吸合。吸合。 限流限流反向反向续流续流9.3 串行接口串行接口 单片机与单片机与PC机串行通信:利用机串行通信:利用”串门专家串门专家”等软件进行等软件进行串口数据的收发。串口数据的收发。 选择正确的串口(通常PC机有两个串行口,COM1和COM2),设置波特率和通信协议规定的帧格式 。9.3 串行接口串行接口9.3 串行接口串行接口串行通讯应用及实例串行通讯应用及实例
27、通信协议:指通信双方的一种约定。通信协议:指通信双方的一种约定。 约定包括对数据格式、同步方式、传送速度、约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。出统一规定,通信双方必须共同遵守。9.3 串行接口串行接口 RS232 异步全双工异步全双工 9600,1, N,8 接收命令通信格式:帧头接收命令通信格式:帧头 + 命令码命令码 + 地址码地址码 + 结束标志结束标志 帧头:帧头: ASCII 码码 AT 命令码(命令码( ASCII 码):码): 抬杆:抬杆: UP 结束标志
28、:结束标志: 16 进制数进制数 0DH 则向地址为则向地址为 11 的挡车器发送抬杆命令的挡车器发送抬杆命令9.3 串行接口串行接口I I2 2C C接口存储芯片的应用接口存储芯片的应用9.3 串行接口串行接口一、一、I2C总线简介:总线简介: 是由是由PHILIPS公司开发的,两线式串行总线(公司开发的,两线式串行总线(1数据线数据线+1时钟线),用于连接微控制器及其外围设备,广泛应用时钟线),用于连接微控制器及其外围设备,广泛应用于单片机控制系统。于单片机控制系统。二、二、I2C总线特点:总线特点: 1. 优点:支持芯片多、协议完善、占用优点:支持芯片多、协议完善、占用I/O线少等。线少
29、等。 2. 允许多个兼容器件共享总线,每个器件有唯一地址识别,允许多个兼容器件共享总线,每个器件有唯一地址识别,且都可以作为主机或丛机,但同时只允许有一个主机。且都可以作为主机或丛机,但同时只允许有一个主机。9.3 串行接口串行接口三、三、I2C总线基本原理总线基本原理89C51SDASCLI2CSRAMSDASCLI2CE2PROMSDASCLI2CI/O口SDASCLI2CADC/DACSDASCLVccRRI2C微控制器MCUSDASCLI2C键盘驱动SDASCLI2CLED/LCD显示SDASCL 串行数据线串行数据线 (双向双向I/O口线口线) 兼容器件:兼容器件:具有具有I2C总线
30、接口,总线接口,所有同名端相连所有同名端相连 串行时钟线串行时钟线 (双向双向I/O口线口线)9.3 串行接口串行接口 1、 I2C总线器件地址总线器件地址SLA格式格式l DA3DA0:总线器件固有地址编码,用户不可设置:总线器件固有地址编码,用户不可设置l A3A0:总线器件引脚地址编码,用于识别具有相:总线器件引脚地址编码,用于识别具有相同固有地址的器件。同固有地址的器件。l R/W: 确定数据传输方向,确定数据传输方向,R/W1主机接收,主机接收,R/W0主机发送。主机发送。 2、利用单片机、利用单片机I/O口模拟口模拟 I2C总线总线l 利用两条利用两条I/O口线经上拉电阻接正电源口线经上拉电阻接正电源l 利用程序设计利用程序设计 将两个将两个I/O口定义为口定义为SCL和和SDA9.3 串行接口串行接口四、四、I2C总
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国科学院科技战略咨询研究院网络与传播中心2022招聘模拟试题及答案解析1
- 上海市西南位育中学2026届高三3月高考适应性调研考试英语试题试卷含解析
- 2026年山东省泰安市高三高考英语试题系列模拟卷(4)含解析
- 安徽省铜陵市联考铜陵一中、池州一中、浮山中学2026年高三第三次联考语文试题文试题含解析
- 河北省石家庄市行唐县三中2025-2026学年高三下学期高中等级考质量抽测英语试题试卷含解析
- 河北省唐山市五校2026年高三期中考试物理试题含解析
- 2026年湖北省武汉市外国语学校第二学期高三教学质量检测试题英语试题试卷含解析
- 建筑施工安全防护规范手册
- 2025福建泉州全智慧生活服务有限公司招聘8人笔试历年常考点试题专练附带答案详解
- 2025福建三明城发绿城物业服务有限公司人员招聘2人笔试历年难易错考点试卷带答案解析2套试卷
- GB/T 19683-2025轨道式集装箱门式起重机
- 黄体破裂与异位妊娠的护理鉴别
- 2025青海省烟草专卖局(公司)高校毕业生招聘50人(公共基础知识)综合能力测试题附答案
- 【MOOC】《土壤学》(浙江大学)章节期末慕课答案
- 无锡纺织印染知识培训课件
- 首届全国行业职业技能竞赛(电力交易员)大赛考试题库-中(多选题)
- 中国-东盟自由贸易区:建设历程、发展现状、挑战与突破路径
- 2025年自动驾驶汽车与智能交通系统协同发展研究报告
- 祠堂建设项目可行性研究报告
- 2026云南省初中英语学业水平模拟试卷一 2026云南省初中英语学业水平模拟试卷一(解析版)
- 小学四年级语文上册阅读理解(15篇)
评论
0/150
提交评论