单片机8位数码管依次显示0到7,要求用c语言实现
发布网友
发布时间:2022-04-28 12:13
我来回答
共1个回答
热心网友
时间:2023-10-09 00:08
假设8个数码管公共端均接地,同时显示0-7
#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,0x82,0xf8,0x80,0x90,0xff
};
void DelayMS(uint x)
{
uchar t;
while(x--)
for(t=120;t>0;t--);
}
void main()
{
uchar i=0;
P0=0x00;
while(1)
{
P0=~DSY_CODE[i];
i=(i+1)%10;/*显示0-9*/
DelayMS(200);
}
}
下面程序从左到右显示
#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 i;
while(x--)
{
for(i=200;i>0;i--);
}
}
void main()
{
uchar i,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
P2=0xff;
k=_crol_(k,1);
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
}
热心网友
时间:2023-10-09 00:08
假设8个数码管公共端均接地,同时显示0-7
#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,0x82,0xf8,0x80,0x90,0xff
};
void DelayMS(uint x)
{
uchar t;
while(x--)
for(t=120;t>0;t--);
}
void main()
{
uchar i=0;
P0=0x00;
while(1)
{
P0=~DSY_CODE[i];
i=(i+1)%10;/*显示0-9*/
DelayMS(200);
}
}
下面程序从左到右显示
#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 i;
while(x--)
{
for(i=200;i>0;i--);
}
}
void main()
{
uchar i,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
P2=0xff;
k=_crol_(k,1);
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
}
用C语言编写一个在八个数码管上轮流显示1-8的程序
两片74HC573 芯片 显示0---F#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit duan=P1^6;sbit wei=P1^7;uchar temp=0x01;uchar code tab[]={ 0xc0,0xf9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar a...
51单片机显示八位数码管的C语言程序
1、最开始,我们先打开keil。2、接着,我们要定义好库函数,想要实现动态数码灯,这个步骤是很重要的。3、接着,我们加上一条循环语句。4、最后,我们把先前定义的延时语句delayms写好。5、最后,点击这里进行编译,生成一个hex文件。6、如果这里无错误警告的话,就说明我们的程序写对了,那我们就可以...
在单片机AT89C51的8位数码管上依次循环"7-0" 做程序 做图
ORG 0030H TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789 DELAY: MOV R5,#20 LOOP4: MOV R6,#50H ;延时20X20ms LOOP5: MOV R7,#100 DJNZ R7,DJNZ R6,LOOP5 DJNZ R5,LOOP4 RET ;--- BEGIN...
各位大虾:我的八位数码管老是显示乱码,不能消隐,望帮忙解决,深表感谢...
void main(void){// MAX7219初始化InitDisplay();// 在8个数码管分别静态地显示数字0~7WriteWord(Digit0, 0);WriteWord(Digit1, 1);WriteWord(Digit2, 2);WriteWord(Digit3, 3);WriteWord(Digit4, 4);WriteWord(Digit5, 5);WriteWord(Digit6, 6);WriteWord(Digit7, 7);// 无限循环w...
单片机:::8只数码管同时显示数字1—8 怎么做???。求大神万分感谢...
} void main(){ while(1) { for(n=0;n<8;n++) { wei=1; P0=w[n]; wei=0; duan=1; P0=x[n]; delay(); duan=0; } } }
单片机上8个数码管这样是让他循环显示,怎样让它静态显示呢?
/**52单片机,12MHz晶振,8位共阴数码管,P0口段选,P2口低电平位选,P20最高位,P27最低位**/ include <reg52.h> define uchar unsigned char define uint unsigned int define TRUE1 define FALSE0 define th00xfe define tl00x0c//500us at 12MHz(定时器工作模式1 状态)define DisTimeAt500...
51单片机控制8个数码管并显示1-8
数码管段选连接到单片机P0口,位选连接到P2口 ORG 0000h MAIN:CALL DISPLAY AJMP MAIN DISPLAY:MOV R0,#0 MOV R1,#0x01 MOV DPTR,#TAB LOOP:INC R0 MOV A,R0 MOVC A,@A+DPTR MOV P0,#0 ;消隐 MOV P0,A ;送段码 CALL DELAY MOV A,R1 ;送位码 RL A ;移位 MOV P2,A MOV ...
单片机8位数码管显示
void main(){ P2=0xf9;} 我的是八个三极管来选择亮哪个数码管,也是共阳接法.p1口位选(选择是哪个数码管亮),P0口段选(操作P0口来实现是显示0~F),请看我的板子所配的程序.inlcude<reg52.h> void main(){ P1=0;//选种所有的数码管,也就是八个数码管都亮.P0=0xf9;//让被选种的数码...
单片机数字9到0显示程序代码?
这里给出一种基于Arduino平台的单片机数字0到9显示的程序代码,可供参考:c++ Copy code int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; //定义LED引脚 int numPins[][7] = { //定义数字0~9的LED点阵图形 {1, 1, 1, 1, 1, 1, 0}, //0 {0, 1, 1, 0,...
怎样用一个单片机控制8个数码管
如果是一个8段数码管的8个段码,直接连接8个I/O到对应的8个段的控制端即可,通过I/O输出高低电平控制对应的段码。如果是8个数码管,则,每个数码管的8个断码控制线并联总线到I/O,作为数据控制。每个数码管的使能端口单独控制,或者使用进位模式,做选择控制哪一个数码管显示。