⑴ 设计单片机控制6位数码管动态显示电路,并编程实现让数码管同时显示
#include #include #define uchar unsigned char#define uint unsigned intuchar code DSY_CODE[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,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)%16;/*显示0-f*/DelayMS(400);}}
⑵ 用51单片机设计3位led数码显示管作秒表00.0-99.0求设计电路与c语言程序
#include "STC12C54.H"
#define uchar unsigned char
#define uint unsigned int
#define dataport P1//P1直接驱动数码管的8个阳极
sbit wei1=P3^3;//再有三个管脚接3个三极管驱动数码管的阴极
sbit wei2=P3^4;
sbit wei3=P3^5;
uint a=0;//中断次数计数,一次50ms,20次为1 秒
//共阴数码管七段码
uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//延时子程序
void delay1ms(uint t)
{
uint i,j,k;
for(i=t;i>0;i--)
for(j=15;j>0;j--)
for(k=27;k>0;k--);
}
//显示子程序
void display(uint n)
{
uchar a1,a2,a3;
a1=n/100%10;
a2=n/10%10;
a3=n%10;
wei1=1;
dataport=TABLE[a1];
delay1ms(1);
wei1=0;
dataport=0x80|TABLE[a2];//这里多个小数点
delay1ms(1);
wei3=1;
dataport=TABLE[a3];
delay1ms(1);
wei3=0;
}
void init(void)
{
TMOD=0X01;
TH0=(655536-50000)/256;//定时50ms
TL0=(655536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1M0=0;
P1M1=0xff;//P1口设为推挽输出,驱动能力强
P3M0=0;
P3M1=0x38;//P3.3P3.4 P3.5口设为推挽输出
}
void main(void)//主程序
{
init();//初始状态设定
while(1)
{
display(a/2);//显示计数值,以十分之一秒为单位
}
}
void timer0(void)interrupt 1//中断子程序
{
TH0=(655536-50000)/256;
TL0=(655536-50000)%256;
a++;
if(a==1980)a=0;//1980次是99秒
}
⑶ 单片机显示电路设计
根据系统要求,需要用数码管来显示预置时间及剩余时间。显示时、分、秒共需要6位数码管,显示定时的路数需要1位数码管,而单片机当前的工作状态,则用一只双色发光二极管指示。
1.LED数码管带小数点的LED数码管由8段发光二极管组成,分别定义为a、b、c、d、e、f、g和dp,8段发光二极管的一个同名端接在一起,定义为公共端(com)。根据所接同名端的不同,LED数码管分为共阴和共阳两种,图4为其外形及结构图。要令数码管显示不同的字符,一要分别控制各段的独立端的电平,二要控制公共端,使相应的发光二极管点亮。如要显示“1”,则应使b、c点亮。以共阴数码管为例,应向b、c端送高电平,其余段送低电平,向com端送低电平。我们通常称控制a~g和dp的信号为段码,控制com端的信号为位码。
2.单片机与LED数码管的接口单片机与LED数码管的接口分为静态显示和动态显示两种。静态显示时,数码管的段信号和位信号始终保持不变,在多位显示时,每一位数码管的段信号都需要用锁存器进行锁存。动态显示则采取I/O口分时复用的方式输出数码管的段信号,由位选信号决定某一时刻哪一位数码管显示。由于人眼的视觉暂留效应,只要让多位数码管轮流显示,而同一位数码管每次显示相同的字符,则所看到就是固定的字符串了。
3.多功能定时器的显示电路如图l所示,显示电路由共阴数码管PLL~PL4、达林顿驱动电路UI~N2803A、R卜R8等组成,采用动态显示方式。PLl~PL3分别显示秒、分和时,PL4显示时间段。Po口为数码管的段选输出口。P2.0~P2.6为数码管的位选输出口。由于AT89S52只有4个TTL门的驱动能力,因此需要外接驱动电路。
参考资料来源:吴鉴鹰吧
贡献资料:网络文库《吴鉴鹰单片机项目实战精讲》
单片机开发板学习:参考吴鉴鹰单片机开发板(视频教程详细,技术支持到位)
⑷ 如何利用单片机让4位数码管显示
程序如下(用的是STC89C52芯片):
#include<reg52.h>//52系列单片机头文件
#defineucharunsignedchar
#defineuintunsignedint
uintx,y;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共阴极数码管编码
voiddisplay(uchar,uchar,uchar,uchar);//声明子函数
voiddelay(int);//声明子函数
voidmain()
{
while(1)
{
display(1,2,3,4);//主程序始终调用数码管显示子程序
}
}
voiddisplay(uchara,ucharb,ucharc,uchard)
{
P2=0xef;
P0=table[a];//给第一个数码管送"a"
delay(1);//延时1ms
P2=0xdf;
P0=table[b];//给第二个数码管送"b"
delay(1);//延时1ms
P2=0xbf;
P0=table[c];//给第三个数码管送"c"
delay(1);//延时1ms
P2=0x7f;
P0=table[d];//给第三个数码管送"d"
delay(1);//延时1ms
}
voiddelay(uintz)//延时子函数
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(4)单片机显示电路设计扩展阅读
led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
⑸ 如何设计单片机电路图
1、需要对单片机的给引脚的资料要熟悉,比如复位电路、晶体震荡电路,这些都是必不可少的;
2、要明确设计要求,比如按键安排、LED指示、数码显示等,整体来说,单片机的设计比设计其它控制电路容易;
3、在设计时得考虑软件安排,有的用软件来实现比用硬件更方便,但有的却相反,所以在设计时先考虑好。
⑹ 单片机控制100个LED,怎么设计电路
LED显示屏又叫电子显示屏,是由LED点阵组成,通过红色或绿色灯珠的亮灭来显示文字、图片、动画、视频,内容可以随时更换,通常由显示模块、控制系统及电源系统组成。显示模块由LED灯组成的点阵构成,负责发光显示;控制系统通过控制相应区域的亮灭,可以让屏幕显示文字、图片、视频等内容,恒舞动卡主要是播放动画的;电源系统负责将输入电压电流转为显示屏需要的电压电流。
LED显示屏广泛应用于信息指示灯,大屏幕显示,液晶显示的背光灯,固体照明等。本文设计一种由4个16×16点阵LED模块组成的显示屏,由单片机作控制器,平滑移动显示任意多个文字或图形符号,本电路可级联扩展实现由任意多个16×16点阵LED模块组成的显示屏。
控制电路设计
控制电路由AT89C51单片机作控制器,显示屏由4个16×16点阵LED模块组成,每个16×16点阵LED模块由4个8×8点阵LED模块组成,用户可根据需要扩展增加任意多个16×16点阵LED模块。8×8点阵LED模块结构如图1所示,共8行8列,每个发光二极管放置在行线和列线的交叉点上,共64个发光二极管。当某一列为高电平,某一行为低电平时,则对应的发光二极管点亮。