这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机C语言程序设计:INT0 中断计数

共1条 1/1 1 跳转至

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

高工
2013-10-25 15:47:21     打赏

/* 名称:INT0中断计数

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

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

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

清零键时数码管清零

*/

#includereg51.h>

#defineucharunsignedchar

#defineuintunsignedint

//0~9的段码

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

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

ucharDSY_Buffer[]={0,0,0};

ucharCount=0;

sbitClear_Key=P3^6;

//数码管上显示计数值

voidShow_Count_ON_DSY()

{

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

DSY_Buffer[1]=Count%100/10;

DSY_Buffer[0]=Count%10;

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

{

DSY_Buffer[2]=0x0a;

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

DSY_Buffer[1]=0x0a;

}

P0=DSY_CODE[DSY_Buffer[0]];

P1=DSY_CODE[DSY_Buffer[1]];

P2=DSY_CODE[DSY_Buffer[2]];

}

//主程序

voidmain()

{

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中断函数

voidEX_INT0()interrupt0

{

Count++; 计数值递增

}

INT0 中断计数

扩展阅读:播放生日快乐歌




关键词: 基础知识    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]