数码管动态扫描显示实验

数码管动态扫描显示实验
数码管动态扫描显示实验

姓名:xxx 专业:电子信息工程学号:2010***** 日期:2012 11 30成绩:

实验七数码管动态扫描显示实验

一:实验目的

1、掌握Keil C51软件与proteus 软件的联合仿真调试的方法。

2、掌握单片机对数码管的动态显示控制方法。

3、掌握定时器的基本应用与编程方法。

二:实验内容

1、用proteus设计一8位数码管动态扫描显示电路。要求利用P0口作数码管的线段选线,P1.0~P1.2与74LS138译码器的3个输入端相连,其译码输出Y0~Y7作为数码管的位选线。

2、编写程序,将数字1~8分别显示在8个数码管上,要求显示无闪烁。

3、编写程序,利用Proteus中的“激励源/DCLOCK/数字类型/时钟”产生频率为1HZ的方波输出,并利用定时/计数器T1统计脉冲的个数,将统计结果动态实时在数码管上显示。该脉冲计数电路在以上电路的基础上自行修改。

4、实验电路:

5:、实验程序:

实验一:

#include

#define uchar unsigned char

uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};

uchar code adress[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

void delay(a)

{

uchar i,j;

for(;a>0;a--)

for(i=142;i>0;i--)

for(j=2;j>0;j--);

}

void main()

{

uchar m=0;

uchar n;

P0=0x00;

while(1)

{

if(m==8)m=0;

if(n==0)n=8;

P1=adress[m++];

n=m;

P0=table[n];

delay(5);

}

}

实验二:

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

ulong num;

uchar code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e}; uchar code adress[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

uchar table2[8];

void delay(a)

{

while(a--);

}

void main()

{

TMOD=0x60;

TH1=TL1=0xff;

EA=1;

ET1=1;

TR1=1;

while(1)

{

uint i;

table2[0]=num%10;

table2[1]=num%100/10;

table2[2]=num%1000/100;

table2[3]=num%10000/1000;

table2[4]=num%100000/10000;

table2[5]=num%1000000/100000;

table2[6]=num%10000000/1000000;

table2[7]=num/100000000;

for(i=0;i<8;i++)

{

P1=adress[i];

P0=table1[table2[i]];delay(500);

}

}

}

void TIME_1() interrupt 3

{

num++;

if(num>99999999)num=0;

}

三:实验仪器与设备

1、微机1台

2、keil C51集成开发环境

3、Proteus 仿真软件

四:实验说明

1、动态扫描方法:

(1)动态扫描法是对个数码管循环扫描、轮流显示的方法。由于一次只能让一个数码管显示,因此,要显示8位的数据,就必须让数码管一个一个轮流显示才可以,同

时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,每隔

1ms,就得刷新一个数码管。当扫描频率较高时,利用人眼的视觉暂留特性,看不

出闪烁现象,这种显示需要一个接口完成字型码的输出,另一接口完成个数码管的

轮流点亮。

(2) 在进行数码管显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。

(3)对于显示的字型码数据采用插表的方法完成。

2、P0 口

P0口作为地址/数据总线使用时是一个真正的双向端口;而做通I/O口时,只是一个准双向口,由于其内部漏极开路,应外接10K的上拉电阻,否则无法输出高电平。

3、74LS138 3线—8线译码器

引脚排列:

真值表:

4、程序调试:

双击AT89C51后在Program file栏添加已经编好的程序,然后点击“运行”看看是否数码管上显示的数是否是想得到的结果,如果不是返回在keil 中的程序进行修改,直到出现想得到的效果为止。

5、实验现象:

程序一:

数字1~8分别显示在8个数码管上,并且显示无闪烁

程序二:

在数码上显示统计脉冲的个数,并且频率越大,数码管上显示数变化越快,当频

率达到一定值时,出现闪烁现象。

五:实验总结

通过本实验我学会了单片机对数码管的动态显示控制的原理及其编程的方法;

通过实验也了解了74LS138译码器的原理;

试验不足:试验中数码管的闪烁问题没有很好的解决。

单片机c语言版数码管动态显示实验报告

数码管动态显示实验 一、实验要求 1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码 管数据引脚相连,P2.0~P2.3引脚输出选控制信号 3.在Keil软件中编写程序,采用动态显示法,实现数码管显示变量unsigned int show_value的值(show_value的值范围为0000~9999),即把show_value的千百 十个位的值用数码管显示出来。 二、实验目的 1.巩固Proteus软件和Keil软件的使用方法 2.学习端口输入输出的高级应用 3.掌握7段数码管的连接方式和动态显示法 4.掌握查表程序和延时等子程序的设计 三.实验说明 (条理清晰,含程序的一些功能分析计算) 如下图(五)所示,由P1口将要显示的数字输给七段数码管;再由P2第四位输给数码管的公共端,作为扫描输入信号;用外部中断P3.2和P3.3分别接PB1与PB2,实现数字的增减。所要实现的功能是,开始运行电路功能图时,四个数码管分别显示0000,按下PB1增1,直到9999回到0000,相反按下PB2减1,直到0000回到9999。 在算相关数据时,由于要显示个十百千的不同数字,要调用disp函数, disp[0]=show/1000; //显示千位的值 disp[1]=show%1000/100; //显示百位的值 disp[2]=show%100/10; //显示十位的值 disp[3]=show%10; //显示个位的值 本实验需要用到IE寄存器与TCON寄存器。 四、硬件原理图及程序设计 (一)硬件原理图设计

led动态扫描

LED动态扫描实验 一、实验目的: 1、掌握数码LED的动态扫描显示原理 2、学习延时子程序的编写的使用 二、实验原理: 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

三、实验内容及过程: 1、流程图

2、实验中碰到的问题 实验中我用了两排插孔来代替数码管的两排引脚焊接在实验板上,东西都焊好之后,把数码管插在插孔里,有的时候就会出现接触不好的状况,我认为,以后还是把数码管焊上去才不会出现接触的问题。 四、实验现象: 在烧入程序后,数码管上的数字呈现从1开始逐个递增的显示 五、程序: ORG 0000H MAIN: MOV 7AH,#00H MOV 7BH,#00H MOV 7CH,#00H MOV 7DH,#00H MOV R1,#7AH MAIN0: MOV A,7AH MAIN1: CJNE A,#0AH,BJW MOV 7FH,R1 JW: MOV @R1,#00H INC R1

多位数码管动态扫描protues仿真

实验题目:多位数码管动态扫描电路设计与调试 一、实验要求与目的 1、设计要求 8位数码管显示“8.8.8.8.8.8.8.8.”,即点亮显示器所有段,持续约500ms 之后,数码管持续约1s ;最后显示“HELLO —10”,保持。 2、实验目的 1、掌握数码管动态扫描显示原理及实现方法。 2、掌握动态扫描显示电路驱动程序的编写方法。 二、设计思路 1、在Proteus 中设计仿真电路原理图。 2、在Keil C51软件中编译并调试程序,程序后缀必须是.c 。调试时生成hex 文件,确认 无误后将生成的hex 文件添加到原理图的单片机中进行仿真。 3、观察电路仿真结果对程序进行更改直至达到预期结果 三、实验原理 p2[0..3] p0[0..7]p 00p 00p 07p 06p 0605p 02p 05p 04p 04p 03p 03p 02p 02p 01p 01p 07p 23p 22p 21p 20A 15B 14C 13D 12 01122334455667798109 11 U2 7445 A 02 B 018A 13B 117A 24B 216A 35B 315A 46B 414A 57B 513A 68B 612A 7 9 B 7 11 C E 19A B /B A 1 U3 74HC245 234567891 RP1 RESPACK-8 XTAL2 18 XTAL119 RST 9 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17 P3.6/WR 16P3.5/T115AD[0..7]A[8..15] ALE 30EA 31PSEN 29 P1.0/T21 P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78 U4 AT89C52 图1 原理图

实验 典型环节的动态特性实验报告

实验一典型环节的动态特性 一.实验目的 1.通过观察典型环节在单位阶跃信号作用下的相应曲线,熟悉它们的动态特性。 2.了解各典型环节中参数变化对其动态特性的影响。 二.实验内容 1.比例环节 G(S)= K 所选的几个不同参数值分别为K1= 33 ; K2= 34 ; K3= 35 ; 对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值): 2.积分环节

