导航:首页 > 操作系统 > 单片机dula

单片机dula

发布时间:2023-08-26 15:38:55

⑴ 89c52单片机的wela引脚跟la引脚在哪,求高手帮忙!

wela la 引脚是自己定义的,一般是P3.6 和P3.7 wela 和la 信号一般用来控制锁存器,进而控制数码管。

⑵ 单片机数码管显示生日实训会出现的问题

我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。

注:共阳极数码管:低电平点亮

共阴极数码管:高电平点亮

2.段码字节与字节中各位对应关系:
代码位: D7 D6 D5 D4 D3 D2 D1 D0

显示段: dp g f e d c b a

3.重影:IO口从高电平到低电平,有一定的残留的电流在里面。
在数码管动态显示实验中,每次送完段选数据后,在送入位选数据之前,需要一句
“P0 = 0xff” ,这条语句的专业名称叫做“消影”
解释如下:
在刚送完段选数据后,P0口仍然保持着上次的段选数据,若不加“P0 = 0xff”这句话,再执行接下来的打开位锁存器命令后,原来保持在P0口的段选数据将立即通过位选锁存器直接加在数码管上,接下来才是再次通过P0口给位选锁存器送入位选数据,虽然这个过程非常短暂,但是在数码管高速显示状态下,我们仍然可以看到数码管出现显示混乱的现象,加上消影之后,在开启位锁存器后,P0口数据全为高电平,所以哪个数码管都不会亮,因此这个消影的动作是很重要的。

4.关于送数据与送段选位选先后问题:
/*
* 函数名:DulaSet
* 描述 :数码管段选设置
* 输入 :DP:数码管段选是否为带小数点显示方式 Y:是 / N:否
* DU:段选——范围为16个字形码
* 输出 :无
* 备注 :先送位选数据,再使能锁存器,(最佳写法)
* 因为只有P0状态稳定了,锁进去的数据才不会出错
* 否则显示0x00(即数码管8位全关断)会有亮影
* 接着关锁存器,一瞬间锁存器即可锁存数据
*/

void DulaSet(uchar DP,uchar DU)

{

if(DP == Y)

P0 = NTDP[DU]; //送段选数据,带小数点段选表示

else if(DP == N)

P0 = NT[DU]; //送段选数据

DULA = 1; //开U1锁存器端

DULA = 0; //关U1锁存器端

}

5.数码管静态显示与动态显示的区别:
(对于单片机上8位的数码管(8段LED)

静态:

段码线:每一位段码线分别与一个8位I/O锁存器输出相连
位码线:8个8位I/O口
动态:

段码线:一个数码管占用一个8位I/O口
位码线:8个数码管占用一个8位I/O口
但在实际单片机硬件电路连接中,都把段码线并联,故,静态显示方式下,所有数码管显示相同。

3. 由于各个数码管的段码线并联,(静态显示下)在同一时刻,8个数码管将显示相同的字符,因此若要各个数码管能够同时显示出与本位相应的显示字符,就必须采用动态扫描的显示方式。即在某一时刻,只让某一位的位选线处于选通状态,同时,段码线上输出相应为要显示的字符。LED不同为显示的时间间隔(扫描间隔)应根据实际情况而定。发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱,人眼无法看清;时间太长,要受限于临界闪烁频率,而且此时间越长,占用单片机的时间越多。另外显示位数增多,也将占用大量的单片机时间,因此动态显示的实质是一些牺牲单片机的时间来换取I/O端口的减少。

⑶ 单片机 LCD为什么要关闭la,wela

la=0, weila=0应该是将段和位开放,使之有效,从程序看,估计这两位分别控制各自的锁存器或244或245之类的总线缓冲器。

⑷ 单片机程序中如何让数码管关闭,单片机进入休眠状态

你这是直驱方式显示,即使是掉电模式,单片机休眠了,但端口还保留在进入休眠前的状态,如共阴极的,必须要将端口送低P0=0;,你的P0=0xff;数码管是要耗电的,进入休眠时先将P0=0;才可以
P0=0;
PCON=0x02;

⑸ 运用51单片机实现4位8段LED数码管的动态数字显示,写出C语言程序

#include<reg52.h>
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
count;
uint
disnum;
sbit
la=P2^6;
sbit
wela=P2^7;
uchar
code
table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
display(uchar,uchar,uchar);
delay(uchar);
void
main()
{
EA=1;
ET1=1;
TMOD=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(count==20)
{
count=0;
//
if(disnum==1000)
//
disnum=0;
disnum++;
}
display(disnum/100,disnum%100/10,disnum%100%10);
}
}
void
tim1()
interrupt
3
using
3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
}
display(uchar
,uchar
shi,uchar
ge)
{
P0=table[];
la=1;
la=0;
P0=0xfe;
wela=1;
wela=0;
delay(1);
P0=table[shi];
la=1;
la=0;
P0=0xfd;
wela=1;
wela=0;
delay(1);
P0=table[ge];
la=1;
la=0;
P0=0xfb;
wela=1;
wela=0;
delay(1);
}
delay(uchar
x)
{
uchar
a,b;
for(a=x;a>0;a--)
for(b=255;b>0;b--);
}
//你自己看一下,有不对的就改点.别忘了给分啊

⑹ 单片机 sbit la=P2^6 wela=1 la=1 这三句什么意思

sbit la=P2^6
是申明U1锁存器的锁存端
wela=1
是U2锁存器开启
la=1
是U1锁存器打开
la=0是U1锁存器关闭

⑺ 51单片机显示八位数码管的C语言程序

1、最开始,我们先打开keil。

阅读全文

与单片机dula相关的资料

热点内容
教育系统源码达标 浏览:886
声卡驱动安装程序在哪个文件夹 浏览:60
钱还完了银行不给解压 浏览:169
linux的系统调用表 浏览:752
php怎么转换页面 浏览:546
我的世界买了服务器之后怎么开服 浏览:828
r1234yf汽车空调压缩机 浏览:145
ftp服务器地址栏 浏览:900
linux图形分区 浏览:965
安徽到辽宁源码 浏览:577
libs安卓的文件夹叫什么 浏览:871
生意圈app是什么意思 浏览:397
linuxarcgisserver 浏览:234
加密pdf怎么修改文件 浏览:138
红米刷机无命令怎么办 浏览:356
啥叫美国谷歌外包程序员 浏览:260
云服务器管家婆 浏览:440
发邮件命令 浏览:354
程序员好做吗工作好吗 浏览:886
云电脑服务器维护一个月多少钱 浏览:882