?? int0.c
字號(hào):
/*******************************************************************************
*- INT0中斷計(jì)數(shù) 3位數(shù)碼管顯示 P3.2接按鍵,計(jì)數(shù) *
********************************************************************************
* 日期: 2008-2-25 硬件: 數(shù)碼管P0,數(shù)碼管控制P2 *
* 版本: 3.0 *
* 作者: 深圳志博電子有限公司 專(zhuān)業(yè)8051單片機(jī)教學(xué)站 *
* 郵箱: zty0012001@163.com *
* 網(wǎng)站: http://www.elecmcu.com http://www.elecmcu.com 更多例程請(qǐng)登陸網(wǎng)站 *
********************************************************************************
* 硬件:此程序在本公司志博電子實(shí)驗(yàn)儀運(yùn)行通過(guò) *
********************************************************************************
* 【版權(quán)】 Copyright(C)深圳志博電子有限公司 www.elecmcu.com All Rights Reserved *
* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請(qǐng)注明版權(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è)置顯示緩沖存儲(chǔ)器
unsigned char count=0 ;
/********************************************************
* 延時(shí)函數(shù) *
********************************************************/
void delay(uint ms)
// 延時(shí)子程序
{
uchar k;
while(ms--)
{
for(k = 0; k < 120; k++);
}
}
/********************************************************
* 數(shù)據(jù)處理與顯示函數(shù) *
********************************************************/
void disp_count()
{
char i=0;
char k=0;
dis[3]=count/100;
dis[4]=(count%100)/10;
dis[5]=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]];
delay(1);
}
}
/********************************************************
* 主程序 *
********************************************************/
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;
}
/********************************************************/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -