/*****一位数码管显示学号
要求:
1.计算出共阳极和共阴数码管显示0-9对应的编码,拍照提交。
2.绘制数码管仿真图,编程实现数码管循环显示学号。(2018123456)
****/
#include
#define TIME 300
/*****引脚定义*****/
/*****变量定义*****/
unsigned char seg_dat[10]={
0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/};//共阳极数码管0-9对应的编码
unsigned char XH[10]={2,0,1,8,1,2,3,4,5,6};
/*****函数声明*****/
void delay_ms(unsigned int x);
void shagua();
void shuzu();
void main(void)
{
while(1)
{
shuzu();//数组方式
shuzu();//傻瓜方式
}
}
void delay_ms(unsigned int x)
{
unsigned int i,j;
for(i=0;i
{
for(j=0;j<333;j++);
}
}
void shagua()
{
P1=seg_dat[2];delay_ms(TIME);
P1=seg_dat[0];delay_ms(TIME);
P1=seg_dat[2];delay_ms(TIME);
P1=seg_dat[0];delay_ms(TIME);
P1=seg_dat[1];delay_ms(TIME);
P1=seg_dat[2];delay_ms(TIME);
P1=seg_dat[3];delay_ms(TIME);
P1=seg_dat[4];delay_ms(TIME);
P1=seg_dat[5];delay_ms(TIME);
P1=seg_dat[6];delay_ms(TIME);
}
void shuzu()
{
unsigned char i;
for(i=0;i<10;i++)
{
P1=seg_dat[ XH[i] ];delay_ms(TIME);
}
}