G(S)= S T i 1 所选的几个不同参数值分别为T i1= 33 ; T i2= 33 ; T i3= 35 : 对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值): 3.一阶惯性环节 G(S)= S T K c 1 令K不变(取K= 33 ),改变T c取值:T c1= 12 ;T c2= 14 ;T c3= 16 ;

对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值): 4. 实际微分环节 G(S)= S T S T K D D D 1 令K D 不变(取K D = 33 ),改变T D 取值:T D 1= 10 ;T D 2= 12 ;T D 3= 14 ;

对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值): 5.纯迟延环节 G(S)= S eτ- 所选的几个不同参数值分别为τ1= 2 ;τ2= 5 ;τ3= 8 ; 对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值):

6. 典型二阶环节 G(S)= 2 2 2n n n S S K ωξωω++ 令K 不变(取K = 33 ) ① 令ωn = 1 ,ξ取不同值:ξ1=0;ξ2= 0.2 ,ξ3= 0.4 (0<ξ<1);ξ4=1;ξ5= 3 (ξ≥1); 对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值): ②令ξ=0,ωn 取不同值:ωn 1= 1 ;ωn 2= 2 ; 对应的单位阶跃响应曲线(在输出曲线上标明对应的有关参数值):

LED动态扫描显示实验

51单片机实验报告二 名称:LED动态扫描显示 目的:掌握数码LED的动态扫描显示原理; 学习延时子程序的编写和使用。 原理: 为了节省输出端口数,数码LED显示一般采用动态扫描的方法,将所有数码LED的共阴极接在一个位型输出口上,将所有数码管的相同段接在一起作为字型口,软件控制每个数码LED轮流显示,任一时刻只一个数码亮,但扫描速度足够快时,视觉效果是8个数码LED同时亮。 电路图:

