单片机交流
登录
直播中
李桂兰
7年用户
1447经验值
私信
关注
[问答]
怎样去搭建一种数码管的仿真威廉希尔官方网站 呢
开启该帖子的消息推送
数码管
仿真威廉希尔官方网站
什么是LED数码管?
什么叫数码管静态显示?怎样去搭建一种数码管静态显示的
仿真
威廉希尔官方网站
?
什么叫数码管动态显示?怎样去搭建一种数码管动态显示的仿真威廉希尔官方网站 ?
回帖
(1)
李亮
2021-9-13 17:04:48
一、LED数码管简介
LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。
数码管有共阳极和共阴极两种
共阴极: 数码管的发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。
共阳极: 数码管的发光二极管的阳极连在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。
二、数码管静态显示
数码管静态显示就是无论多少位LED数码管,同时处于显示状态。
为了使数码管显示不同的符号或数字,只需要把某些段发光二极管点亮就可以了。
假设在共阴极的数码管上显示字符‘0’,需要将a、b、c、d、e、f置为高电平,即数码管八位输入为0011 1111,对应的16进制数为0X3F。所以我们只需要在程序中将0X3F赋值给对应的端口,如下:
//假设数码管与P0端口相连接 P0 = 0X3F;//显示字符‘0’ 按照上述方法,显示各种字符的8段LED数码管的段码如下:
搭建仿真威廉希尔官方网站 如下
例程如下:
/******************************************************************************
* 名称:单只数码管循环显示0~9 *
说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示
******************************************************************************/
#include《reg51.h》
#define uchar unsigned char
#define uint unsigned int
//共阳数码管编码表 uchar code table1[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
//共阴数码管编码表 uchar code table2[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
//延时 void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;
t《120;t++);
}
//主程序 void main()
{
uchar i=0;
P0=0x00;
for(; i 《 10; ++i)
{
P0 = table2;
if(i == 9) i = 0;
DelayMS(300);
}
while(1);
}
三、数码管动态显示
如果有两位的数码管,每个数码管要显示不同的字符,那么威廉希尔官方网站 该怎么搭建呢?
像这样???
可以是可以,但是占用了太多端口,如果要同时显示4位、8位数码管,单片机的端口显然就不够用了。
因此,对于多位数码管,经常使用动态扫描的方法来显示:
无论在任何时刻只有一个LED数码管处于显示状态,利用人的视觉暂留效应,依次显示每个不同的数码管。某一时刻,只有一位LED数码管被选通显示,其余位则是熄灭的,人眼看到的是若干位稳定的同时显示的字符。
搭建仿真威廉希尔官方网站 如图:
例程如下:
/******************************************************************************
* 名称:8只数码管动态显示多个不同字符 *
说明:数码管动态扫描显示0~7。
******************************************************************************/
#include《reg51.h》
#include《intrins.h》
#define uchar unsigned char
#define uint unsigned int
//共阳数码管编码表 uchar code table1[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
//共阴数码管编码表 uchar code table2[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
//延时 void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t《120;t++);
}
//主程序 void main()
{
uchar i,wei=0x80;
while(1)
{
for(i=0;
i《8;i++)
{
P0=0xff;
P0=table1;
//发送段码 wei=_crol_(wei,1);
P2=wei;
//发送位码 DelayMS(2);
}
}
}
编译、烧录,实验效果如图:
一、LED数码管简介
LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。
数码管有共阳极和共阴极两种
共阴极: 数码管的发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。
共阳极: 数码管的发光二极管的阳极连在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。
二、数码管静态显示
数码管静态显示就是无论多少位LED数码管,同时处于显示状态。
为了使数码管显示不同的符号或数字,只需要把某些段发光二极管点亮就可以了。
假设在共阴极的数码管上显示字符‘0’,需要将a、b、c、d、e、f置为高电平,即数码管八位输入为0011 1111,对应的16进制数为0X3F。所以我们只需要在程序中将0X3F赋值给对应的端口,如下:
//假设数码管与P0端口相连接 P0 = 0X3F;//显示字符‘0’ 按照上述方法,显示各种字符的8段LED数码管的段码如下:
搭建仿真威廉希尔官方网站 如下
例程如下:
/******************************************************************************
* 名称:单只数码管循环显示0~9 *
说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示
******************************************************************************/
#include《reg51.h》
#define uchar unsigned char
#define uint unsigned int
//共阳数码管编码表 uchar code table1[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
//共阴数码管编码表 uchar code table2[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
//延时 void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;
t《120;t++);
}
//主程序 void main()
{
uchar i=0;
P0=0x00;
for(; i 《 10; ++i)
{
P0 = table2;
if(i == 9) i = 0;
DelayMS(300);
}
while(1);
}
三、数码管动态显示
如果有两位的数码管,每个数码管要显示不同的字符,那么威廉希尔官方网站 该怎么搭建呢?
像这样???
可以是可以,但是占用了太多端口,如果要同时显示4位、8位数码管,单片机的端口显然就不够用了。
因此,对于多位数码管,经常使用动态扫描的方法来显示:
无论在任何时刻只有一个LED数码管处于显示状态,利用人的视觉暂留效应,依次显示每个不同的数码管。某一时刻,只有一位LED数码管被选通显示,其余位则是熄灭的,人眼看到的是若干位稳定的同时显示的字符。
搭建仿真威廉希尔官方网站 如图:
例程如下:
/******************************************************************************
* 名称:8只数码管动态显示多个不同字符 *
说明:数码管动态扫描显示0~7。
******************************************************************************/
#include《reg51.h》
#include《intrins.h》
#define uchar unsigned char
#define uint unsigned int
//共阳数码管编码表 uchar code table1[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
//共阴数码管编码表 uchar code table2[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
//延时 void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t《120;t++);
}
//主程序 void main()
{
uchar i,wei=0x80;
while(1)
{
for(i=0;
i《8;i++)
{
P0=0xff;
P0=table1;
//发送段码 wei=_crol_(wei,1);
P2=wei;
//发送位码 DelayMS(2);
}
}
}
编译、烧录,实验效果如图:
举报
更多回帖
rotate(-90deg);
回复
相关问答
数码管
仿真威廉希尔官方网站
数码管
的原理是什么?如何对
数码管
进行
仿真
呢
2022-01-25
1886
如何
去
实现
一种数码管
显示的设计
呢
2022-02-28
832
怎样
去
设计
一种数码管
显示0-9999的计数器
2021-10-08
1157
怎样
用独立元器件
去
搭建
一种
逻辑门
威廉希尔官方网站
呢
2021-11-01
2149
怎样
去
设计共阴
数码管
与静态
数码管
的硬件
威廉希尔官方网站
呢
2021-10-21
1361
如何
去
实现
一种
基于51单片机的静态
数码管
显示数字的设计
2021-10-19
1228
怎样
去
设计
一种
基于DS18B20的LED
数码管
显示数字温度计
2021-09-23
1823
如何
去
编写
数码管
显示
威廉希尔官方网站
的汇编代码
2021-08-09
1172
请教大神
怎样
去
控制两位
数码管
去
自动显示1-99啊?
2021-07-07
832
为什么要用三极
管
去
搭建
一种
图腾柱
威廉希尔官方网站
呢
2021-11-01
1327
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分