单片机学习项目数码管实现秒显示.docx

单片机学习项目数码管实现秒显示.docx

ID:51700442

大小:172.16 KB

页数:3页

时间:2020-03-15

单片机学习项目数码管实现秒显示.docx_第1页
单片机学习项目数码管实现秒显示.docx_第2页
单片机学习项目数码管实现秒显示.docx_第3页
资源描述:

《单片机学习项目数码管实现秒显示.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单片机学习项目项目5-数码管实现秒显示我们先用一个简单例子说明定时器中断应用技巧,电路采用第三章图3-3-2,利用定时器T0中断产生秒信号,然后让单片机的P0口驱动一只数码管显示秒计数。如果单片机的晶振频率为12MHz,则内部机器周期为1微秒,即内部脉冲频率为1MHz。假如定时器对内部脉冲计5000个(5毫秒)就引发中断,定时器T0为工作方式1,则初值应为60536, T0发生200次中断就能累计1秒。T0中断的应用首先要对T0定时器进行初始化设定,通过一个初始化函数完成,包括设定T0工作方式、设定初值、设定中断允许和优先级,最后启动T0。设定所涉及的特殊功能寄存器有TM

2、OD、TCON、IP、IE。T0初始化程序设计流程如图4-2-6所示。程序设计程序包含主函数、定时器T0初始化函数、T0中断服务函数。显示语句放在中断服务函数内,程序清单如下:/*预处理*/#includecodeunsignedcharseven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharcp,i;                  //声明全局变量/*timer0中断服务函数*/voidtimer0_isr(void)interrupt1      

3、//timer0中断服务函数{TL0=0x78;                  //TL0重新预置TH0=0xec;                  //TH0重新预置cp++;                        //timer0中断1次,变量cp加1if(cp>=200)                   //中断200次,时间刚好为1秒{cp=0;i++;}if(i==10)i=0;P0=seven_seg[i]              //P0输出显示数据}/*timer0中断初始化函数*/voidtimer0_init(void)      

4、     {TMOD=0x01;               //设置计时器模式控制寄存器,Time0工作在定时方式1TL0=(65536-5000)%256;     //TH0预置,60536十六进制高八位TH0=(65536-5000)/256;      //TL0预置,60536十六进制低八位           //PT0=1;                     //设置中断优先次序寄存器IP中的PT0位,Timer0中断优先EA=1;                        //打开中断总开关ET0=1;                     

5、 //设置中断允许寄存器IE中ET0的位,开启中断小开关TR0=1;                      //开始计数}/*主函数*/voidmain(void){timer0_init();              //timer0初始化,为中断做好准备P2=0;                       //采用共阳型数码管,共阳极与P2.0 之间有反向器,需设置P2.0=0while(1);                    //等待中断}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。