流程图: 汇编程序: ORG 0000H AJMP MAIN ORG 0080H MAIN: CLR P2.0 ;选中第一个数码管MOV P0, #3FH ;显示0 LCALL DELAY ;调用延时 MOV P0, #0FFH ;关显示 SETB P2.0 CLR P2.1 ;选中第二个数码管MOV P0, #06H ;显示1 LCALL DELAY MOV P0, #0FFH SETB P2.1 CLR P2.2 ;选中第三个数码管MOV P0, #5BH ;显示2 LCALL DELAY MOV P0, #0FFH SETB P2.2 CLR P2.3 ;选中第四个数码管MOV P0, #4FH ;显示3 LCALL DELAY

MOV P0, #0FFH SETB P2.3 CLR P2.4 ;选中第五个数码管 MOV P0, #66H ;显示4 LCALL DELAY MOV P0, #0FFH SETB P2.4 CLR P2.5 ;选中第六个数码管 MOV P0, #6DH ;显示5 LCALL DELAY MOV P0, #0FFH SETB P2.5 CLR P2.6 ;选中第七个数码管 MOV P0, #7DH ; 显示6 LCALL DELAY MOV P0, #0FFH SETB P2.6 CLR P2.7 ;选中第八个数码管 MOV P0, #07H ; 显示7 LCALL DELAY SETB P2.7 MOV P0, #0FFH AJMP MAIN ;重新开始 DELAY: ;延时子程序 MOV R7 ,#2 D1: MOV R6, #25 D2: DJNZ R6, D2 DJNZ R7, D1 RET END 现象及结论:8只数码管循环滚动显示单个数字0—7。如此循环。

数码管显示程序(汇编语言)

实验三数码显示 一、实验目的 了解LED数码管动态显示的工作原理及编程方法。 二、实验内容 编制程序,使数码管显示“DJ--88”字样。 三、实验程序框图 四、实验步骤 联机模式: (1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM

文件夹,点击S6.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)数码管显示“DJ--88”字样。 脱机模式: 1、在P.态下,按SCAL键,输入2DF0,按EXEC键。 2、数码管显示“DJ--88”字样。 五、实验程序清单 CODE SEGMENT ;S6.ASM display "DJ--88" ASSUME CS:CODE ORG 2DF0H START: JMP START0 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 BUF DB ?,?,?,?,?,? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0 c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H START0: CALL BUF1 CON1: CALL DISP JMP CON1 DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL MOV CL,0DFH ;显示子程序 ,5ms MOV BX,OFFSET BUF DIS1: MOV AL,[BX] MOV AH,00H PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB

EDA设计课程实验报告数码管动态显示实验报告

EDA设计课程实验报告 实验题目:数码管动态显示实验 学院名称: 专业:电子信息工程 班级: 姓名:高胜学号 小组成员: 指导教师: 一、实验目的 学习动态扫描显示的原理;利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。 二、设计任务及要求

1、在SmartSOPC实验箱上完成数码管动态显示自己学号的后八个数字。 2、放慢扫描速度演示动态显示的原理过程。 三、系统设计 1、整体设计方案 数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。 2、功能模块电路设 (1)输入输出模块框图(见图1) 图1 (2)模块逻辑表达(见表1) 表1(数码管显示真值表) clk_1k dig seg ↑01111111 C0 ↑10111111 F9

