矩阵键盘和定时器的使用

上传人:德****1 文档编号:1095404 上传时间:2017-05-28 格式:PPT 页数:39 大小:630KB
返回 下载 相关 举报
矩阵键盘和定时器的使用_第1页
第1页 / 共39页
矩阵键盘和定时器的使用_第2页
第2页 / 共39页
矩阵键盘和定时器的使用_第3页
第3页 / 共39页
矩阵键盘和定时器的使用_第4页
第4页 / 共39页
矩阵键盘和定时器的使用_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《矩阵键盘和定时器的使用》由会员分享,可在线阅读,更多相关《矩阵键盘和定时器的使用(39页珍藏版)》请在金锄头文库上搜索。

1、开发板3*4矩阵键盘电路图:,主程序,uchar temp,keynum,Flag;void main(void) Init(); while(1) if( Flag=1)/如果有键按下 display(); ,键盘扫描子程序,uchar Keyscan() /键盘扫描temp=0xfe; P1=temp; /令P1.0=0 if(P1&0xf0)!=0xf0) delay_50us(100); if(P1&0xf0)!=0xf0) /确认是否按下 Flag=1; switch(P1) case 0xee:keynum=1;break;/S7被按下;对应显示1 case 0xde:keynum

2、=2;break;/ S11;对应显示2 case 0xbe:keynum=3;break;/S15;对应显示3 ,扫描第二行应该怎么写?,return(keynum);,void display(void) Flag=0; P2=0x00;/开4个位选; P0=tableKeyscan();/数码管显示;table里面放0-9 /的段选 delay_50us(100);,6 定时器/计数器,对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点: (1) 定时器/计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。 (2) 在到达设定的定时或

3、计数值时发出中断申请,以便实现定时控制。 MCS-51单片机(51子系列)内带有两个16位定时器/计数器T0和T1,它们均可作为定时器或计数器使用。,6.1 定时器/计数器T0、T1的结构,图6.13 定时器/计数器T0、T1的结构框图,116位加法器 定时器/计数器的核心是16位加法计数器,图中用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定时器/计数器0加法计数器的高8位和低8位,TH1、TL1是定时器/计数器1加法计数器的高8位和低8位。 作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数器增加1。加法计数

4、溢出时可向CPU发出中断请求信号。,作定时器用时,加法计数器对内部机器周期脉冲Tcy计数。由于机器周期是定值,所以对Tcy的计数就是定时,如Tcy=1 s,计数值100,相当于定时100 s。 加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。在定时器/计数器的工作过程中,加法计数器的内容可用程序读回CPU。,2定时器/计数器方式控制寄存器TMOD 定时器/计数器T0、T1都有四种工作方式,可通过程序对TMOD设置来选择。TMOD的低4位用于定时器/计数器0,高4位用于定时器/计数器1。其位定义如下:,TMOD,字节地址89H,D7 D6 D5 D4 D3 D2 D1 D

5、0,T1,T0,定时器/计数器工作方式,3定时器/计数器控制寄存器TCON,TCON控制寄存器各位定义如下:,TCON,字节地址88H,D7 D6 D5 D4 D3 D2 D1 D0,TF0(TF1):T0(T1)定时器/计数器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,向CPU发出中断请求信号,CPU响应中断转向中断服务程序时,由硬件自动将该位清零。 TR0(TR1):T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。,6.2 定时器/计数器T0、T1的四种工作方式,1工作方式0,图2

6、.14 定时器/计数器方式0的逻辑结构,可用程序将08191(213-1)的某一数送入THx、TLx作为初值。THx、TLx从初值开始加法计数,直至溢出。所以初值不同,定时时间或计数值不同。必须注意的是:加法计数器THx溢出后,必须用程序重新对THx、TLx设置初值,否则下一次THx、TLx将从0开始计数。 如果C/T=1,图2.14中开关S1自动地接在下面,定时器/计数器工作在计数状态,加法计数器对Tx引脚上的外部脉冲计数。计数值由下式确定:,N=213x=8192x,式中N 为计数值,x是THx、TLx的初值。x=8191时为最小计数值1,x=0时为最大计数值8192,即计数范围为1819

7、2。 定时器/计数器在每个机器周期的S5P2期间采样Tx脚输入信号,若一个机器周期的采样值为1,下一个机器周期的采样值为0,则计数器加1。由于识别一个高电平到低电平的跳变需两个机器周期,所以对外部计数脉冲的频率应小于fosc/24,且高电平与低电平的延续时间均不得小于1个机器周期。,C/ T=0时为定时器方式,开关S1自动地接在上面,加法计数器对机器周期脉冲Tcy计数,每个机器周期TLx加1。定时时间由下式确定:T=NTcy=(8192-x)Tcy式中Tcy为单片机的机器周期。如果振荡频率fosc=12 MHz,则Tcy=1 s,定时范围为18192 s。,定时器/计数器的启动或停止由TRx控

