51单片机INTO、INT1中断计数c语言源程序

上传人:大米 文档编号:568646533 上传时间:2024-07-25 格式:PDF 页数:5 大小:361.11KB
返回 下载 相关 举报
51单片机INTO、INT1中断计数c语言源程序_第1页
第1页 / 共5页
51单片机INTO、INT1中断计数c语言源程序_第2页
第2页 / 共5页
51单片机INTO、INT1中断计数c语言源程序_第3页
第3页 / 共5页
51单片机INTO、INT1中断计数c语言源程序_第4页
第4页 / 共5页
51单片机INTO、INT1中断计数c语言源程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《51单片机INTO、INT1中断计数c语言源程序》由会员分享,可在线阅读,更多相关《51单片机INTO、INT1中断计数c语言源程序(5页珍藏版)》请在金锄头文库上搜索。

1、单片机单片机 C C 语言程序设计:语言程序设计:INT0INT0 中断计数中断计数来源:21ic 作者:关键字:INT0单片机C 语言程序设计/* 名称:INT0 中断计数说明:每次按下计数键时触发INT0 中断,中断程序累加计数,计数值显示在 3 只数码管上,按下清零键时数码管清零*/#include#define uchar unsigned char#define uint unsigned int/09 的段码uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/计数值分解后各个待显示的

2、数位uchar DSY_Buffer=0,0,0;uchar Count=0;sbit Clear_Key=P36;/数码管上显示计数值void Show_Count_ON_DSY()DSY_Buffer2=Count/100; /获取 3 个数DSY_Buffer1=Count%100/10;DSY_Buffer0=Count%10;if(DSY_Buffer2=0) /高位为 0 时不显示DSY_Buffer2=0x0a;if(DSY_Buffer1=0) /高位为 0,若第二位为 0 同样不显示DSY_Buffer1=0x0a;P0=DSY_CODEDSY_Buffer0;P1=DSY_

3、CODEDSY_Buffer1;P2=DSY_CODEDSY_Buffer2;/主程序void main()P0=0x00;P1=0x00;P2=0x00;IE=0x81; /允许 INT0 中断IT0=1; /下降沿触发while(1)if(Clear_Key=0) Count=0; /清 0Show_Count_ON_DSY();/INT0 中断函数void EX_INT0() interrupt 0Count+; 计数值递增单片机单片机 C C 语言程序设计:语言程序设计:INT0INT0 及及 INT1 INT1 中断计数中断计数来源:21ic 作者:关键字:INT0INT1单片机C

4、语言/* 名称:INT0 及 INT1 中断计数说明:每次按下第 1 个计数键时,第 1 组计数值累加并显示在右边 3 只数码管上, 每次按下第 2 个计数键时,第2 组计数值累加并显示在左边 3 只数码管上,后两个按键分别清零。*/#include#define uchar unsigned char#define uint unsigned intsbit K3=P34; /2 个清零键sbit K4=P35;/数码管段码与位码uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;uchar c

5、ode DSY_Scan_Bits=0x20,0x10,0x08,0x04,0x02,0x01;/2 组计数的显示缓冲,前 3 位一组,后 3 位一组uchar data Buffer_Counts=0,0,0,0,0,0;uint Count_A,Count_B=0;/延时void DelayMS(uint x)uchar t;while(x-) for(t=0;t120;t+);/数据显示void Show_Counts()uchar i;Buffer_Counts2=Count_A/100;Buffer_Counts1=Count_A%100/10;Buffer_Counts0=Coun

6、t_A%10;if( Buffer_Counts2=0)Buffer_Counts2=0x0a;if( Buffer_Counts1=0)Buffer_Counts1=0x0a;Buffer_Counts5=Count_B/100;Buffer_Counts4=Count_B%100/10;Buffer_Counts3=Count_B%10;if( Buffer_Counts5=0)Buffer_Counts5=0x0a;if( Buffer_Counts4=0)Buffer_Counts4=0x0a;for(i=0;i6;i+)P2=DSY_Scan_Bitsi;P1=DSY_CODEBuffer_Countsi;DelayMS(1);/主程序void main()IE=0x85;PX0=1;中断优先IT0=1;IT1=1;while(1)if(K3=0) Count_A=0;if(K4=0) Count_B=0;Show_Counts();/INT0 中断函数void EX_INT0() interrupt 0Count_A+;/INT1 中断函数void EX_INT1() interrupt 2Count_B+;

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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