注:数码管显示为01180121 (3)算法流程图(见图2) (4)Verilog源代码 module scan_led(clk_1k,d,dig,seg); //模块名scan_led input clk_1k; //输入时钟 input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚

10_关于数码管动态扫描的问题

关于数码管动态扫描的问题 关于数码管的动态扫描,相信玩单片机的都不陌生。而什么是动态扫描,怎样扫描,扫描时间为多少最佳,这是一个值得深究的问题。 大家知道驱动一个或者两三个数码管,如果单片机有足够的IO口,我们可以用静态显示,至于什么是静态显示(动态显示的基础),这里不做阐述。 但如果,或者假如我们要点亮8个数码管或者更多,而恰恰单片机IO口不够用的情况下(扩展IO口的不讲),这是就必须用到动态扫描的显示方式了。 什么是数码管动态扫描?所谓的数码管动态扫描,就是在静态显示的基础上,逐一点亮每个数码管,由于点亮的时间非常短暂,由于人眼暂留现象使得我们看到所有的数码管像被点亮一样。其中还有一点就是数码管熄灭后的余晖现象的关系。 那么,这又牵扯到一个问题了,什么是人眼暂留现象,我也码了一下解释,如下: (Visual staying phenomenon,duration of vision) 人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

是光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,其具体应用是电影的拍摄和放映。原因是由视神经的反应速度造成的.其时值是二十四分之一秒。是动画、电影等视觉媒体形成和传播的根据。视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换为神经电流,传回大脑引起人体视觉。感光细胞的感光是靠一些感光色素,感光色素的形成是需要一定时间的,这就形成了视觉暂停的机理。 物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。是人眼具有的一种性质。人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。 很简单,说白点,就是逐一显示数码管,根据图像在人眼的暂留时间0.1-0.4秒计算,如果要点亮10个数码管,那动态扫描的时间只要在0.1秒之内就可以看到全部点亮的数码管了。(这里以位来扫描,就是所有ABCDEFGH段并联做段选,留下每个数码管COM端做位选) 操作流程如下: 1.送数码管段码 2.打开位选(点亮数码管) 3.延时点亮(具体情况具体分析) 4.关闭位选(熄灭数码管) 接着就进行下一个数码管的显示了 也就是在某个时刻,只有一个数码管被点亮。当这个时间在人眼暂留现象的时间之内,人就能看到连续点亮的数码管了。 这个是我将扫描时间片加到0.2秒的效果(也就是0.2*17=3.4秒钟扫完17个数码管)。而大家看到数码管全部亮,是因为将扫描时间片降低到0.0005秒(500微秒),由于人眼暂留现象,所以看到数码管全部亮了。 关于动态扫描的时间片问题,是的,这个问题非常关键。时间片也就是点亮一个数码管的时间,由于时间比较短,所以称为时间片。时间片对于点亮数码管的亮度有影响,也同时会影响整体动态扫描的时间,或许造成动态扫描闪烁也与此有关。 掌握适合的时间片,对于动态扫描的效果尤为重要。时间片过短,数码管太暗了。(至于为什么暗,这里可以想象一下PWM的方式,与PWM具有异曲同工之妙)。时间片太长,数码管就可能会闪烁。

实验二 数码管动态扫描显示实验

实验二数码管动态扫描显示实验 一、实验目的 1.学习和理解数码管动态扫描的工作原理。 2.学习和掌握数码管动态扫描的电路接口设计及程序编写。 二、实验设备 1.USB线 2.单片机最小系统教学实验模块 3.动态数码管显示模块 三、实验要求 1. 使8位数码管动态显示“0 1 2 3 4 5 6 7”字样 2. 使8位数码管动态显示时间2013年4月18日,即“2 0 1 3 04 18”字样 3. 用Proteus仿真软件画出实验电路图,将在uVision3 IDE软件中生成*.hex 下载到Proteus仿真电路图中的单片机芯片中,观察实验现象。 四、实验原理 1. 8段数码管显示原理 数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。对于“共阳极”的数码管,内部每个发光二极管的阳极被接在一起,成为该各段的公共选通线;发光二极管的阴极则成为段选线。对于“共阴极”数码管,则正 好相反,内部发光二极管的阴极接在一起,阳极成为段选 线。这两种数码管的驱动方式是不同的。当需要点亮“共 阳极”数码管的一段时,公共段需接高电平(即写逻辑1)、 该段的段选线接低电平(即写逻辑0),从而该段被点亮。 当需要点亮“共阴极”数码管的一段时,公共段需接低电平 (即写逻辑0)、该段的段选线接高电平(即写逻辑1), 该段被点亮。 数码管的段位顺序如右图所示: 一般来说在一个字节中按照dpgfedcba的顺序放置字型码,比如在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入06H。例如使用P0口接段选线,则使用下面的语句即可点亮数码管: P0=0x06; 对应规则: dp----->D7 g----->D6 f----->D5 e----->D4

