Ⅰ 我用51单片机串行通信方式去控制一块8×8LED点阵屏,显示的时候,文字闪烁厉害……
按照人的常规的视觉停留的频率计算就行了,一般地,扫描频率要50HZ以上肉眼看起来就不闪烁,就拿50HZ阀值,那么一个点阵显示的时间为1S/50=20mS,即需要20mS后知薯再对它进行扫描;
但是你每行是5mS,那么一共有8行,重复扫描时间为5mS*8=40mS>>20mS,所以当然看起来闪烁。
把扫描时间跳到2.5到枯凯2mS就差不多了,太小的话,没猛唤通电时间过短,显示亮度不足。
Ⅱ 单片机单个数码管元件名称是什么
数码管,亦称辉光管,是一种能显示数字及其他信息的电子元件。
原理图:
1. 显示原理:亮为0,暗为1,数码管从右至左显示二进制数。
2. 控制方式:
a. 位选:如控制第1个数码管,需选择相应的位选信号。
b. 段选:确定要显示的数字后,通过控制数码管的特定段来实现。
void display(void) 函数:
P2 = ((P2&0x1F)|0xE0); // 数码管消隐
P0 = 0xFF;
P2 &= 0x1F;
P2 = ((P2&0x1F)|0xC0); // 位选控制
P0 = 1<<dspcom;
P2 &= 0x1F;
P2 = ((P2&0x1F)|0xE0); // 段码输入
P0 = tab[dspbuff[dspcom]];
P2 &= 0x1F;
if(++dspcom == 8){ // 循环检查
dspcom = 0; // 重置计数器
}
结构图:
1. 高低电平:
a. 高电平:确保逻辑门输入为高电平的最小电压。
b. 低电平:确保逻辑门输入为低电平的最大电压。
2. 共阳极与共阴极:
a. 共阳极数码管:八段发光二极管的阳极相连,阴极独立控制。
b. 共阴极数码管:八段发光二极管的阴极相连,阳极独立控制。
真值表:
数字 真值表
0 0xC0
1 0xF9
2 0xA4
3 0xB0
4 0x99
5 0x92
6 0x82
7 0xF8
8 0x80
9 0x90
Tips:
二进制:前缀0b/0B,后缀b/B
八进制:前缀0,后缀o/O
十进制:无前缀,可有+/-后缀d/D
十六进制:前缀0x/0X,后缀h/H
特殊功能寄存器:
sbit是定义特殊功能寄存器的位变量,如sbit led1 = P1^0,用于控制P1口0位端的发光二极管。
sfr是定义特殊功能寄存器的8位寄存器,如sfr P1 = 0x90,用于访问51单片机内部的特殊功能寄存器。
Ⅲ 单片机电子钟原理图,帮我大概解释一下这个图的工作原理就可以了,谢谢。带图!5分
本电子钟采用PIC16C55单片机控制,适于温室的定时恒温或自来水的定时定压控制等。PIC16C55单片机工作电压为2.5~6.25V,功耗低、驱动能力强。本电子钟可以控制一路负载在24小时内的3次开/关;一个双限触发的定时输出口,既可接传统的功率保持型继电器,也可接脉冲继电器。本机用四位LED数码管扫描式显示,还有消隐(省电)工作方式,使用起来非常灵活、方便。
一、 电子钟工作原理
电子钟电路见图1。RB7口是定时指示端,在定时开期间输出高电平,驱动V1发光,该口也可经缓冲作定时输出口;RB6是双限触发控制的定时输出口,其工作方式是:在RB7高电平期间,若RB1为高电平,则RB6输出高电平;若RB0为高电平,RB6输出低电平;若RB1、RB0同为低电平,RB6保持原态; 同为高电平时,RB6输出低电平。RB5、RB4用于驱动脉冲继电器,RB6上升沿触发RB5输出高电平开脉冲;在RB6下降沿触发RB4时,RB4端输出高电平关脉冲,开/关脉冲的持续时间均为125ms。
图 1
RB3是消隐控制器,接高电平(即SK1闭合)时,显示屏及秒闪正常;否则,显示消隐。显示消隐时,时钟及各控制逻辑都正常运行,如忽略RB4至RB7各口的驱动电流,则在3V供电时,整机电流不足20μA,即两节5号电池可用数月!RB2选择数码管极性,RB2为低电平,使用共阴LED;RB2为高电平,则用共阳LED。数码管的极性是在上电初始化时,根据 RB2口状态确定的,工作过程中改变RB2的电平则不起作用。
本机设S1~S4四个按键,S1是功能选择键,S2是小时增量调整,S3是分钟增量,S4用于分钟减量调节,其使用方法为:
上电时,RB5至RB7均为低电平,RB4端送出一个关脉冲,使SK1闭合,整机正常显示、工作,RC7口送出秒闪脉冲,RC6~RC0送字段码。RA3~RA0分别为10时、时、10分、分位的位码输出。这时,按一下S2或S3(时增量/ 分增量键),可使RB7端置位或复位。
在正常走时期间,秒闪正常;在校对或设置定时时,秒停闪。例如:在正常走时期间,按一下S1键,秒闪停止,屏幕显示J-,表示可以校对时间。这时再按S2~S4中任一键,屏幕显示现在时间,但秒不闪,此刻可按S2~S4校对时钟。再次按S1,屏幕显示 1∪,表示可以设定第一次开时间,此时按S2~S4对时间进行查看及设置。继续按S1,系统显示1∩,表示可设置第一次关时间……依次进行。设置好系统及 3次开关时间后,整机回到正常显示状态,秒闪恢复。
如欲取消某次开/关定时,只需把该次的开与关时间设置成相同值即可。
笔者曾把该时钟用于定时定压供水控制系统,RB6端用于驱动继电器(也可用RB5与RB4两端驱动脉冲继电器),RB1端接水压(水位)的低限输入,RB0 端接高限输入,设置好定时,一个简易的定时定压自动供水系统即告完成。
二、 编程技巧
PIC16C55单片机程序存储器只有512字节,加上采用外接32768Hz晶体振荡方式,时钟速度较低,因此,统筹好系统的工作时序与人机界面之间的关系是软件设计成败的关键。本机编程采用如下方案:软件工作流程见附图2。
图 2
PIC16C55单片机的一个机器周期是4个时钟周期,不难算出,本系统中每秒有8192个机器周期。在编制软件时,先设定单片机内部定时计数器F1的计数方式为机器周期的64分频。这样,每当F1溢出时,系统递加2秒。平时,系统每128个机器周期内用RC口与RA口驱动扫描一次显示屏,可保证每秒内扫描64次显示屏,基本上无闪烁感。而 128个机器周期正是F1的第0位(为便于叙述以下简记为F1?0)每次下降沿的间隔时间,我们可以编一段程序,当F1?0的下降沿到来时,扫描一次显示屏,每当F1的低4位为全0时(125ms一次)使系统检测一次RB口与按键状态,并进行相关处理,部分相关程序如下:
WAIT BTFSC 1,0 ;等待F1?0的下降沿,编程时
GOTO WAIT ;要保证每次下降沿前到此
MOVFW 1
SKPNZ
GOTO CLOCK ;F1=0,满2秒,转时钟处理
ANDLW 0FH ;屏蔽F1高4位
SKPZ
GOTO DISPLAY;F1低4位不为0,转显示
MOVLW 0C0H ;满125mS,使RB口脉冲复位
ANDWF 6,1
MOVLW 0FH ;检测按键
TRIS 7
MOVFW 7
ANDLW 0FH ;保留按键数据
SKPZ
GOTO AN;有键值,转按键处理
DISPLAY …… ;显示扫描,定时管理RB口
CLOCK …… ;时钟,定时处理程序
AN …… ;按键管理程序
Ⅳ 单片机数码管消影是什么意思
消隐就是不需要时不显示,当需要它显示时才显示。
共阳的话,
当P0=0XFF;时它熄灭
P0=0时它显示
Ⅳ 单片机中的位选与段选的区别
单片机中的位选与段选的主要区别为:
1、数字显示不同
段选用于控制数码管的笔画,也就是数码管显示数字内容,字母也可以显示。
位选用于控制多个数码管中的一个或几个数码管是否显示数字或字符。
2、关闭是否显示内容不同
位选如果关闭就不会显示任何内容。
3、重影问题
位选与段选都需要不同的消隐方法,需要根据外部硬件来适当修改。基本思路就是别让上次遗留的IO状态影响到当前需要的数据。但是数码管动态扫描要求比较高,在设计的时候按经验来说的话都说先段选,
例如:
wei = 1; 先关闭数码管位选
P0 = 0xC0; 段选赋值
wei = 0; 开启位选
Delay(); 延时这里延时是停留时间,
如果先段选在为选,会出现重影。
(5)单片机程序消隐的作用扩展阅读:
以4位7段共阴极数码管为例:
4位就是指4个数码管,7段就是指数码管的a到g段。
位选控制哪个数码管选通,段选控制每个数码管a到g段哪个点亮。
如果是共阴极,那么每个数码管的led阴极连在一起(即位选),那么只有位选为低才选通,此时如果段选为高,则数码管点亮(4个数码管的所有段选是连在一起的)。总言之应该是:位选是选中它,段选才是让它显示什么数。