標(biāo)題:
串口中斷計(jì)數(shù)li例程
[打印本頁]
作者:
1054654492
時(shí)間:
2016-7-20 09:55
標(biāo)題:
串口中斷計(jì)數(shù)li例程
#include <REG51.h> //51頭文件
sbit LED = P1 ^ 0; //定義LED燈
unsigned char s[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管段碼
unsigned char x;
char a=60;
char b;
sbit P27=P2^7;
sbit P26=P2^6;
sbit P25=P2^5;
//注:外部中斷固定與P3.2和P3.3復(fù)用,無需定義這兩個(gè)接口。
/************************** 函數(shù)功能:1ms延時(shí)函數(shù)
**************************/
void delay(unsigned char i)
{
unsigned char j ;
while(i--)
{for(j=0;j<125;j++)
{; }
}
}
/*********************************************************************************************
函數(shù)名:外部中斷INT初始化函數(shù)
調(diào) 用:INT_init();
參 數(shù):無
返回值:無
結(jié) 果:啟動(dòng)外部中斷INT1、INT0中斷,設(shè)置中斷方式
備 注:
/**********************************************************************************************/
void INT_init (void){
EA = 1; //中斷總開關(guān)
EX1 = 1; //允許外部中斷1中斷
EX0 = 0; //禁止外部中斷0中斷
IT1 = 1; //1:下沿觸發(fā) 0:低電平觸發(fā)
IT0 = 1; //1:下沿觸發(fā) 0:低電平觸發(fā)
}
/**********************************************************************************************/
/*********************************************************************************************
函數(shù)名:外部中斷INT1中斷處理程序
調(diào) 用:[外部引腳INT1中斷處理]
參 數(shù):無
返回值:無
結(jié) 果:用戶處理外部中斷信號(hào)
備 注:
/**********************************************************************************************/
void INT_1 (void) interrupt 2 using 2{ //切換寄存器組到2
x++;a=1
}
/**********************************************************************************************/
數(shù)碼管顯示
/************************************************************************************/
void display(unsigned char x)
{ P27=0;
P0=s[x%10]; //求數(shù)的個(gè)位
delay(1);
P2=0xff; //熄滅數(shù)碼管,讓其不閃爍
P26=0
P0=s[x%100/10]; //求數(shù)的十位
delay(1);
P2=0xff;
P2=0xff;
P25=0; //P25接通點(diǎn)亮第六個(gè)數(shù)碼管
P0=s[x/100]; //x/100取余,得到x的最高位
delay(1); //延時(shí)1ms,讓數(shù)碼管顯示穩(wěn)定
P2=0xff; //關(guān)閉P2口,熄滅數(shù)碼管
}
/*********************************************************************************************/
void main(void){
INT_init(); //外部中斷初始化
while(1){
while(a--)
{
for(b=0;b<125;b++)
{
display(x);
}
x=0;
}
}
/*********************************************************************************************/
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1