静态数码显示程序.c
来自「这是本人花了200元买的51开发板上的所有程序资料」· C语言 代码 · 共 49 行
C
49 行
//MCU:AT89S51
//晶振:12M
#include"AT89X51.H"
unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90
};//数字0~9共阳数码管代码
unsigned int tcount; //全局变量
unsigned char count; //全局变量
unsigned char del_count;
void main(void)
{
TMOD=0x02; //使用定时器0,选择方式2(常数自动重装的8位定时器)
TH0=0x06; //保存数值,用于自动重装
TL0=0x06; //定时250uS初值
TR0=1; //开定时器0
ET0=1; //开定时器0溢出中断
EA=1; //开总中断
P1_0=0;
while(1)
{
; //等待中断
}
}
/**********定时器T0溢出中断服务程序***************/
void t0(void) interrupt 1 using 0
{
tcount++;
/*********************///实际应用的静态扫描是不用这几条语句的,
del_count++; //现在实验板上没有独立的静态扫描数码管,
if(del_count==50) //做静态扫描实验时是利用动态扫描连接方式其中一个数码管来做的,
{ //插入这几条语句是用来保护数码管的,使其亮度不要过高。
P1_0=~P1_0; //当然了,明白数码显示的原理就可以了,实际应用中几乎不用单片机直接对数码管进行静态扫描,
del_count=0; //因为直接用单片机静态显示数码管太耗I/O口了,有专门静态扫描数码管的芯片,比如MAX7219等。
}
/*********************/
if(tcount==4000) //1S到
{
tcount=0;
count++;
if(count==10)
count=0;
P0=dispcode[count]; //送出数码管代码显示
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?