求一段能在51单片机共阳数码管中左移循环显示数字的程序

51单片机的电路图如下所示:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main()
{
uchar k,m=0x80;
P0=0xff;
P2=0x00;
while(1)
{
for(k=0;k<8;k++)
{
m=_crol_(m,1);
P2=m;
P0=DSY_CODE[k+1];
DelayMS(2);
}
}
}
程序来自:《单片机C语言程序设计实训100例——基于8051+Proteus仿真》
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-19
这个挺简单的啊,设置数组显示的起始索引不断增加就可以了,,实在不懂 605508331教一下你。

51单片机中如何设置数码管循环左移?
1. 定义一个八位二进制数字并赋初值0xFF,用来驱动八个数码管的显示。2. 设定一个循环,将八个数码管的八位数据按顺序向左移动一个位置。具体实现时,可以将数字左移一位,并在最右边补0,同时将最右边的一位数保存,以便在移动完成后加到最左边。3. 将移动完成后保留的最右边的一位数添加到最...

51单片机数码管显示的程序是什么?
#include \/\/52系列单片机头文件\\x0d\\x0a#define uchar unsigned char \/\/宏定义\\x0d\\x0a#define uint unsigned int\\x0d\\x0asbit dula=P2^6; \/\/申明u1锁存器的锁存端\\x0d\\x0asbit wela=P2^7; \/\/ u2\\x0d\\x0auchar num1,num2;\\x0d\\x0auchar code table[...

用51单片机控制4位一体数码管实现1234轮流显示的程序代码是什么,求!pro...
shiftOut(0x01); \/\/ 第1位 break;case 1:shiftOut(0x02); \/\/ 第2位 break;case 2:shiftOut(0x04); \/\/ 第3位 break;case 3:shiftOut(0x08); \/\/ 第4位 break;default:break;} \/\/ 数据锁存 RCLK = 1;delay(1);RCLK = 0;\/\/ 数码管刷新延时 delay(5);\/\/ 切换显示的位 ...

51单片机如何实现数码管循环左移?
1定义一个变量存储待移位的数值,并将其转换为二进制数形式。2将二进制数码管的对应端口输出全部清零。3利用位运算符 << 将数值向左移动一位,并将最高位的数值存放到最低位。4将新的数值通过端口输出到相应的数码管上。5将程序延时一段时间后重复执行上述步骤,从而实现数字在数码管中循环左移的效...

51单片机的共阴数码管怎么显示数字(c语言)
要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。以显示数字“0”为例,c语言程序如下:include<reg52.h> define uchar unsigned char define uint unsigned int \/\/数码管的段码编码 Uchar table[10] ={0x3f,0x06,...

51单片机四位一体共阳极数码管显示编程?
设 P0 为输出七段码(共阳极数据);四位数码管有4个阳极,设位码分别与P2.4--P2.7对应,并且=1时表示可点亮数码管;sbit wma1=b2^4; \/\/对应左起第1个数码管的阳极 sbit wma2=b2^5; \/\/对应左起第2个数码管的阳极 sbit wma3=b2^6;sbit wma4=b2^7;void main(){ wma1=0; wma2...

51单片机控制数码管循环显示0-9程序
采用共阴极LED数码管,51单片机P1口输出数据:ORG 0000H JMP MAIN ORG 0100H MAIN:MOV DPTR,#TAB MOV R1,#00H DISP:MOV A,R1 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R1 CJNE R1,#0AH,DISP SJMP TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY: MOV R4,#...

51单片机,8个数码管循环显示1-9的C语言程序。
假设8个数码管公共端均接地,同时显示1-9\\x0d\\x0a#include\\x0d\\x0a#include\\x0d\\x0a#defineucharunsignedchar\\x0d\\x0a#defineuintunsignedint\\x0d\\x0aucharcodeDSY_CODE[]=\\x0d\\x0a{\\x0d\\x0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff\\x0d\\x0a}...

51单片机数码管动态显示从右往左
这是四位数码管从右从左流动显示,像滚动字幕一样的。用不着矩阵按键哪。其实程序很简单,没那么复杂。程序如下 include <reg51.h> define uchar unsigned char define uint unsigned int uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};\/\/共阴段码码,0x...

用51单片机并行口设计显示一个数码的电路,使数码管循环显示“0...
这是共阳极的数码管,至于你要显示0~F这个在编程实现

相似回答