第章 MCS中断系统与内部定时计数器.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章 MCS中断系统与内部定时计数器

第三节 C语言对定时计数器编程 案例1:在工业顺序综合控制实验中,单片机I/O口模拟控制七道工序的七个发光二极管点亮。设定每道工序延迟时间为1S,设工序延时时间采用定时/计数器0实现,方式工作在方式1下,单片机主频为12MHz ,请回答以下问题: (1)写出TMOD方式控制字。 (2)计算定时\计数器0初值。 (3)编写初始化程序。 (4)结合电路图编写定时\计数器0完整程序。 (1)分析: TMOD方式控制字格式 M0 M1 C/T GATE M0 M1 C/T GATE D0 D1 D2 D3 D4 D5 D6 D7 解:方式1控制字格式为:TMOD = 01H (2)分析: 定时/计数器0定时时间为1S,而单片机主频为12MHZ,则定时器的最大定时时间为65.536ms,因此需采用多次定时的方法,假设一次定时20ms,则需要50次完成,方式采用方式1。 解:定时器初值 X0 = M – T/T机器 = 216 - 20×10-3/1×10-6 = 45536 = B1E0H 因此,TH0 = B1H, TL0 = E0H (3)分析: 定时器/计数器在应用前需要进行初始化流程: ① 确定TMOD控制字:编程时将控制字送TMOD; ② 计算计数器的计数初值:编程时将计数初值送TH、TL ③ 开中断(如果使用中断方式)置位EA、ET ④ TR位置位,控制定时器的启动和停止。 D7 D6 D5 D4 D3 D2 D1 D0 EA ES ET1 EX1 ET0 EX0 void Timer_Init() { TMOD = 0x01; //T0采用方式1 TH0 = 0xB1; //T0赋初值,一次定时20ms TL0 = 0xE0; ET0 = 1;//开定时器0中断 EA = 1;//开总中断 TR0 = 1;//启动定时器定时 } (3)初始化语句如下: (4)分析: 主函数 中断函数 void main() { uchar count = 50; INI0_Init(); //外部中断初始化 Timer_Init();//定时器初始化 P3 = 0xff; //读引脚先写1 b_alarm = 1; while(stop); TR0 = 1; //启动定时 while(1){ P1 = ~temp; //从第一道工序开始 } } void TIMER0_INT() interrupt 1 { TH0 = 0xB1; //重装T0初值 TL0 = 0xE0; if(--count==0){ count = 50; temp = _crol_(temp,1); //计满1s后循环左移一位 } } (4)解: 主函数 中断函数 案例2:在案例1的基础上增加LED数码管电路模块和74HC595芯片,其中LED数码管用于倒计时显示,假设每道生产工序的时间为20S,则每道工序生产开始前倒计时牌显示20,当计时结束后,下一盏流水灯点亮,表示进入下一道工序,倒计时牌从新显示20,74HC595和LED数码管相连,用于串转并传输数据。(见演示) 知识准备: 7段数码管和74HC595芯片 7段LED数码显示器 LED数码显示器结构与原理 LED数码显示器是由发光二极管显示字段的显示器件。在应用系统中通常使用的是七段LED数码显示器。这种显示块有共阴极与共阳极两种,如下图所示。 使用LED显示器时,要注意区分共阴极和共阳极两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码,简称段码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的段码正好是一个字节。 实际使用中,通常通过单片机向LED显示接口输出不同段码,即可显示相应的数字。 显示数字 共阳极接法 gfedcba 共阴极接法 gfedcba 1 79H 06H 5 12H 6DH 注:小数点dp不接 LED数码显示器共阴极和共阳极段码 存储器 地址 显示 数字 共阴极接法的七段状态 g f e d c b a 共阴极接法 段码(十六进制数) 共阳极接法 段码(十六进制数) SEG 0 0 1 1 1 1 1 1 3F 40 SEG+1 1 0 0 0 0 1 1 0 06 79 SEG+2 2 1 0 1 1 0 1 1

您可能关注的文档

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档