51单片机没锁存器怎么开数码管

看不出有锁存器,这要怎么用?我直接:
#include<reg52.h>
sbit do1=P1^0;
sbit do2=P1^7;
void main()
{
while(1)
{
do1=1; //打开位寄存器
P0=0xc0;
do1=0;
while(1);
}
}

给这P1.0设置是可以打开第一个数码管,然后显示0的。

楼主,这个数码管用的是共阳极接法,P1.0-P1.3接数码管的公共端,数码管具体显示的字符由P0口决定,我们常常称P1.0-P1.3是数码管的片选端,楼主说的锁存器在IO口的内部,可以在51单片机IO口工作原理图上看到。http://www.360doc.com/content/10/1117/23/1405240_70289220.shtml
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-05
开数码管与是否有锁存器无关。没有锁存器,直接使用 动态显示。追问

我明白这点,不过选择亮哪个数码管我不太明白,我知道P0.0到3是四个数码管的位选,那要让它们全亮不是要写
P0^0
P0^1
P0^2
P0^3

追答

先要对位选进行位定义,sbit SEG1 =P0^0; ………………
然后对位选开/关进行宏定义 #define SEG1_En SEG1=0;#define SEG1_Dis SEG1=1;
其实像这样具有 顺序的、连续的接口,可以直接使用 算法:如 DisLoca 表示 显示哪个位,那么 SEG_En= ~(1<<DisLoca);(其中 SEG_En 宏定义为 P0口),为了不影响 其他 4个口的电平,可以使用:SEG_AllOff; SEG_En &=~(1<<DisLoca);(其中 SEG_AllOff 宏定义为 SEG_En |=0x0f)

51单片机中不用锁存器怎么显示动态数码管
但是,要是做实物,可以不用锁存器,但驱动必须用,不用74电路,可以用三极管驱动。什么也不用,肯定是不行的。另外,你也没说清,89c51的具体型号,可能是AT89C51,做实物时,是无法烧录程序的。还可能是STC89C51,可以做实物,用共阳数码管,要用PNP三极管驱动位控。

51单片机请问没有锁存器是怎么变成控制段选 请举个例 简单的 谢谢_百度...
单片机内部没有锁存器,你的显示是扫描显示的,依次点亮数码管,每一数码管亮4~10ms,再亮下一个,人眼可以保留100ms ,看起来就是全亮的

51单片机 求一个不用锁存器的利用定时器让数码管显示从00到99的C语言...
(1)数码管显示的原理。一般使用动态显示 (2)定时器工作的原理。基本属于入门级别的,你可以先写写看。不懂的可以再问。

单片机最小系统没有锁存器,如何控制四位数码管,如何位选
用数码管动态显示,然后就是把这四位数码管共阴或者共阳,为增加单片机的驱动能力,添四个三极管!控制这四个三极管,实现位选

如何定义没有锁存器的4位数码管位选
如果在程序中想一位一位地控制,可以用sbit led1=P2^0;这里的P2.0只是一个例子而已,就看用哪个引脚控制就写什么。这样定义位选,写程序时,是比较麻烦的。其实,也不用定义什么位选的,一要看是共阴还是共阳的数码,即是位控的有效电平是什么,二是要看在哪个口控制的,写程序时直接给控制口...

小弟初学单片机,现在学到数码管显示,但是买的板子上没有锁存器,和教 ...
动态扫描,上面三极管一个一个扫,每次有且只有一个导通,每1ms导通一个,八个完成之后,再重新开始

单片机控制数码管时为什么要用到锁存器,难道不可以直接控制吗?_百度...
只要单片机的驱动电流足够时当然可以直接控制数码管,但这样占用很多单片机端口所以般不这样做,用锁存器既能节约单片机站口,又能增加驱动电流,所以一般用锁存器驱动数码管。

51单片机、一个18b20测温,数码管显示的电路图
51单片机连接多个数码管,不使用锁存器等附加元件,需要进行扫描来显示。八个数据口,每个数码管再占用一个使能位选。给你一张图片看看。图上的三极管是增加驱动能力的,用普通数码管时可以不加。18b20是单线的,就是说加个两条电源线,和一条单条数据线(自己选51单片机的一个引脚就可以了)。连接...

c51单片机中 如图所示,没锁存器怎能保持数据。比如当来第一个数时,位...
循环显示速度慢,调整一下延时,就是把显示完每个数码管后的延时调短

数码管的段选直接用51的P1怎么操作,必须用锁存器吗,怎么用?(动态数码...
不一定要用锁存器,段选 直接串限流电阻接P0,位选 接其它io 。

相似回答