用单片机显示数字,要怎么写?

如题所述

用仿真实现,采用6位一体的共阴数码管,P0口输出段码,P2口输出位码。仿真图如下:

程序如下

#include <reg51.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//0~9段码

0x77,0x7c,0x39,0x5e,0x79,0x71,};//共阴数码管A~F段码表

uchar buf[]={0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//显示字母

void delay()//延时子程序

{

uint j;

for(j=300;j>0;j--);

}

void display()//显示子程序

{

uchar i,litbit=0xfe;

for(i=0;i<6;i++)

{

P2=litbit;//输出位码

P0=table[buf[i]];//输出段码

litbit=_crol_(litbit,1);

delay();//延时

}

}

void main()

{

while(1)

{

display();

}

}

温馨提示:答案为网友推荐,仅供参考