次矩阵键盘和定时器的使用.ppt_第1页
次矩阵键盘和定时器的使用.ppt_第2页
次矩阵键盘和定时器的使用.ppt_第3页
次矩阵键盘和定时器的使用.ppt_第4页
次矩阵键盘和定时器的使用.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开发板3*4矩阵键盘电路图:,主程序,uchartemp,keynum,Flag;voidmain(void)Init();while(1)if(Flag=1)/如果有键按下display();,键盘扫描子程序,ucharKeyscan()/键盘扫描temp=0 xfe;P1=temp;/令P1.0=0if(P1对应显示3,扫描第二行应该怎么写?,return(keynum);,voiddisplay(void)Flag=0;P2=0 x00;/开4个位选;P0=tableKeyscan();/数码管显示;table里面放0-9/的段选delay_50us(100);,6定时器/计数器,对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:(1)定时器/计数器的计数值是可变的,当然计数的最大值是有限的,这取决于计数器的位数。(2)在到达设定的定时或计数值时发出中断申请,以便实现定时控制。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。加法计数溢出时可向CPU发出中断请求信号。,作定时器用时,加法计数器对内部机器周期脉冲Tcy计数。由于机器周期是定值,所以对Tcy的计数就是定时,如Tcy=1s,计数值100,相当于定时100s。加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。在定时器/计数器的工作过程中,加法计数器的内容可用程序读回CPU。,2定时器/计数器方式控制寄存器TMOD定时器/计数器T0、T1都有四种工作方式,可通过程序对TMOD设置来选择。TMOD的低4位用于定时器/计数器0,高4位用于定时器/计数器1。其位定义如下:,TMOD,字节地址89H,D7D6D5D4D3D2D1D0,T1,T0,定时器/计数器工作方式,3定时器/计数器控制寄存器TCON,TCON控制寄存器各位定义如下:,TCON,字节地址88H,D7D6D5D4D3D2D1D0,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.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,即计数范围为18192。定时器/计数器在每个机器周期的S5P2期间采样Tx脚输入信号,若一个机器周期的采样值为1,下一个机器周期的采样值为0,则计数器加1。由于识别一个高电平到低电平的跳变需两个机器周期,所以对外部计数脉冲的频率应小于fosc/24,且高电平与低电平的延续时间均不得小于1个机器周期。,C/T=0时为定时器方式,开关S1自动地接在上面,加法计数器对机器周期脉冲Tcy计数,每个机器周期TLx加1。定时时间由下式确定:T=NTcy=(8192-x)Tcy式中Tcy为单片机的机器周期。如果振荡频率fosc=12MHz,则Tcy=1s,定时范围为18192s。,定时器/计数器的启动或停止由TRx控制。当GATE=0时,只要用软件置TRx=1,开关S2闭合,定时器/计数器就开始工作;置TRx=0,S2打开,定时器/计数器停止工作。GATE=1为门控方式。此时,仅当TRx=1且引脚上出现高电平(即无外部中断请求信号),S2才闭合,定时器/计数器开始工作。如果引脚上出现低电平(即有外部中断请求信号),则停止工作。所以,门控方式下,定时器/计数器的启动受外部中断请求的影响,可用来测量引脚上出现正脉冲的宽度。,2工作方式1当M1M0=01时,定时器/计数器设定为工作方式1,构成了16位定时器/计数器。此时THx、TLx都是8位加法计数器。其它与工作方式0相同。在方式1时,计数器的计数值由下式确定:N=216-x=65536-x计数范围为165536。定时器的定时时间由下式确定:T=NTcy=(65536-x)Tcy如果fosc=12MHz,则Tcy=1s,定时范围为165536s。,3工作方式2,图2.15定时器/计数器方式2的逻辑结构,在工作方式2时,计数器的计数值由下式确定:N=28-x=256-x计数范围为1256。定时器的定时值由下式确定:T=NTcy=(256-x)Tcy如果fosc=12MHz,则Tcy=1s,定时范围为1256s。,4工作方式3,图2.16定时器/计数器方式3的逻辑结构,嵌入式系统的软件系统,嵌入式软件开发内容,开发系统软件操作系统协议栈GUI库函数软件组件与IP(知识产权内核)开发应用软件在嵌入式操作系统之上进行开发在硬件层上进行开发,1软件的结构和组成,#include/嵌入式软件主程序main()while(1)action1();action2();,6.3裸机系统软件的设计方法,无操作系统的嵌入式软件设计有操作系统的嵌入式软件设计,6.3.1无操作系统的嵌入式软件设计,前后台系统中断(事件)驱动系统巡回服务系统基于定时器的巡回服务系统,6.3.1.1前后台系统,后台:应用程序是一个无限循环,巡回地执行多个事件,完成相应的操作。这一部分软件称为后台。通常在主程序main()中被调用。前台:中断服务程序处理异步事件,这一部分可以看成是前台。后台可以称为任务级,前台可以称为中断级。强实时性的的关键操作一定要用中断来实现。,程序框架-后台,main()/*硬件初始化*/while(1)/*后台程序*/action1();action2();action3();,action_1()/*执行动作n*/action_n()/*执行动作n*/,程序框架-前台,Isr_1()/*中断1的中断服务程序*/Isr_n()/*中断2的中断服务程序*/,前后台系统的特点,应用小系统:微波炉电话机玩具等,6.3.1.2中断(事件)驱动系统,原理整个嵌入式系统软件由中断服务程序构成主程序完成系统的初始化工作应用低功耗系统设计事件驱动系统构成主程序-完成系统的初始化中断服务例程-完成事务处理,中断驱动系统-主程序,main()/*完成系统的硬件初始化和数据结构的初始化*/*todo:系统的初始化*/while(1)。其它代码或enter_low_power();/*进入低功耗状态*/,中断驱动系统-中断程序,Isr_n()/*其中的一个中断服务程序*/*todo:处理中断事件*/*todo:中断返回*/,3.1.3巡回服务系统,应用:嵌入式处理器/控制器的中断源不多解决方案增加中断源-需要硬件,成本高软件方案-软件巡回服务main()/*todo:系统初始化*/while(1)action_1();/*巡回检测事件1并处理事件*/action_2();/*巡回检测事件2并处理事件*/action_n();/*巡回检测事件n并处理事件*/,6.3.1.4基于定时器的巡回服务系统,普通巡回服务系统的缺点处理器全速运行,开销大-功耗高-电池供电系统降低处理器的工作时间-基于定时器的巡回服务系统构成主程序定时器中断服务程序,主程序,main()/*todo:系统初始化*/*todo:设置定时器,如自动重新加载方式*/while(1)。其它代码或enter_low_power();,定时器中断服务例程,Isr_timer()/*定时器的中断服务程序*/action_1();/*执行事件1的处理*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论