导航:首页 > 操作系统 > 单片机静态数码管显示8位数字

单片机静态数码管显示8位数字

发布时间:2024-08-12 16:05:14

单片机 按键控制8位数码管显示问题

关于数码管的显示,是显示完一个位的是数字后,在显示下一个位时要先把上一个位显示彻底关闭掉,通常可以是把全部数码管位全部显示为空的状态,谈后在开下一个位的显示(有延时),这样在开下一个位的锁存时上一个位的数据就不会跑到该位显示,不然会在下一位显示时会与上一个位的数字出现重影现象。。。
还有对于数码管的显示,最好是一次性显示完全部数码管,还没有得位就显示0ff(要记得初始化你的数组)。我个人不建议你这种显示按位数变化方式。。。
for(i=0;i<j;i=i+1)
//每次都显示完8个数码管比较好。。。
{
/*
在此增加把所有数码管显示为0FF状态,全部位都打开显示
*/
display=weima_table[i];
//数码管需要显示的位
weima_latch=1;
//锁存器(位码)打开
weima_latch=0;
//锁存器(位码)关闭
display=cunchudisplay[i];
//数码管需要显示的段
anma_latch=1;
//锁存器(段码)打开
anma_latch=0;
//锁存器(段码)关闭
Delay(100);
}
判断归零一个变量,最好紧跟在修改该值的后面,不用放在主循环里每次循环都要判断,虽然你那没多大问题但可读性不够好。。。
j=j+1;
if(j==8)
{j=0;}

② 51单片机,怎样编程,让所有的数码管都显示8,给出详细编程,谢谢!

让所有的数码管都显示8其实是最简单的,将所有位码都置为有效,段码送8的码就可以了,不需要扫描。
比如:P0为段码,P2为位码
ORG 0000H

LJMP MAIN
ORG 0030H
MAIN:
MOV P0,#7FH

MOV P2,#00H

SJMP $

END

③ 设计一位8段数码管静态显示接口电路,选用单片机P0作数据信号,并列表写出显示0—9的显示段码

#include<reg51.h> // 包含51单片机寄存器定义的头文件
/**************************************************
函数功能:延时函数,延时一段时间
***************************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
/**************************************************
函数功能:主函数
***************************************************/
void main(void)
{
unsigned char i;
unsigned char code Tab[10]=;
//数码管显示0~9的段码表,程序运行中当数组值不发生变化时,
//前面加关键字code ,可以大大节约单片机的存储空间
P2=0x7f; //P2.7引脚输出低电平,数码显示器第7位接通电源工作
while(1) //无限循环
{
for(i=0;i<10;i++)
{
P0=Tab[i]; //让P0口输出数字的段码92H
delay(); //调用延时函数
}
}
}
另外,站长团上有产品团购,便宜有保证

④ 51单片机数码管显示8位二进制数程序,第6、7位永远都只显示0,其他位显示正常。

MOV 26H,20H ;二进制数第6位送26H单元
MOV 20H,A
RR A
ANL 20H,#01H
MOV 27H,20H ;二进制数第7位送27H单元
这26H,27H是保存第6,7位数据的,但是延时慧粗子程序又用顷闹26H,27H单元了,延时结束,这两个单元永远是0了。
DELAY: MOV 26H,#4 ;延时服务子程序
DLY1: MOV 27H,#250
DJNZ 27H,$
DJNZ 26H,DLY1
RET
这延时子程序要用29H,2AH,两个单元就好雀碧罩了,还不如用R4,R5更方便呢,也不会出错。这样的
DELAY: MOV R4,#4 ;延时服务子程序
DLY1: MOV R5,#250
DJNZ R5,$
DJNZ R4,DLY1
RET
这多好哇

⑤ 单片机 按键控制8位数码管显示问题

关于数码管的显示,是显示完一个位的是数字后,在显示下一个位时要先把上一个位显示彻底关闭掉,通常可以是把全部数码管位全部显示为空的状态,谈后在开下一个位的显示(有延时),这样在开下一个位的锁存时上一个位的数据就不会跑到该位显示,不然会在下一位显示时会与上一个位的数字出现重影现象。。。
还有对于数码管的显示,最好是一次性显示完全部数码管,还没有得位就显示0ff(要记得初始化你的数组)。我个人不建议你这种显示按位数变化方式。。。

for(i=0;i<j;i=i+1) //每次都显示完8个数码管比较好。。。
{
/*
在此增加把所有数码管显示为0FF状态,全部位都打开显示
*/
display=weima_table[i]; //数码管需要显示的位
weima_latch=1; //锁存器(位码)打开
weima_latch=0; //锁存器(位码)关闭
display=cunchudisplay[i]; //数码管需要显示的段
anma_latch=1; //锁存器(段码)打开
anma_latch=0; //锁存器(段码)关闭
Delay(100);
}

判断归零一个变量,最好紧跟在修改该值的后面,不用放在主循环里每次循环都要判断,虽然你那没多大问题但可读性不够好。。。
j=j+1;
if(j==8)
{j=0;}

阅读全文

与单片机静态数码管显示8位数字相关的资料

热点内容
c编译器发布视频 浏览:801
python绝配 浏览:647
2017年安卓机皇是什么手机 浏览:830
程序员做手工制作 浏览:142
如何将服务器沉入水里 浏览:448
如何在屏幕上不显示常用app 浏览:508
python3课程 浏览:175
java8编程开发入门 浏览:952
如何找出文件夹中同一尺寸的图片 浏览:681
bg在服务器是什么意思 浏览:899
java资源下载 浏览:530
程序员学习的游戏软件 浏览:929
编程里的面向90度是哪个方向 浏览:84
pdf光标 浏览:581
java发布web项目 浏览:467
图形化拖拽编程框架 浏览:233
饥荒android版 浏览:569
福建编程机构万 浏览:322
烽火交换机命令 浏览:584
win10uefilinux 浏览:837