单片机动态数码显示设计实验报告

微机原理与接口技术 实验报告 实验题目:动态数码显示设计 指导老师: 班级:计算机科学与技术系 姓名: 2014年 12月3日

实验十三动态数码显示设计 一、实验目的 1.掌握动态数码显示技术的设计方法。 2.掌握扫描在程序设计中的应用。 二、设计原理 如图13.1所示,在单片机的P1端口接动态数码管的字形码笔段,在单片机的P2端口接动态数码管的数位选择端。在单片机P3.0管脚处接一个开关,当开关连接高电平时,态数码管上显示“12345”字样;当开关连接低电平时,态数码管上显示“HELLO”字样。 三、参考电路 图13.1 动态数码显示电路原理图

四、电路硬件说明 (1)在“单片机系统”区域中,把单片机的P1.0-P1.7端口连接到“动态数码显示”区域中的a-h端口上。 (2)在“单片机系统”区域中,把单片机的P2.0-P2.7端口通过8联拨动拨码开关JP1连接到“动态数码显示”区域中的S1-S8端口上。 (3)在“单片机系统”区域中,把单片机的P3.0端口通过8联拨动拨码开关JP2连接到拨动开关区域中的SW1端口上。 五、程序设计内容 (1)动态扫描方法: 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出显示的闪烁现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。 (2)在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,在每个显示缓冲区装有显示的不同数据即可。 (3)对于显示不同字形码的数据采用查表方法来完成。 六、程序流程图 (如图13.2所示) 图13.2 动态数码显示程序流程图

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

LED数码管动态扫描显示实验

单片机实验五LED数码管动态扫描显示实验 一.实验目的 掌握LED数码管动态扫描显示的原理和编程实现方法。 二.实验原理 LED数码管动态扫描显示即各数码管循环轮流显示,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段码),另一接口完成各数码管的点亮(位选)。 三.实验内容及要求 1.对于显示的字形码数据此实验采用查表的方法来完成。 2.此实验要求是在八个数码管中显示学生的班级号(如11040601)或日历年月日(如2014 05 20)。 四.实验电路 图中,SEG1为八个封装在一起的共阴数码管,RP1为排阻,其余同实验三,导线以总线形式完成。 五.实验步骤 1.在KEIL4中编写、调试、编译程序。 2.在PRTUSE中设计电路,加载HEX文件运行。 3.(1)将单片机实验箱通过USB口与PC机连接; (2)用杜邦线(8根线)将实验箱上的JP8与J16连接(去掉原J15和J16之间的短路跳线帽),JP10与J12连接。 (3)打开实验箱电源开关POWER;

(4)打开STC自动下载器,将步骤1中创建的*.HEX文件下载到单片机,完成后观测LED数码管显示内容。 六.实验参考程序 (请同学自己编写实验程序) 七.思考题 1.某同学在实验时数码管闪烁,可能的原因是什么? 2.为节省I/O口,可采用7段译码器(比如CD4511,74LS 等)和3-8译码器74LS138,如何连接电路并编程。 LDE数码管动态试验 ORG 0000H AJMP MAIN ORG 0100H MAIN: SP,#60H MOV 30H,#02H MOV 31H,#00H MOV 32H,#01H MOV 33H,#04H MOV 34H,#00H MOV 35H,#05H MOV 36H,#02H MOV 37H,#00H START:MOV R0,#30H MOV R3,#0FEH NEXT: MOV P1,#0FFH MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV P1,R3 LCALL DLY2MS INC R0 JNB P1.7,STRAT MOV A,R3 RL A MOV R3,A AJMP NEXT DLY2MS:MOV R6,#2 DL2: MOV R7,#250 DL1:NOP

数码管动态显示教案

电子综合设计实训 题目数码管动态显示 _ 姓名 专业 学号 指导教师 郑州科技学院电气工程学院

