历史上的今天
今天是:2025年04月25日(星期五)
2020年04月25日 | 51单片机实验5:动态数码管
2020-04-25 来源:eefocus
开发板数码管模块电路图如下:

由于74ls138译码器的特点,即只能是一个数码管的阴极电平为0,显然不能使多个数码管同时工作,若想要得到多个数码管同时工作的效果,只能采用动态扫描显示的方式。所谓动态扫描显示,就是利用发光管的余辉和人眼视觉暂留作用,使人感觉好像多个数码管在同时工作。
程序中digdisplay函数利用for循环和switch语句,不断扫描8个数码管,完成位选工作,并对P0口赋值实现段选功能。从而在8个数码管依次输出1~8,并利用延时函数控制输出间隔时间,实现动态输出的功能。
细节:
(1)在每位数码管显示之后设置一定时间的延时。
(2)P0口置0(P0=0x00),完成“消影”目的。
#include #define uc unsigned sbit lsc=P2^2; sbit lsb=P2^3; sbit lsa=P2^4; void delay(uc n) { uc i,j; for(i=1;i<=n;i++) for(j=110;j>=1;j--); } uc code x[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void digdisplay() { uc i; for(i=1;i<=8;i++) { switch(i) { case (1): lsa=0,lsb=0;lsc=0;break; case (2): lsa=0,lsb=0;lsc=1;break; case (3): lsa=0,lsb=1;lsc=0;break; case (4): lsa=0,lsb=1;lsc=1;break; case (5): lsa=1,lsb=0;lsc=0;break; case (6): lsa=1,lsb=0;lsc=1;break; case (7): lsa=1,lsb=1;lsc=0;break; case (8): lsa=1,lsb=1;lsc=1;break; } P0=x[i]; delay(1); P0=0x00; } } void main() { while(1) { digdisplay(); } } 进阶:利用数码管间隔输出不同的数字组合。 #include #define uc unsigned char sbit lsa=P2^2; sbit lsb=P2^3; sbit lsc=P2^4; uc code x[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay1(uc n) { uc i,j; for(i=1;i<=n;i++) for(j=1;j<=110;j++); } void digdisplay(int n) { uc i; if(n==1) { for(i=0;i<3;i++) { switch(i) { case(0): lsc=0;lsb=0;lsa=0; P0=x[0];break; case(1): lsc=0;lsb=0;lsa=1; P0=x[2];break; case(2): lsc=0;lsb=1;lsa=0; P0=x[5];break; } delay1(1); } } else { for(i=0;i<4;i++) { switch(i) { case(0): lsc=0;lsb=0;lsa=0; P0=x[4];break; case(1): lsc=0;lsb=0;lsa=1; P0=x[1];break; case(2): lsc=0;lsb=1;lsa=0; P0=x[3];break; case(3): lsc=0;lsb=1;lsa=1; P0=x[1];break; } delay1(1); } } } void delay2(uc n) { uc i,j; for(i=1;i<=10;i++) for(j=1;j<=110;j++) digdisplay(n); } void main() { while(1) { delay2(1); delay2(0); } }
史海拾趣
|
最新版本的keil软件--uvision4beta1及其使用手记 上传一份最新版本的KEIL 51 软件vision4beta1,看起来很不错的,这个是没有PJ的版本,如果你的机子上装有注册过的uvision3,那直接安装就可以使用,无需另外注册!!刚下载下来,简单打开看了下,就拿出来和大家分享了,里边有一份网上找的使用手记 ...… 查看全部问答> |
|
首先我一直关注学校有个2+2的项目,是去明尼苏达双城校区的。不过我大概了解到,一年所有的费用大概在20万左右,不知道你觉得是大概一个怎样的数目? 然后我家的情况不是特别好,只能这样说,最多够支付我一年的学费,也就是20万。而且我估计是家 ...… 查看全部问答> |
|
我用的stm32F103VC控制器外接一个TJA1050CAN收发器,加一个CAN分析仪(确定可用USBCAN-II(iTEK公司的))进行测试,至于stm32的CAN测试程序,首先采用回环模式,使能CAN接收中断,调试发现,可以进入接收中断,而且接收的数据与发送的数 ...… 查看全部问答> |
|
收到板子后就开始装软件,软件装了两次,第一次不知道为什么没装成功,第二次直接安装到C盘 ,安装类型选的全部,装好后可以用了。 我是听大学的老师说起PSoC的,感觉挺不错的就申请了一套板子,打算用到公司的方案上。 &n ...… 查看全部问答> |
|
2014 C2000研讨会课程汇总 https://www.eeworld.com.cn/traini ... ex&a=lists&catid=25 TI C2000是业界公认的最适合各种对实时性要求高的场合 工业应用是TI近几年明确的最重要的发展应用,即把工业应用作为其公司发展战略的重中之重, 因此C20 ...… 查看全部问答> |




