51单片机实现数码管显示
本次的实现效果方式采用模拟进行,芯片为AT89C51,开发软件为keil5,proteus
目录上代码
代码如下:
#include <REGX51.H>//引用库文件
#define key P3_0//按键引脚
#define key2 P3_1
unsigned int c=0,q=0,a=0;
unsigned char shu[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//数码管0-9
void delay(unsigned int t)//延时函数
{
for(c=0;c<t;c++);
}
void keydown()//当按键按下
{
if(key2==0)
{
delay(100);
if(key2==0)
{
while(key2==0);
if(q==0){q=9;P2=shu[q];}else{q--;P2=shu[q];}//如果减到0则变成九,否则每次按下数码管数字减一
}
}
}
void main()
{
while(1)
{
keydown();
if(key==0)//如果有按键二按下
{
delay(100);
if(key==0)
{
while(key==0);
for(a=0;a<10;a++){q=a;P2=shu[a];delay(30000);}//for循环显示0-9数码管显示
}
}
}
}
效果展示
keil5开发界面
proteus界面:
介绍
本次采用数码管端口为P2,按键为P3_0,P3_1,通过for循环和减法实现预期效果。
标签:P3,数码管,51,unsigned,单片机,proteus From: https://www.cnblogs.com/helloyi/p/18460472