51单片机四位一体共阳极数码管显示编程

51单片机四位一体共阳极数码管显示编程,第1张

不清楚你的电路构成如何,因此先按下面的假设执行段码及位码的输出;

其中,延时值可根据实验效果予以调整;

设 P0 为输出七段码(共阳极数据);

四位数码管有4个阳极,设位码分别与P24--P27对应,并且=1时表示可点亮数码管;

sbit wma1=b2^4; //对应左起第1个数码管的阳极

sbit wma2=b2^5; //对应左起第2个数码管的阳极

sbit wma3=b2^6;

sbit wma4=b2^7;

void main()

{

wma1=0; wma2=0; wma3=0; wma4=0;

while(1)

{

P0=table[0]; wma1=1; delay(10); wma1=0;

P0=table[1]; wma1=2; delay(10); wma2=0; P0=table[2]; wma1=3; delay(10); wma3=0; P0=table[3]; wma1=4; delay(10); wma4=0; P0=table[4]; wma1=1; delay(10); wma1=0; P0=table[5]; wma1=2; delay(10); wma2=0; P0=table[6]; wma1=3; delay(10); wma3=0; P0=table[7]; wma1=4; delay(10); wma4=0;

}

}

可以通过代码优化的方式来简化代码。

一、设置延时函数

延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:

void delay()

uinti,j;

for(i=100;i>0;i--)

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

二、设置数码管显示数组

数组定义简单,而且访问很方便。所有元素类型相同,在数码管显示程序中可以让程序代码减少。数组代码如下:

chara[10]={0xff,0x3,0x9f,0x25,0xd,0x99,0x49,0x41,0x1f,0x1,0x9};

三、设置数码管显示循环

数码管显示循环可以不用编写一次又一次的数码管显示代码,既方便又简洁。具体代码如下:

for(int i=0;i<10;i++)

P0=a[i];

delay();

扩展资料

单片机程序进行简化可以查看是否有反复出现的代码序列,整合成循环进行更改。同一类型且用法相同的变量可以整合成数组,方便对各个内容进行访问。有特定功能的代码段可以定义一个函数进行访问。

注意:用C51语言编辑的单片机程序与普通C语言不同,C51语言中的数据类型和标准c中的数据类型不同。

以上就是关于51单片机四位一体共阳极数码管显示编程全部的内容,包括:51单片机四位一体共阳极数码管显示编程、51单片机 让数码管自动显示0至9的C程序。有没有比这个更简单的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9343519.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存