200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99 另一个按键实现清零

51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99 另一个按键实现清零

时间:2020-09-08 18:16:41

相关推荐

51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99 另一个按键实现清零

51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零

题目要求:

利用外部中断实现按键按一下数码管数字加1,实现00-99的循环,另一个按键实现清零,不管数码管数字是多少,该按键按下数码管显示00

准备工作:

keil建立工程proteus仿真验证

仿真电路图:

代码如下:

/**功能:开关key1控制实现每按一次,数码管数字加1,实现00-99的循环*开关key2实现随时清零*/#include<reg52.h>sbit SEG1 = P1^0; //定义显示十位的数码管sbit SEG2 = P2^0; //定义显示个位的数码管sbit key1 = P3^2; //定义实现数码管加1的开关key1sbit key2 = P3^3; //定义实现清零的开关key2typedef unsigned int uint;uint i,j;uint sum = 0;unsigned char code DSY_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳极数码管 void display(uint i,uint j); //数码管显示函数 void main(){IE = 0X85;IT0 = 1;IT1 = 1;while(1){display(i,j);}}void EX0_INT(void) interrupt 0// 外部中断0,实现按键按一下数码管数字加一{sum++;}void EX1_INT(void) interrupt 2//外部中断1,实现清零{sum = 0;}void display(uint i,uint j)//数码管显示数字{i = sum/10;//数码管显示十位数字j = sum%10; //数码管显示个位数字if(sum == 100)sum = 0;P1 = DSY_CODE[i];P2 = DSY_CODE[j];}

仿真结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。