八个数码管共用一个总线,怎样让数码管显不一样的数

最近在学习单片机,单片机的MCU是STC89C52RC,看那图纸上八个数码管是共用一个数据总线,现在要几个管子同时都显,并且显的数不一样,哪位高手指教下~~!!(最好是用... 最近在学习单片机,单片机的MCU是STC89C52RC,看那图纸上八个数码管是共用一个数据总线,现在要几个管子同时都显,并且显的数不一样,哪位高手指教下~~!!(最好是用C写下)
数码管是共阳的
展开
 我来答
yaotongsuo
2009-07-26
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
可以循环扫描。有不同的程序,你只要设置合适的扫描时间,由于LED余晖作用,人眼看见都亮。
ORG 0100H
MAIN: MOV R3,#00H ;字型码初始地址

LOOP: MOV DPRT,#TABLE ;字型码送数据指针
MOV A,R3
MOV A,@A+DPTR
MOV P1,A ;送显示
MOV R4,#0E8H ;循环显示某个字培陆碧符1S
DELAY: ACALL DISPLAY ;显示
DJNZ R4,#DELAY ;延时显示时间示到继续
INC R3 ;显示下个字符
CJNE R3,#0AH,LOOP ;示悉唯显示到9续续
AJMP MAIN ;返回主程序
DISPLAY:MOV R1,#08H ;共显示配举8位LED
MOV R5,#00H ;从第一位开始显示
DISP: MOV A,R5
MOV P3,A ;送地址数据
ACALL DELAY1 ;送位显示15MS
INC R5 ;指向下一位LED
DJNZ R1,DISP ;8位未显示完继续
RET
DELAY1: MOV R6,#10H ;延时子程序
LOOP1: MOV R7,#38H
LOOP2: DJNZ R7,LOOP2
DJNZ R6,LOOP1
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END ;程序结束
Jy_hong
2009-07-22 · TA获得超过270个赞
知道答主
回答量:164
采纳率:100%
帮助的人:69.3万
展开全部
采用循环扫描的方法。

即森郑循环点亮此没颂每盏灯,在一个特定的时间点,只有一盏灯是亮的,此时数据线的数据就是那盏灯的数据,循环点亮每一盏灯,因为速度很快,给人眼的感觉就是几盏灯同时亮。
下面是察贺以前写的程序,给你参考一下:
/**********************************************************
Function: pos_display(uchar *c)
Description:每1MS扫描一次LED位置
Calls: none
Called By: initial()
Input: *c
Output: none
***********************************************************/
void pos_display(uchar *c)
{
if (pos ==0 )
{
L1 = 0;
L2 = 1;
L3 = 1;
L4 = 1;
}
if (pos == 1)
{
L1 = 1;
L2 = 0;
L3 = 1;
L4 = 1;
}
if (pos == 2)
{
L1 = 1;
L2 = 1;
L3 = 0;
L4 = 1;
}
if (pos == 3)
{
L1 = 1;
L2 = 1;
L3 = 1;
L4 = 0;
}
P0 = *c;
pos++;
if (pos == 4)
{
pos = 0;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
120马恒伟
2009-07-23 · 超过18用户采纳过TA的回答
知道答主
回答量:130
采纳率:0%
帮助的人:68.4万
展开全部
动态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式