① 怎样用keil编写4位数码管显示1234的程序
这是用C编的:共阴数码管#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
uint temp=1234;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71} ;
void play(uint);
void delay(uint);
void main()
{
while(1)
{
play(temp);
}
}
void play(uint temp)
{
la=1;
P0=table[temp/1000];
la=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(5);
la=1;
P0=table[temp%1000/100];
la=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
la=1;
P0=table[temp%1000%100/10];
la=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
la=1;
P0=table[temp%10];
la=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
② 运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序
动态显示的是有固定格式的,赋值,开显示,延时,关显示,假设p0口接数据显示位,p2口低4位接片选,
p2=tab[1];
//赋值
p3_0=0;
//开第一位显示
for(i=0;i<200:i++);//延时
p3_0=1;
//关第一位显示
p2=tab[2];
p3_1=0;
//开第二位显示
for(i=0;i<200:i++);
p3_1=1;
这个程序就是让两个数码管分别显示1和2,注意程序开头包含头文件regx52.h,如果是包含reg52.h编译不了的
③ 四位数码管连接如何连接单片机
1、最开始,先打开keil。
④ 四位共阳极数码管如何设置位选c语言编码
如果是AT89***或者STC**单片机,如图依图完整的控制代码没时间弄你可以网络,资源多的是,如果只想知道数码位的控制方法可以说一下,根据你图示,只要在三极管的基极加上低电平就可以给相应的数码位加电,简单代码如下:
1.可以分别定义控制端口
sbti WE1=P1^0;//这里假定用P1口控制数码位
sbti WE2=P1^1;
sbti WE3=P1^2;
sbti WE4=P1^3;
进行上述定义后,在程序中只要有代码WE1=0;则第一位数码就通电了,此后会根据段码数据显示相应的数字。
2.如果I/O口资源充足,也可以用一个完整I/O口来控制,以P1为例,只要将WE1--4引线分别于P1.0--3连接,在程序中只要有代码P1=0xfe,就可以点亮WE1位,同理,代码0xfd;0xfb;0xf7
可以分别点亮WE2,WE3,WE4位。
⑤ AT89C51单片机怎么用汇编语言让4个数码管同时显示1234
1、首先我们先打开keil。
⑥ 用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。
用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。
用proteus做的时钟
可以显示年月日时分秒
可调整时间
有图
*/
#includereg52.h
⑦ avr用C语言编程四位7段数码管显示
随便找一本书AVR-C的书,基本都有AVR 数码管的例程 ,稍微改一下就可以啊,
最简单的判断按键然后用不同的switch case就可以了
⑧ 四位数码管单片机AT89C52求c语言编程
单片机是AT89C52,这是要仿真吧,那就先画出仿真图,确定什么数码管,才能写程序。下图是用四位一体的共阴数码管画的仿真图,P0口输出段码,P2输出位码。
⑨ 共阴极数码管四位0到999的循环在变为0怎么用c语言编写啊
#include<reg52.h>
#defineu16unsignedint
#defineu8unsignedchar/*********************************************************/
u8ds[4];//数码管显示缓存
codeu8w[]={~0x01,~0x02,~0x04,~0x08}; //位码
codeu8d[]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90,~0xff,};//断码
voiddispaly(){//显示函数
staticu8a;
if(++a>3)a=0;
P0=0x00;
P2=w[a];
P0=d[ds[a]];
}
/****************************************/
voidinit() //初始化函数
{
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
}
u16count=0;
u16js=0;
/***********************************/
voidmain()//主函数
{
init();//系统初始化
TR0=1;//定时器开始计时
while(1){
ds[0]=10;
ds[1]=count/100%10;//计数送到数码管显示缓存中
ds[2]=count/10%10;
ds[3]=count%10;
}
}
/****************************/
voidtimer0()interrupt1//1ms定时器
{
TH0=(65536-1000)/256;//重载初值
TL0=(65536-1000)%256;
dispaly();//显示
if(++js>=1000){1秒加一
js=0;
if(++count>999)count=0;
}
}
⑩ 如何将键盘检测的值动态显示在四位数码管上,用C语言编程
先扫描键盘输入,存在一个数组里,再用循环程序进行输出。由于你没有具体的外围电路设计,所以不能写出具体代码。给我分吧