目录 摘要.................................................................................................. I 1背景. (1) 1.1介绍 (1) 1.2设计步骤 (2) 2 设计思路 (3) 2.1方案对比 (3) 3元件的选择 (6) 3.1单片机 (6) 3.2 显示元器件的选择 (6) 4 设计原理及功能说明 (8) 4.1 各部分功能说明 (8) 5 装配与调试 (14) 5.1装配 (14) 5.2调试 (14) 6 总结 (15) 附录 (17) 附录一:元件清单 (17) 附录二:电路源程序 (17)

数码管动态显示的设计 摘要 本文介绍了一种基于AT89C51单片机的8个数码管滚动显示单个数字的设计,让八位数码管滚动显示0、1、2、3、4、5、6、7,我们以液晶显示技术的发展为背景,选择了比较常用的液晶数码管显示模块,利用了单片机控制数码管模块的显示机理。研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的程序,并用PROTEUS进行电路设计和实时仿真。该电路有两部分组成:AT89C51单片机和显示模块组成。AT89C51单片机具有超低功耗和CPU外围的高度整合性;显示模块数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极,方便易用。实际应用中不需要外部任何元器件即可实现,具有接口电路简单、可靠,易于编程的特点,抗干扰性好等特点。 单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。而且这种技术相对简单,性价比较高,在我们生活中应用很广泛,具有一定的发展前景。 关键词:AT89C51单片机;数码管;滚动显示

动态法测杨氏模量实验报告

