【www.zhuodaoren.com--推荐阅读】
proteus,led数码管属性(一)
(九):Proteus仿真辅助数码管的学习
(九):Proteus仿真辅助数码管的学习
数码管又称LED数码管,它是由7段或8段LED构成的显示器件。有共阴极和共阳极两种。按其显示方式则可分为静态显示方式和动态显示方式两种。关于数码管的其他知识请参阅相关参考文献,此处不作讨论。下面我们将主要讲述数码管显示的仿真。
1.静态显示方式
静态显示方式较为简单,编程十分容易,但占用IO口线较多。实
际使用中不太多见。下面我们就通过一个简单的例子来予以说明。
例1.单片机的P2口接一个共阳极数码管,利用该数码管显示从0
到9,然后返回到0的循环。
该例子较为简单,源文件如下图:
源文件编辑结束以后,将其保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。
下面我们编辑电路图。此例的电路图十分简单,只需将一个共阳极数码管连到单片机的P2口即可。数码管使用关键词“7Seg”进行查找。可以看到有很多结果,注意区分共阳极“Anode”和共阴极“Cathode”即可。这里我们选用较为简单的“7SEG-COM-ANODE”数码管。
最后得到的电路图如下图所示:
绘制好电路图,我们就可以将前面所生成的源代码装入单片机,然后点击仿真按钮进行仿真。
可以看到数码管显示的数字按照我们程序中设定的要求进行变化着,仿真中的一个画面如上图所示。
2.动态显示方式
动态显示方式是一种相对较为高级的显示方式,它编程较为复杂,但占用IO口线少,达到了节约硬件资源的目的,实际使用中较多利用。下面我们也利用一个实例来详细说明这种显示方式。
例2.数码管动态显示方式。单片机P2口接一个二位数码管的8位段码线,P3口的低二位接数码管的两位位码线。程序使得二位数码管做0到99的循环显示。
该例源文件如下图所示:
源文件编辑结束以后,将其保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。
接下来我们绘制电路图。此例电路图比较简单,如下图所示,但有几点需要注意:
(1)单片机的IO口的驱动能力有限,所以此例我们选用了大功率晶体管驱动电路,即图中的两个NPN三极管,单片机通过控制它们的通断来达到控制位码的目的。
(2)关于数码管,此例我们选用了2位的共阳极数码管
7SEG-MPX2-CA,这样可以方便我们连线和使用。而且由于我们的例子中没有用到小数点(DP),所以为了简便在图中我们没有连接P2.7和DP引脚。当然,如果你连接好这个引脚,仿真结果不会受到任何影响,因为在段码表中,P2.7引脚一直输出的都是高电平,也就是说小数点一直处于熄灭状态。
绘制好电路图,就可以点击仿真按钮进行仿真了。仿真中的一个效果如上图所示。
3.事实上,在实际的应用中我们还可以选用数码管显示驱动译码芯片来达到控制数码管显示的目的。常用的这类芯片有CD4511、MAX7219等。关于这些
proteus,led数码管属性(二)
LED数码管显示实验
信息工程学院实验报告
课程名称:单片机原理及接口
实验项目名称:LED数码管显示实验 实验时间:2016年3月11日
班级:通信141 姓名: 学号:
一、实 验 目 的:
熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。了解并熟悉一位数码管与
多位LED数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus构建LED数
码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。
二、实 验 设 备 与 器 件
硬件:微机、单片机仿真器、单片机实验板、连线若干
软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件【proteus,led数码管属性】
三、实 验 原 理
LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七
段LED,这种显示器有共阴极与共阳极两种。
共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发
光二极管则点亮;共阳极LED显示器的发光二极管阳极并接。
七段LED数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引
第 1 页 共 9 页
脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。
多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。
由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。
不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。
四、实 验 内 容 与 步 骤
1、电路图的设计。
(1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示:
图1-1 搜索元器件
(2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:
第 2 页 共 9 页
图1-2 LED显示电路
2、keil项目程序的建立。
(1)LED数码管在左边第3位显示5
①运行keil软件,启动后,点击Project菜单新建项目,新建项目界面如图1-3所示:
图2-1 新建项目工程
②新建项目后,完成程序的写入,代码如图1-4 所示:
图2-2 代码
③设置输出HEX文件,如图 1-5 所示,单击确定保存,运行程序得到HEX文件:
第 3 页 共 9 页
图2-3 设置输出HEX文件
(2)在左边第2位循环显示1-8
①运行keil软件,启动后,点击Project菜单新建项目。
②新建项目后,完成程序的写入,代码如图2-4所示:
图2-4 左边第2位循环显示1-8代码
③设置输出HEX文件,勾选上Output下的Create HEX Fi:,单击确定保存,运行程序得到HEX文件。
(3)同时显示12345678
①运行keil软件,启动后,点击Project菜单新建项目。
②新建项目后,完成程序的写入,代码如图2-5所示:
第 4 页 共 9 页
图2-5 同时显示12345678代码
③设置输出HEX文件,勾选上Output下的Create HEX Fi:,单击确定保存,运行程序得到HEX文件。
(4) *开关控制显示内容,开关不同位置分别显示12345和HELLO
①运行keil软件,启动后,点击Project菜单新建项目。
②新建项目后,完成程序的写入,代码如图2-6所示:
第 5 页 共 9 页
proteus,led数码管属性(三)
LED数码管显示实验
电子信息工程系实验报告
课程名称:单片机原理及接口(应用) 实验项目名称: LED数码管显示实验
实验时间:
班级: 电信102 姓名: 学号:【proteus,led数码管属性】
一、实 验 目 的
熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。了解并熟悉一位数码管与多位LED数码
管的电路结构、与单片机的连接方法及其应用原理。学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。
二、实 验 环 境
硬件:Window XP;
软件:keil C51单片机仿真调试软件,proteus系列仿真调试软件;
三、实 验 原 理
LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。例如共阴极,如图1所示。管脚配置如图2所示。
图1 共阴极 图2 管脚配置
共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮;共阳极LED显示器的发光二极管阳极并接。七段LED数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O口控制,而位选线分别由相应的I/O口线控制。
例如:段选码的推导
(1)要显示字母C——则a、f、e、d灯亮。
(2)因为共阴——则a、f、e、d送0时才亮。 (3)段选dp-a为——11000110。
由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时【proteus,led数码管属性】
1
间,以造成视觉暂留效果。不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。
四、实 验 过 程
1、设置实验电路图
选择
按钮,从库中选取器件AT89C52、RESPACK-8、7SEG-MPX8-CC-BULE,其中RESPACK-8
作上拉电阻,起稳压作用,7SEG-MPX8-CC-BULE为8段共阴数码管。其实验电路图如图3所示。
图3 实验电路图
2、建立KEIL和PROTEUS项目的过程
首先选择之后选择
按钮,在
按钮,建立新项目;其次选择
选项中勾选
按钮,编写完整的程序代码后,保存为.c文件;,生成HEX文件,最后经过加载、翻译完成
Keil和Proteus的建立。
2
五、实 验 内 容 及 结 果
1、在左边第3位显示5。
#include<reg51.h>
void delay(uint x) P0=0xff; #define uchar unsigned {
while(1) char
for(a=x;a>0;a--)
{
#define uint unsigned int for(b=100;b>0;b--) P2=0xfb; uint a,b;
;
P0=table[4]; uchar code table[]={ } } 0x06,0x5b,0x4f, main() }
0x66,0x6d,0x7d,0x07, { 0x7f,};
int i;
程序运行结果如图4所示
图4 运行结果1
2、在左边第2位循环显示1-8。
程序代码为: #include<reg51.h>
{
#define uchar unsigned char int i; #define uint unsigned int P0=0xff; uint a,b;
while(1) uchar code table[]={ {
0x06,0x5b,0x4f, P2=0xfd; 0x66,0x6d,0x7d,0x07, for(i=0;i<=8;i++) 0x7f,};
{
void delay(uint x) P0=table[i]; {
delay(1000); for(a=x;a>0;a--) } for(b=100;b>0;b--) ; }
}
}
main()
程序运行结果如图5所示
3
图5 运行结果2
3、同时显示12345678。
程序代码为:
#include<reg51.h> unsigned int i; unsigned
char
} main() { }
for(i=0;i<8;i++) {
P2=table2[i]; P0=table1[i]; delay(1); if(i==7) i=-1; }
table1[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
unsigned
void delay(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); 程序运行结果如图6所示
char
table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
图6 运行结果3
六、实 验 心 得
1、熟悉keil仿真软件、proteus仿真软件等的使用。
2、了解了LED数码管的电路结构与单片机的连接方法及原理,并掌握了用proteus构建LED数码管显示电路图。
3、通过本次实验,加深了keil与proteus的使用以及对编写程序的方法,为之后的学习打下基础。
本文来源:http://www.zhuodaoren.com/tuijian428678/
推荐访问:proteus中数码管