中断控制数码管显示程序解释.ppt

上传人:牧羊曲112 文档编号:5909771 上传时间:2023-09-02 格式:PPT 页数:17 大小:320.11KB
返回 下载 相关 举报
中断控制数码管显示程序解释.ppt_第1页
第1页 / 共17页
中断控制数码管显示程序解释.ppt_第2页
第2页 / 共17页
中断控制数码管显示程序解释.ppt_第3页
第3页 / 共17页
中断控制数码管显示程序解释.ppt_第4页
第4页 / 共17页
中断控制数码管显示程序解释.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《中断控制数码管显示程序解释.ppt》由会员分享,可在线阅读,更多相关《中断控制数码管显示程序解释.ppt(17页珍藏版)》请在三一办公上搜索。

1、简易数码秒表设计示例程序,#include 51单片机寄存器定义的头文件 unsigned char code Tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;数码管显示09的断码表 unsigned char int_time;定义无符号字符变量,中断次数 unsigned char second;定义秒 void delay(void)延时函数 unsigned char i;for(i=0;i200;i+)延时时间,for循环语句;,秒显示函数,void Display_Second(unsigned cha

2、r k)定义入口参数 P2=0 xfd;P2=11111101,P2.1引脚低电平,DS2亮 P0=Tabk/10;显示十位 delay();调用延时函数 P2=0 xfe;P2=11111110,P2.0引脚低电平,DS1亮 P0=Tabk%10;显示个位 delay();P2=0 xff;P2=11111111,关闭所有数码管,主函数,void main(void)TMOD=0X01;工作方式控制寄存器TMOD=00000001,使用 定时器T0工作方式1 TH0=(65536-46083)/256;将定时时间设为50ms TL0=(65536-46083)%256;存入寄存器TH0和TL

3、0 EA=1;开启总中断 ET0=1;定时器T0中断允许 TR0=1;启动定时器T0开始运行 int_time=0;中断次数初始化 second=0;秒初始化 while(1)无限循环 Display_Second(second);调用秒的显示子程序,实际计数值=46083,void Time0_serve(void)interrupt 1 using 1 定时器T0的中断服务函数,T0的中断编号为1,使用第一组工作寄存器 TR0=0;关闭定时器T0 int_time+;每来一次中断,中断次数自加1 if(int_time=20)20次中断,即1s进行一次时间控制,定时器T0的中断服务程序,C

4、PU通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区,例如:SETB PSW3 CLR PSW4;选定第区SETB PSW4 CLR PSW3;选定第2区SETB PSW3 SETB PSW;选定第区,int_time=0;中断次数清0 second+;秒加1 if(second=60)if语句second=0;等于60就返回TH0=(65536-46083)/256;重新给计数器T0赋初值TL0=(65536-46083)/256;TR0=1;启动定时器T0,使用定时器T0的中断控制数码管倒计数显示,自主思考:比较P141页倒计数示例程序与P112倒计数示例程序的区别,#in

5、clude unsigned int x;unsigned char code Tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;void delay(void)unsigned int m;for(m=0;m600;m+);,void display(unsigned int k)P2=0 xf7;P0=Tabk/1000;delay();P2=0 xfb;P0=Tab(k%1000)/100;delay();P2=0 xfd;P0=Tab(k%100)/10;delay();P2=0 xfe;P0=Tabk%10

6、;delay();P2=0 xff;,void main(void)TMOD=0 x01;使用定时器T0方式1 TH0=(65536-46083)/256;定时50ms TL0=(65536-46083)%256;EA=1;开启总中断 ET0=1;定时器T0允许中断 TR0=1;启动T0 x=9999;while(1)无限循环 display(x);调用显示函数,void Time0(void)interrupt 1 using 1 中断服务程序 TR0=0;关闭T0 x-;每来一次中断,x自减1 if(x=0)x=9999;TH0=(65536-46083)/256;重新给定时器赋初值TL0=(65536-46083)%256;TR0=1;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号