1楼:匿名用户
只想用p3口的话,必须另加控制元件。
1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2另一方法是,用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3再就是可以用p3口的两根串行线接串并转换ic,来驱动数码管。
2楼:邑大小卒
不妨到我们这个电子世家单片机群:255847245,里面的同行或许能帮得到你。
3楼:匿名用户
用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
89c52单片机怎么点亮8个数码管?下面**为什么就亮了3个
4楼:水知余心
遇到相同的问题,我是这样解决的:
1、添加延时
2、在位选和段选打开之前先赋值
以下是我的程序,仅供参考:
#include
#defineuintunsignedint#defineucharunsignedcharsbitwe=p2^7;
sbitdu=p2^6;
voiddelay(uintz)
ucharcodeleddata=;
voidmain()
下面是效果图:
5楼:匿名用户
其实已经亮了,但是你看不到
void main()
6楼:斗天乐
你把程序中段选赋不同的值试试看是什么原因。
7楼:匿名用户
#include
sbit dula=p2^6;
sbit wela=p2^7;
void main()}
8楼:匿名用户
我的建议是p3=0x00这样才能控制八位吧
单片机89c52如何控制多个数码管?
9楼:娜莉china小
只想用p3口的话,必须另加控制元件。
1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2另一方法是,用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3再就是可以用p3口的两根串行线接串并转换ic,来驱动数码管。
10楼:匿名用户
mov31h,#00h
mov32h,#00h
mov33h,#01h
mov34h,#06h
mov35h,#03h
mov36h,#02h
acalld0
jmp$-2
d0:movr0,#31h
movr2,#11111110b
movdptr,#tab
d1:orlp1,#00111111bmova,@r0
movca,@a+dptr
movr3,#8
d2:rlca
movp3.2,c
setbp3.3
clrp3.3
djnzr3,d2
incr0
mova,r2
anlp1,a
d3:movr3,#250djnzr3,$
mova,r2
rla
movr2,a
jbacc.6,d1
rettab:db3fh,06h,5bh,4fhdb66h,6dh,7dh,07h
db7fh,6fh,77h,7ch
db39h,5eh,79h,71h
db40hend
单片机89c52如何控制多个数码管?
11楼:匿名用户
1.用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2.用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3.用p3口的两根串行线接串并转换ic,来驱动数码管。
89c52单片机如何让数码管从520到1314
12楼:无风的大浪
只想用p3口的话,必须另加控制元件。
1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2另一方法是,用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3再就是可以用p3口的两根串行线接串并转换ic,来驱动数码管。
13楼:
参考一下这个**实例吧,数码管显示 加 按键输入。
单片机,p0口接led共阳数码管,p3.2k1口和p3.3k2口接开关。 20
14楼:匿名用户
#include
sbit k1=p3^2;
sbit k2=p3^3;
bit glint; //闪烁标志位
void delay()
main()
if(k1==0)
if(k2==0)}}
89c52单片机怎么点亮8个数码管
15楼:匿名用户
8个数码管如果显示不同内容,那么一般需要动态扫描显示,才能消耗最小的硬件资源。
如果显示同一个内容,那么就直接送段码,位控全开就可以了。
单片机89c52如何控制多个数码管?
16楼:娜莉china小
只想用p3口的话,必须另加控制元件。
1一种方法是用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2另一方法是,用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3再就是可以用p3口的两根串行线接串并转换ic,来驱动数码管。
17楼:匿名用户
1.用两个锁存器来锁存数码管的段码和位码,进行动态扫描显示。
2.用p3口的4位接一个bcd译码器控制数码管的段码,再p3口的3位接一个3-8译码器来控制数码管的位进行动态扫描。
3.用p3口的两根串行线接串并转换ic,来驱动数码管。
89c51单片机的p3口接一个共阳极的数码管
18楼:匿名用户
//电路说明如下。
//单片机:使用51系列兼容的即可;
//4×4矩阵键盘:接在p1口;
//两位数码显示器: p0口输出七段码,p2口输出位选码。
//c语言程序如下。
* 文件名: key_led.c
* 功能 : 对4×4矩阵键盘进行输出,在数码管后两位显示按键值。
#include
#include
#define uint unsigned int
#define uchar unsigned char
//uchar code table[10] = ;
uchar code table[10] = ;
* 名称 : delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
void delay_1ms(uint x)
* 名称: keyscan()
* 功能: p1外接4×4按键, 按照扫描法读出键值
* 输出: 按键值0~15/如无键按下, 返回16
uchar keyscan(void)
; for(j = 0; j < 4; j++) }
return 16; //判断结束,没有键按下,返回16
} //呵呵,实质性的语句不过8行,就是这么简练!
* 名称: display(uchar k)
* 功能: 将参数分成十位、个位分别显示
* 输入: k (键盘数值)
* 输出: p0口输出七段码,p2口输出位选码
void display(uchar k)
* 名称 : main()
* 功能 : 主函数
void main(void)
//---------以下是对按键的处理
display(key_value); //显示键值} }
19楼:做而论道
呵呵,楼上的答案的电路、程序,可见:
http://hi.baidu.***/%d7%f6%b6%f8%c2%db%b5%c0/blog/item/ef086222268d4f4eac34de59.html