8、制。当GATE=0时,只要用软件置TRx =1,开关S2闭合,定时器/计数器就开始工作;置TRx=0,S2打开,定时器/计数器停止工作。 GATE=1为门控方式。此时,仅当TRx=1且 引脚上出现高电平(即无外部中断请求信号),S2才闭合,定时器/计数器开始工作。如果 引脚上出现低电平(即有外部中断请求信号),则停止工作。所以,门控方式下,定时器/计数器的启动受外部中断请求的影响,可用来测量 引脚上出现正脉冲的宽度。,2工作方式1 当M1M0=01时,定时器/计数器设定为工作方式1,构成了16位定时器/计数器。此时THx、TLx都是8位加法计数器。其它与工作方式0相同。 在方式1时,计数器的计

9、数值由下式确定: N=216-x=65 536-x计数范围为165 536。 定时器的定时时间由下式确定:T=NTcy=(65 536-x) Tcy如果fosc=12 MHz,则Tcy=1 s,定时范围为165 536 s。,3工作方式 2,图2.15 定时器/计数器方式2的逻辑结构,在工作方式2时,计数器的计数值由下式确定:N=28-x=256-x计数范围为1256。 定时器的定时值由下式确定:T=NTcy=(256-x)Tcy如果fosc=12 MHz,则Tcy=1 s,定时范围为1256 s。,4工作方式3,图2.16 定时器/计数器方式3的逻辑结构,嵌入式系统的软件系统,嵌入式软件开发

10、内容,开发系统软件操作系统协议栈GUI库函数软件组件与IP(知识产权内核)开发应用软件在嵌入式操作系统之上进行开发在硬件层上进行开发,1 软件的结构和组成,#include /嵌入式软件主程序main() while(1) action1();action2(); ,6.3 裸机系统软件的设计方法,无操作系统的嵌入式软件设计有操作系统的嵌入式软件设计,6.3.1无操作系统的嵌入式软件设计,前后台系统中断(事件)驱动系统巡回服务系统基于定时器的巡回服务系统,6.3.1.1前后台系统,后台:应用程序是一个无限循环,巡回地执行多个事件,完成相应的操作。这一部分软件称为后台。通常在主程序main()中

11、被调用。前台:中断服务程序处理异步事件,这一部分可以看成是前台。 后台可以称为任务级,前台可以称为中断级。强实时性的的关键操作一定要用中断来实现。,程序框架-后台,main()/* 硬件初始化 */ while(1) /* 后台程序 */ action1();action2();action3(); ,action_1()/* 执行动作n */ action_n()/* 执行动作n */,程序框架-前台,Isr_1() /* 中断1的中断服务程序 */ Isr_n() /* 中断2的中断服务程序 */ ,前后台系统的特点,应用小系统:微波炉电话机玩具等,6.3.1.2中断(事件)驱动系统,原理

12、整个嵌入式系统软件由中断服务程序构成主程序完成系统的初始化工作应用低功耗系统设计事件驱动系统构成主程序-完成系统的初始化中断服务例程-完成事务处理,中断驱动系统-主程序,main() /*完成系统的硬件初始化和数据结构的初始化*/* to do: 系统的初始化 */ while(1) 。其它代码或 enter_low_power(); /*进入低功耗状态*/ ,中断驱动系统-中断程序,Isr_n() /* 其中的一个中断服务程序 */* to do: 处理中断事件 */ /* to do: 中断返回 */,3.1.3巡回服务系统,应用:嵌入式处理器/控制器的中断源不多解决方案增加中断源-需要硬

13、件,成本高软件方案-软件巡回服务main() /* to do: 系统初始化 */ while(1) action_1();/*巡回检测事件1并处理事件*/ action_2();/*巡回检测事件2并处理事件*/ action_n();/*巡回检测事件n并处理事件*/ ,6.3.1.4基于定时器的巡回服务系统,普通巡回服务系统的缺点处理器全速运行,开销大-功耗高-电池供电系统降低处理器的工作时间-基于定时器的巡回服务系统构成主程序定时器中断服务程序,主程序,main() /* to do: 系统初始化 */ /* to do: 设置定时器,如自动重新加载方式 */ while(1) 。其它代码或 enter_low_power(); ,定时器中断服务例程,Isr_timer() /* 定时器的中断服务程序 */action_1(); /*执行事件1的处理*/action_2(); /*执行事件2的处理*/action_n(); /*执行事件n的处理*/,实验内容:,使用矩阵键盘;在点阵管上面显示;按下哪个键显示什么数字;要求:采用定时器循环;主函数:定时器1:扫描键盘定时器2:实现显示;(行扫描或列扫描送显示)注意:定时器中断程序执行的时间不要超过两次中断的时间间隔!切记!否则,进入中断程序,要先关掉相应中断,完成该程序之后,再启动;,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号