⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led6.c

📁 本文件是关于8051单片机的数码管显示程序的c语言的源码.
💻 C
字号:
#include "stdio.h"
#include "reg51.h"

unsigned char table[] = { 0x11,0xb7,0x29,0x23,0x87,0x43,0x41,0x37,0x01,0x03 };unsigned int delay;
unsigned char dig[] = { 0x7f,0xfd,0xfb,0xf7,0xef,0xdf };
unsigned char buffer[8];
unsigned char cn,scan,i,ch;
unsigned long num;
bit f20ms,fKey,OldP30,fBI;

void init(void);

main()
{
init();

while(1) {
if(fKey) {
fKey = 0; num++;
EA = 0;
sprintf(buffer,"%06ld",(unsigned long int)num);
for(i=0;i<6;i++) buffer[i] -= '0';
EA = 1;
}
}
}

void init(void) {

num = 0; scan = cn = 0; f20ms = 0; fKey = 0; OldP30 = P30; fBI = 1;
sprintf(buffer,"%06ld",(unsigned long int)num);
for(i=0;i<6;i++) buffer[i] -= '0';

TCON &= 0xCF;
TMOD &= 0xF0; 
TMOD |= 0x01; 
TH0 = TL0 = 0; 
EA = 1;
ET0 = 1;
TR0 = 1;

}


timerint () interrupt 1 {

TR0 = 0;
TL0 = 0xcd;
TH0 = 0xf8; // 0xf8cd for 2ms
TR0 = 1;

P1 = 0xff; P3 = dig[scan];
ch = buffer[scan];
if(ch==0) {
if(fBI && scan!=5) P1 = 0xff; else P1 = table[ch];
} else { fBI = 0; P1 = table[ch]; }

scan++; if(scan==6) { scan = 0; fBI = 1; }

cn++;
if(cn==10) {
cn = 0;
if(!P30 && OldP30) fKey = 1;
OldP30 = P30;
}

}

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -