?? int0.c.bak
字號:
/*******************************************************************************
*- INT0中斷計數(shù) 3位數(shù)碼管顯示 P3.2接按鍵,計數(shù) *
********************************************************************************
* 日期: 2008-2-25 硬件: 數(shù)碼管P0,數(shù)碼管控制P2 *
* 版本: 3.0 *
* 作者: 深圳志博電子有限公司 專業(yè)8051單片機教學(xué)站 *
* 郵箱: zty0012001@163.com *
* 網(wǎng)站: http://www.elecmcu.com http://www.elecmcu.com 更多例程請登陸網(wǎng)站 *
********************************************************************************
* 硬件:此程序在本公司志博電子實驗儀運行通過 *
********************************************************************************
* 【版權(quán)】 Copyright(C)深圳志博電子有限公司 www.elecmcu.com All Rights Reserved *
* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息! *
********************************************************************************/
#include < reg51.h >
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar const seg[11]={0x7f,0x44,0xbd,0xf5,0xe6,0xf3,0xfb,0x65,0xff,0xf7,0x00};
uchar dis[8]={0,0,0,0}; //設(shè)置顯示緩沖存儲器
unsigned char code scan_bit[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsigned char count,k5_count=0 ;
/********************************************************
* 延時函數(shù) *
********************************************************/
void delay(uint ms)
// 延時子程序
{
uchar k;
while(ms--)
{
for(k = 0; k < 120; k++);
}
}
/********************************************************
* 數(shù)據(jù)處理與顯示函數(shù) *
********************************************************/
void disp_count()
{
char n;
char i=0;
char k=0;
k5_count=count;
display[2]=k5_count/100; //數(shù)據(jù)處理
k5_count=k5_count%100;
display[1]=k5_count/10;
display[0]=k5_count%10;
for (i = 0; i < 6; i++)
{ //循環(huán)顯示6位數(shù)據(jù)
switch (i)
{
case 0:
P0=0Xdf;
P1=P1|0X03;
break;
case 1:
P0=0XBF;
P1=P1|0X03;
break;
case 2:
P0=0X7F;
P1=P1|0X03;
break;
case 3:
P0=0XFF;
P1=0xfe;
break;
case 4:
P0=0XFF;
P1=0XFd;
break;
case 5:
P0=0Xef;
P1=0xff;
break;
}
P2=seg[dis[i]];
}
}
/********************************************************
* 主程序 *
********************************************************/
void main(void)
{
P0=0xff;
P1=0xff;
P2=0xff;
// IT0=0; //低電平觸發(fā)
IT0=1; //下降沿觸發(fā)
EA=1;
EX0=1;
while(1)
{
disp_count();
}
}
/********************************************************
* INT0中斷函數(shù) *
********************************************************/
void counter(void) interrupt 0
{
uchar x;
EX0=0;
count++;
for(x=0;x<15;x++)
{
disp_count();
}
EX0=1;
}
/********************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -