找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1831|回復: 0
打印 上一主題 下一主題
收起左側

串口中斷計數(shù)li例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:134331 發(fā)表于 2016-7-20 09:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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復用,無需定義這兩個接口。
/************************** 函數(shù)功能:1ms延時函數(shù)
**************************/     
void delay(unsigned char i)   
{
unsigned char j  ;     
while(i--)

{for(j=0;j<125;j++)   
{; }
}   
}  


/*********************************************************************************************
函數(shù)名:外部中斷INT初始化函數(shù)
調 用:INT_init();
參 數(shù):無
返回值:無
結 果:啟動外部中斷INT1、INT0中斷,設置中斷方式
備 注:
/**********************************************************************************************/
void INT_init (void){
EA = 1; //中斷總開關
EX1 = 1; //允許外部中斷1中斷   
EX0 = 0; //禁止外部中斷0中斷
IT1 = 1; //1:下沿觸發(fā) 0:低電平觸發(fā)
IT0 = 1; //1:下沿觸發(fā) 0:低電平觸發(fā)
}
/**********************************************************************************************/

/*********************************************************************************************
函數(shù)名:外部中斷INT1中斷處理程序
調 用:[外部引腳INT1中斷處理]
參 數(shù):無
返回值:無
結 果:用戶處理外部中斷信號
備 注:
/**********************************************************************************************/
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ù)的個位  
  delay(1);

P2=0xff;          //熄滅數(shù)碼管,讓其不閃爍   
P26=0  
   P0=s[x%100/10];  //求數(shù)的十位   
delay(1);   
P2=0xff;   
P2=0xff;   
P25=0;    //P25接通點亮第六個數(shù)碼管   
P0=s[x/100];   //x/100取余,得到x的最高位
delay(1);   //延時1ms,讓數(shù)碼管顯示穩(wěn)定   
P2=0xff;    //關閉P2口,熄滅數(shù)碼管         
}  
/*********************************************************************************************/
void main(void){
INT_init(); //外部中斷初始化
while(1){
while(a--)

{
for(b=0;b<125;b++)   
{
display(x);
}
x=0;
}

}
/*********************************************************************************************/

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表