在前面我介绍了51单片机的数码管的原理,今天实现了一下,不过因为条件原因,我只能让那些数码管亮3个,数字还不是很清楚。代码还是上次那个代码:
#include<reg52.h>//包含头文件sbit wei1=P1^0;sbit wei2=P1^1;sbit wei3=P1^2;sbit wei4=P1^3;sbit miao=P1^4;unsigned code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,};//共阳数码管码表void delay(int a){ int b,c; for(b=a;b>0;b--) for(c=30;c>0;c--); }void main()//主程序{ while(1)//循环 { wei1=0;//选通第一个数码管的位选,关闭其他数码管位选 wei2=1; wei3=1; wei4=1; miao=1;//打开秒针 P0=table[1];//送入段选信号1 delay(1); wei1=1;//选通第二个数码管的位选,关闭其他数码管位选 wei2=0; wei3=1; wei4=1; miao=1;//打开秒针 P0=table[2];//送入段选信号2 delay(1); wei1=1;//选通第三个数码管的位选,关闭其他数码管位选 wei2=1; wei3=0; wei4=1; miao=1;//打开秒针 P0=table[3];//送入段选信号 3 delay(1); wei1=1;//选通第一个数码管的位选,关闭其他数码管位选 wei2=1; wei3=1; wei4=0; miao=1;//打开秒针 P0=table[4];//送入段选信号 1111 1001 delay(1); }}代码可以跑,只是因为我的数码管有问题。实验器材:
(1)最小系统
(2)4个数码管
(3)杜邦线若干
实验结果:
如果连线不会那么就请参考我的博客:http://blog.csdn.net/sum_tw/article/details/60466103对着连线。
新闻热点
疑难解答