×
嵌入式 > 技术百科 > 详情

单片机C语言程序设计中的INT0 中断计数

发布时间:2021-07-15 发布时间:
|

/*  名称:INT0 中断计数


说明:每次按下计数键时触发

INT0 中断,中断程序累加计数,

计数值显示在 只数码管上,按下

清零键时数码管清零

*/

#include

#define uchar unsigned char

#define uint unsigned int

//0~9 的段码

uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

//计数值分解后各个待显示的数位

uchar DSY_Buffer[]={0,0,0}; 

uchar Count=0;

sbit Clear_Key=P3^6;

//数码管上显示计数值

void Show_Count_ON_DSY()

{

DSY_Buffer[2]=Count/100; //获取 个数


DSY_Buffer[1]=Count%100/10;

DSY_Buffer[0]=Count%10;

if(DSY_Buffer[2]==0)   //高位为 时不显示

{

DSY_Buffer[2]=0x0a;

                          if(DSY_Buffer[1]==0) //高位为 0,若第二位为 同样不显示

                         DSY_Buffer[1]=0x0a;

}




P0=DSY_CODE[DSY_Buffer[0]];

P1=DSY_CODE[DSY_Buffer[1]];

P2=DSY_CODE[DSY_Buffer[2]];

}

//主程序

void main()

{

P0=0x00;

P1=0x00;

P2=0x00;

IE=0x81; //允许 INT0 中断

IT0=1;         //下降沿触发

while(1)

{




if(Clear_Key==0) Count=0; //清 0

Show_Count_ON_DSY();

      }

}

//INT0 中断函数

void EX_INT0() interrupt 0 

{

Count++; 计数值递增

}







『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
iPhone将是质的飞跃:苹果A14处理器+高通X55基带