动态法测量杨氏模量 一、 实验目的 1. 理解动态法测量杨氏模量的基本原理。 2. 掌握动态法测量杨氏模量的基本方法,学会用动态法测量杨氏模量。 3. 了解压电陶瓷换能器的功能,熟悉信号源和示波器的使用。学会用示波器观察判断样品共振的方法。 4. 培养综合运用知识和使用常用实验仪器的能力。 二、 实验原理: 在一定条件下,试样振动的固有频率取决于它的几何形状、尺寸、质量以及它的杨氏模量。如果在实验中测出试样在不同温度下的固有频率,就可以计算出试样在不同温度下的杨氏模量。 根据杆的横振动方程式 02 244=??+??t y EJ S x y ρ (1) 式中ρ为杆的密度,S 为杆的截面积,?= s dS y J 2 称为惯量矩(取决于截面的形状),E 即为杨氏模量。 如图1所示,长度L 远远大于直径d (L >>d )的一细长棒,作微小横振动(弯曲振动)时满足的动力学方程(横振动方程)为 02244=??+??t EJ y S x y ρ (1) 棒的轴线沿x 方向,式中y 为棒上距左端x 处截面的y 方向位 移,E 为杨氏模量,单位为Pa 或N/m 2;ρ为材料密度;S 为 截面积;J 为某一截面的转动惯量,??=s ds y J 2。 横振动方程的边界条件为:棒的两端(x =0、L )是自由端,端点既不受正应力也不受切向力。用分离变量法求解方程(1),令)()(),(t T x X t x y =,则有 2 24411dt T d T EJ S dx X d X ?-=ρ (2) 由于等式两边分别是两个变量x 和t 的函数,所以只有当等式两边都等于同一个常数时等式才成立。假设此常数为K 4,则可得到下列两个方程 044 4=-X K dx X d (3) 0422=+T S EJ K dt T d ρ (4) 如果棒中每点都作简谐振动,则上述两方程的通解分别为 图1 细长棒的弯曲振动

LCD液晶显示实验实验报告及程序

实验三 LCD1602液晶显示实验 姓名专业学号成绩 一、实验目的 1.掌握Keil C51软件与proteus软件联合仿真调试的方法; 2.掌握LCD1602液晶模块显示西文的原理及使用方法; 3.掌握用8位数据模式驱动LCM1602液晶的C语言编程方法; 4.掌握用LCM1602液晶模块显示数字的C语言编程方法。 二、实验仪器与设备 1.微机一台 C51集成开发环境仿真软件 三、实验内容 1.用Proteus设计一LCD1602液晶显示接口电路。要求利用P0口接LCD1602 液晶的数据端,~做LCD1602液晶的控制信号输入端。~口扩展3个功能键 K1~K3。参考电路见后面。 2.编写程序,实现字符的静态和动态显示。显示字符为 第一行:“1.姓名全拼”,第二行:“2.专业全拼+学号”。 3.编写程序,利用功能键实现字符的垂直滚动和水平滚动等效果显示。显示字 符为:

“1.姓名全拼 2.专业全拼+学号 EXP8 DISPLAY ” 主程序静态显示“My information!” 四、实验原理 液晶显示的原理:采用的LCD显示屏都是由不同部分组成的分层结构,位于最后面的一层是由荧光物质组成的可以发射光线的背光层,背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层,液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。 1.LCD1602采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚 接口说明如表:

8位8段LED数码管动态扫描显示

项目名称:8位8段LED数码管动态扫描显示班级:09电二姓名:解健学号:09020313 一.实验目的 1.掌握数码管动态扫描显示原理及实现方法。 2.掌握动态扫描显示电路驱动程序的编写方法。 二.实验电路 三.元器件 四.实验步骤 第一步:先在Proteus软件中设计仿真电路原理图。 第二步:再在Keil C51软件中编写且编译程序,程序后缀必须是.c。然后在打开的“Option for Target‘Target 1’”选项卡,“Target”标签下频率设置为“11.0592”,“Output”标签下,将“Creat HEX File”项打勾选中,设置生成一个.hex文件。 第三步:接着将.hex文件导入原理图中U1芯片。双击U1,打开Edit Component对话框,选择生成的hex文件。 第四步:最后观察设计的电路图是否能得到预想的效果,若不能,进行检查,找到毛病且纠正。

流程图 实验现象: 显示器点亮所有段,持续约1s,然后灭显示器,持续2s,最后显示“hello-93”,保持。 附:程序 #include #include #define TRUE 1 #define dataPort P0 #define ledConPort P2 unsigned char code ch[8]={0x76,0x79,0x38,0x38,0x3f,0x40,0x6f,0x4f}; void time(unsigned int ucMs); void main(void) {unsigned char i,counter=0;

数码管动态扫描显示01234567

实验5 数码管动态扫描显示01234567 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。 相关原理: 数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为 A,B,C,D,E,F,G,H。

搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。 LOOP: CLR P2.7 ;选中最后的数码管 SETB P0.7 ;B段不亮 SETB P0.5 ;小数点不亮 SETB P0.1 ;C段不亮 CLR P0.2 ;其他都亮 CLR P0.3 CLR P0.4 CLR P0.6 CLR P0.0 JMP LOOP ;跳转到开始重新进行

END 把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。 也许你会说:显示1个2字就要10多行程序,太麻烦了。 显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了。 有了这个表格上面显示一个2的程序则可简化为: LOOP: CLR P2.7 ;选中左边的数码管 MOV P0,#0A2H ;送数字2的代码到P0口 JMP LOOP ;跳转到开始重新进行 END

最新动态扫描显示电路设计

动态扫描显示电路设 计

动态扫描显示电路设计 摘要:所谓动态扫描显示,就是让各位LED按照一定的顺序轮流地发光显示。只要每秒扫描次数大于24次以上,就观察不到闪烁现象,人眼看起来很稳定。静态扫描显示与动态显示相比,有显著降低LED功耗,大大减少LED的外部引线等优点。目前动态扫描显示技术已经被广泛应用于新型数字仪表、智能仪器和智能显示屏中。 本次课程实践中运用QuartusII软件,采用VHDL文本设计和原理图相结合的层次化方式实现数码动态扫描显示电路设计。首先,分别用VHDL语言编写8位数码扫描显示电路程序和分频器程序,作为底层文件;顶层文件用原理图的设计方法,调用底层文件生成的符号,从而实现动态扫描显示。用VHDL设计一个8位数码扫描显示电路,利用QuartusII9.0进行编辑输入、编译及时序仿真。其中,由于分频器的分频系数过大时,在仿真波形上很难看出波形的变化,如本设计是从100MHz分频到1KHz,分频系数为一万,所以可以通过改变减小分频系数,如改为10分频,就得到变化的波形,来验证数码动态扫描显示电路设计的正误。 关键字:LED 动态扫描显示电路 Quartus II 分频器层次化设计 一、工作原理: 1、动态扫描显示的工作原理: 8位数码扫描显示的电路符号如下图(1)所示。输入信号:时钟信号CLK。输出控制信号:段控制信号SG[6..0];位控制控制信号BT[7..0]。如图(2)所示是8位数码扫描显示电路,其中每个数码管的8个段h、g、f、e、

d、c、b、a(h是小数点)都分别连接在一起,8个数码管分别由8个选通信号 k1~k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅为k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1~k8分别被选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。 实验参考扫描显示程序中CLK是扫描时钟;SG为7段控制信号,由高到低为分别接g、f、e、d、c、b、a7个段;BT是位选控制信号,接图(2)中的8个位选通信号:k1、k2、…k8。程序中CNT8是一个3位技术器,作扫描计数信号,有进程P2生成;进程P3是7断译码查表输出程序,进程P1是对8个数码管选通的扫描程序,例如当CNT8等于“001”时,K2对应的数码管被选通,同时,H被赋值3,再有进程P3译码输出“1001111”,显示在数码管上即为“3”;当CNT8扫变时将能在8个数码管上显示数据:23689ABC。 图(1)8位数码扫描电路的符号

基于51单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

微机原理数码显示实验报告

广东海洋大学寸金学院学生实验报告书 实验名称数码显示课程名称微机原理与接口技术系机电工程系专业机械设计制造及其自动化班级14机械2班学生姓名陈瑞玲学号20141032102 实验地点实验楼103 实验日期 一、实验目的: 了解LED数码管动态显示的工作原理及编程方法。 二、实验内容: 编制程序,使数码管显示“GOOD88”字样。 三、实验结果: 实验程序框图 实验步骤 联机模式: (1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S6.ASM文件,单击“确定”即可装入源文件,再单击工

具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)数码管显示“GOOD88”字样。 脱机模式: 1、在P.态下,按SCAL键,输入2DF0,按EXEC键。 2、数码管显示“GOOD88”字样。 实验程序清单 CODE SEGMENT ;S6.ASM display "GOOD88" ASSUME CS:CODE ORG 2DF0H START: JMP START0 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 BUF DB ?,?,?,?,?,? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H START0: CALL BUF1 ;缓冲区写初值 CON1: CALL DISP ;调显示子程序 JMP CON1 ;循环 DISP: MOV AL,0FFH ; 位码 MOV DX,PA ;数码管字位口 OUT DX,AL ;关位码 MOV CL,0DFH ; 最高位位码;显示子程序 ,5ms MOV BX,OFFSET BUF ;取缓冲区首址 DIS1: MOV AL,[BX] ;取缓冲区数字 MOV AH,00H ;清零 PUSH BX ;压栈 MOV BX,OFFSET DATA1 ;字表首址 ADD BX,AX ;加偏移量 MOV AL,[BX] ;取字形代码 POP BX ;出栈 MOV DX,PB ;字形口 OUT DX,AL ;送字形码 MOV AL,CL ;取位码 MOV DX,PA ;位口 OUT DX,AL ;送位口 PUSH CX ;压栈

单片机原理 数码管动态显示实验-单片机原理-实验报告

单片机原理数码管动态显示实验-单片机原理-实验报告宁德师范学院计算机系 实验报告 (2014—2015学年第 2学期) 课程名称单片机原理实验名称数码管动态显示实验专业计算机科学与技 术(非师范) 年级 2012级学号 B2012102147 姓名王秋指导教师杨烈君实验日期2015.4.17 实验目的: 1. 巩固Proteus软件和Keil软件的使用方法 2. 学习端口输入输出的高级应用 3. 掌握7段数码管的连接方式和动态显示法 4. 掌握查表程序和延时等子程序的设计 实验要求: 1. 在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2. 在电路中增加八位7段数码管(共阳/共阴自选),将P2口作数据输出口与7段数码管数据引 脚相连,P3引脚输出位选控制信号 3. 在Keil软件中编写程序,采用动态显示法,实现数码管分别显示数字1-8 4. 实现指定数值的显示 (可使用缓存数值) 5. 实现类似时钟的效果,如“ 13-23-25” 13时23分25秒 6. 实现时钟的自动计时 7. 扩展要求: 结合LED显示,实现带数码显示的交通灯

实验设备(环境): 1(计算机 2(Proteus ISIS 7 Professional应用程序 3(Keil应用程序 实验内容: 数码管动态显示技术要求实现: 1(动态显示法,实现数码管分别显示数字1-8; 2(实现指定数值的显示 (可使用缓存数值) (33355223); 3(实现类似时钟的效果,如“ 13-23-25” 13时23分25秒; 4(实现时钟的自动计时; 扩展要求: 结合LED显示,实现带数码显示的交通灯; 实验步骤、实验结果及分析: 1 实验步骤: 1、使用Proteus ISIS 7 Professional应用程序,建立一个.DSN文件 2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、CAP、CAP-ELEC、 CRYSTAL、RESPACK-8。 3、构建仿真电路: 连接图

相关文档
最新文档