拉幕式数码显示技术

拉幕式数码显示技术
拉幕式数码显示技术

21.拉幕式数码显示技术

1.实验任务

用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。

AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。

2.电路原理图

图4.21.1

3.系统板上硬件连线

(1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;

(2.把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;

(3.把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上;

4.程序设计方法

(1.动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示,因此,要显示8位的数据,必须经过让数码管

一个一个轮流显示才可以,同时每个数码管显示的时间大约在

1ms到4ms之间,所以为了保证正确显示,我必须每隔1ms,

就得刷新一个数码管。而这刷新时间我们采用单片机的定时/

计数器T0来控制,每定时1ms对数码管刷新一次,T0采用方

式2。

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

5.程序框图

主程序框图

开始

显示缓冲区初始化

必要参数初始化

T0初始化,TH0,TL0装入初值

T0工作并开中断

等待中断

中断服务程序

T0中断入口

通过查表方式,获得显示代码送入P0

位选数据送P1

位选数据=8吗?

位选数据加1

位选数据=0

CNT加1

0.4秒定时到了吗?

CNT=9吗?

CNT=0

根据CNT来决定显示几位数据

中断返回

6.汇编源程序

DISPBUF EQU 30H DISPCNT EQU 38H

DISPBIT EQU 39H

T1CNTA EQU 3AH

T1CNTB EQU 3BH

CNT EQU 3CH

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0 START: MOV DISPCNT,#8 MOV A,#10

MOV R1,#DISPBUF LP: MOV @R1,A

INC R1

DJNZ DISPCNT,LP MOV DISPBIT,#00H MOV T1CNTA,#00H

MOV CNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0

SETB ET0

SETB EA

SJMP $

INT_T0:

MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 MOV A,DISPBIT

ADD A,#DISPBUF

MOV R0,A

MOV A,@R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,P1

ANL A,#0F8H

ADD A,DISPBIT

MOV P1,A

INC DISPBIT

MOV A,DISPBIT

CJNE A,#08H,NEXT

NEXT: INC T1CNTA

MOV A,T1CNTA

CJNE A,#50,LL1 MOV T1CNTA,#00H INC T1CNTB

MOV A,T1CNTB

CJNE A,#8,LL1

MOV T1CNTB,#00H INC CNT

MOV A,CNT

CJNE A,#9,LLX

MOV CNT,#00H

MOV A,CNT

LLX: CJNE A,#01H,NEX1 MOV 30H,#8

LL1: LJMP DONE

NEX1: CJNE A,#02H,NEX2 MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX2: CJNE A,#03H,NEX3 MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX3: CJNE A,#04H,NEX4

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX4: CJNE A,#05H,NEX5 MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX5: CJNE A,#06H,NEX6 MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX6: CJNE A,#07H,NEX7 MOV 36H,#8

MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

LJMP DONE

NEX7: CJNE A,#08H,NEX8

MOV 37H,#8

MOV 36H,#8

MOV 35H,#8

MOV 34H,#8

MOV 33H,#8

MOV 32H,#8

MOV 31H,#8

MOV 30H,#8

LJMP DONE

NEX8: CJNE A,#00H,DONE

MOV 37H,#10

MOV 36H,#10

MOV 35H,#10

MOV 34H,#10

MOV 33H,#10

MOV 32H,#10

MOV 31H,#10

MOV 30H,#10

LL: LJMP DONE

DONE: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H END

7.C语言源程序

#include

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00}; unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,

0xfc,0xfd,0xfe,0xff}; unsigned char dispbuf[8]={16,16,16,16,16,16,16,16}; unsigned char dispbitcnt;

unsigned int t02scnt;

unsigned char t5mscnt;

unsigned char u;

unsigned char i;

void main(void)

{

TMOD=0x02;

TH0=0x06;

TL0=0x06;

TR0=1;

ET0=1;

EA=1;

while(1);

}

void t0(void) interrupt 1 using 0

{

t5mscnt++;

if(t5mscnt==4)

{

t5mscnt=0;

P0=dispcode[dispbuf[dispbitcnt]]; P1=dispbitcode[dispbitcnt];

dispbitcnt++;

if(dispbitcnt==8)

{

dispbitcnt=0;

}

}

t02scnt++;

if(t02scnt==1600)

{

t02scnt=0;

u++;

if(u==9)

{

u=0;

}

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

{

dispbuf[i]=16;

}

for(i=0;i

{

dispbuf[i]=8; }

}

}

单片机教案(数码管显示器接口技术)

数码管显示器接口技术 一、 LED数码管的结构 由8段发光二极管组成。其中7段组成“8”字,1段组成小数点。通过不同的组合,可用来显示数字0~9、字母A~ F及符号“.”。 LED数码管有共阴极和共阳极两种结构。 二、 LED数码管的工作原理 发光二极管导通→亮,不导通→暗。这样就构成了字符的显示。其十六进制的编码表如下:

三、数码管接口电路 1、静态显示方式(硬件接口方法) 这就是我们在数字电路中所学的内容,在数据总线上的信号须经I/O接口电路并锁存,然后通过译码器,就可以驱动LED 显示器中的段发光。 这种方式使用的硬件较多(显示器的段数和位数越多,电路越复杂),缺乏灵活性,且只能显示十六进制数。

2、动态显式方式(软件接口方法) 这种接口方法是以软件查表来代替硬件译码,既省去了译码器,又能显示更多段的字符和更多位的LED显示器。所以广泛应用于单片机系统的显示。 ⑴连接方式 ①将单片机的输出送入可编程的8155芯片,然后利用8155的I/O 口提供两路输出信号(一路是段控信号,另一路是位控信号)。 ②将各位数码管的a~h端分别并在一起(若有6个数码管,则将 它们6个a对a,6个b对b......6个h对h相并接),再和上面的一路I/O口输出的8位段控信号相连,以获得显示代码,对应要发光的段。 ③将各位数码管的公共端(共阴极或共阳极)分别与上面的另一路 I/O口相连(每一位公共端对应I/O口中的一位),以获得位控信号使该位LED发亮。 ④为了存放显示的数字或字符,通常在8155的内部RAM中设置显 示缓冲区,其存储单元个数与LED显示器的位数相同。 ⑵显示原理 ①每一时刻只有一位LED被点亮,在显示代码的作用下显示信息。 ②各位LED轮流被点亮,在各自的显示代码的作用下分别显示各自的信息。

多位数码管动态扫描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 原理图

数码管显示动态数字 单片机报告

目录 一、设计题目 (2) 二、设计目的 (2) 2.1设计目的要求 (2) 2.2 系统设计意义 (2) 三、系统硬件图 (3) 四、程序流程图 (3) 五、系统说明与分析 (4) 5.1系统主要组成部分 (4) 5.2 单片机最小系统部分 (4) 5.2.1 MCS-51系列单片机概述 (4) 5.2.2 MCS-51系列单片机的并行I/O口 (5) 5.2.3 MCS-51系列单片机的工作方式和时序 (8) 5.3串行转并行部分 (10) 5.3.1 74ls164的概述 (10) 5.3.2 74ls164的功能 (15) 5.4数码显示部分 (16) 5.4.1概述 (16) 5.4.2 LED数码管引脚结构 (16) 5.4.3 LED数码管显示原理 (17) 5.4.4 LED数码管的驱动方式 (17) 5.5电路板的制作 (18) 5.6 系统连线说明分析 (19) 六、源程序 (20) 七、总结 (22) 八、参考文献 (23)

一、设计题目 通过51系列单片机的串行口和74ls164显示0~9十个数字。 二、设计目的 该单片机最小应用系统设计目的及要求如下: 2.1设计目的要求 1、通过本次实验,掌握单片机串行口的扩展功能; 2、通过对单片机的使用和编程,了解单片机的应用编程; 3、搭建单片机最小应用系统,进一步加深对单片机应用的理解,提高处理实际问题的能力和独立分析思考的能力; 4、掌握单片机汇编编程技术中的设计和分析方法; 5、学会使用并熟练掌握电路绘制软件Protel99SE(或DXP); 6、掌握电路图绘制及PCB图布线技巧。 2.2 系统设计意义 1、在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。 2、完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。 3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。 4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。 5、用AT89S51,74ls164设计出题目所要求的数字显示,实现循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。 6、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。

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

实验三数码显示 一、实验目的 了解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

LED数码管的动态显示

实验四 LED数码管的动态显示 一、实验目的 1、学习LED数码管的静态和动态显示编程。 2、学习使用定时/计数器。 一、实验说明 1、定时器 51单片机有两个16位内部定时器/计数器(T/C,Timer/ Counter)。若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。由于脉冲周期固定由计数值可以计算出时间,有定时功能。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。 1)定时器初始化步骤 在使用51系列单片机的T/C前,应对它进行编程初始化,主要是对TCON 和TMOD编程,还需要计算和装载T/C的计数初值。一般完成以下几个步骤: (1)确定T/C的工作方式——编程TMOD寄存 (2)计算T/C中的计数初值,并装载到TH和TL; (3)T/C在中断方式工作时,必须开CPU中断和源中断——编程IE寄存器; (4)启动定时器/计数器——编程TCON中TR1或TR0位。 2、LED动态显示 数码管显示方式分为两种:静态显示和动态显示。静态显示的特点是各LED 能稳定地同时显示各自字形,动态显示是指各LED轮流显示各自字符,利用人眼的视觉惰性使人感觉不到是一位一位显示的,而是一起显示的。 三、实验内容及步骤 1、了解GL10实验箱中四位数码管硬件电路,电路如图4-1所示 图4-1数码管硬件电路 2、启动PC机,按照GL10硬件安装指导书(附件2)和GL10驱动程序安装指导书(附件完成PC和GL10实验箱的连接 3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着建立源

用单片机实现动态数码显示

用单片机实现动态数码显示 1.制作简介 利用AT89S51单片机来实现数码的动态显示,P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。 2.电路原理图

3.系统板上硬件连线 1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; 2.把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; 3.把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP 1端口上。 4.程序设计内容 1.动态扫描方法 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。 2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 3.对于显示的字形码数据我们采用查表方法来完成。 5.程序框图

6.汇编源程序 ORG 00H START: JB P1.7,DIR1 MOV DPTR,#TABLE1 SJMP DIR DIR1: MOV DPTR,#TABLE2 DIR: MOV R0,#00H MOV R1,#01H

NEXT: MOV A,R0 MOVC A,@A+DPTR MOV P0,A MOV A,R1 MOV P2,A LCALL DAY INC R0 RL A MOV R1,A CJNE R1,#0DFH,NEXT SJMP START DAY: MOV R6,#4 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET TABLE1: DB 06H,5BH,4FH,66H,6DH TABLE2: DB 78H,79H,38H,38H,3FH END

液晶显示器各种接口认识与比较

液晶显示器各种接口认识与比较 显示器接口是指显示器和主机之间的接口,通常有DVI、HDMI和D-Sub(VGA)三种: DVI数字输入接口:DVI(Digital Visual Interface,数字视频接口)是近年来随着数字化显示设备的发展而发展起来的一种显示接口。普通的模拟RGB接口在显示过程中,首先要在计算机的显卡中经过数字/模拟转换,将数字信号转换为模拟信号传输到显示设备中,而在数字化显示设备中,又要经模拟/数字转换将模拟信号转换成数字信号,然后显示。在经过2次转换后,不可避免地造成了一些信息的丢失,对图像质量也有一定影响。而DVI接口中,计算机直接以数字信号的方式将显示信息传送到显示设备中,避免了2次转换过程,因此从理论上讲,采用DVI接口的显示设备的图像质量要更好。另外DVI接口实现了真正的即插即用和热插拔,免除了在连接过程中需关闭计算机和显示设备的麻烦。现在很多液晶显示器都采用该接口,CRT显示器使用DVI接口的比例比较少。需要说明的是,现在有些液晶显示器的DVI接口可以支持HDCP协议,为看有版权的高清电影电视打下基础。 HDMI数字输入接口:HDMI的英文全称是“High Definition Multimedia”,中文的意思是高清晰度多媒体接口。HDMI接口可以提供高达5Gbps的数据传输带宽,可以传送无压缩的音频信号及高分辨率视频信号。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。应用HDMI的好处是:只需要一条HDMI线,便可以同时传送影音信号,而不像现在需要多条线材来连接;同时,由于无线进行数/模或者模/数转换,能取得更高的音频和视频传输质量。对消费者而言,HDMI技术不仅能提供清晰的画质,而且由于音频/视频采用同一电缆,大大简化了家庭影院系统的安装。HDMI接口支持HDCP协议,为看有版权的高清电影电视打下基础。 2002年的4月,日立、松下、飞利浦、Silicon Image、索尼、汤姆逊、东芝共7家公司成立了HDMI组织开始制定新的专用于数字视频/音频传输标准。2002年岁末,高清晰数字多媒体接口(High-definition Digital Multimedia Interface)HDMI 1.0标准颁布,到2006底已经颁布了1.3版本,主要变化在于近一步加大带宽,以便传输更高分辨率和色深。HDMI

数码管动态显示教案

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

目录 摘要.................................................................................................. 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单片机;数码管;滚动显示

数码管动态显示数字

/***********************用译码器*******************************************/ #include #define GPIO_DIG P0 sbit LSA=P2^0; sbit LSB=P2^1; sbit LSC=P2^2; unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码管字型码0~F void Delay10ms(unsigned int c) //误差0us { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } void main() { unsigned char i=0; P2=0x00; //位显示 while(1) { GPIO_DIG=DIG_CODE[i++]; //段显示 Delay10ms(100); //55us GPIO_DIG=0x00;//消隐 P2=(P2+1)%8; if(i==8) i=0; } } /*******************不用译码器****************************************/ #include //--定义使用的IO口--// #define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选 //--定义全局变量--// unsigned char code DIG_PLACE[8] = {

LED数码显示课程设计

专业课程设计 设计报告 LED数码显示设计 班级: 专业: 设计人(学号): 完成日期: 成都信息工程学院控制工程学院

一、 设计目的 结合实际情况,编程设计、布线、程序调试、检查与运行,完成一个与接近实际工程项目的课题,以培养学生的实际操作能力,适应生产一线工作的需要。做到能检查出错误,熟练解决问题;对设备进行全面维修。通过实训对PLC 的组成、工作原理、现场调试以及基于网络化工作模式的基本配置与应用等有一个一系列的认识和提高。 二、 设计要求 1掌握可编程序控制器技术应用过程中的一些基本技能。 2、巩固、加深已学的理论知识。 3了解可编程控制器的装备、调试的全过程。 4、培养我们综合运用所学的理论知识和基本技能的能力,尤其是培养我们把理论和实际结合起来分析和解决问题的能力。适应世界生产的需要。培养出一批既有理论知识又有动手能力的人才。 三、 设计内容 1、练习设计、连接、调试控制电路; 2、学习PLC 程序编程; 四、 设计任务 项目名称:LED 灯数码显示控制程序设计 项目功能简介:本设计是利用PLC 来控制七段LED 数码管的显示,LED 面板示意如下图1所示。数码管的每一段都对应于PLC 的一个输出端子。设计的控制要求为: a b c d e f g h 图1 给一个“启动”脉冲,数码管按如下规律显示: 1、全灭1秒; 2、依次显示“0.”、“1.”、“2.”、“3.” 、……“9.”、“A.”、“b.”……“F.”; 3、循环至第1步; 4、给一个“停止”脉冲,全部熄灭。

设计原理: LED数码管两种显示接线方法: LED数码管有两种显示连接方式,一种是共阴,另一种是共阳,当发光二极管正向偏置时,发光管(LED)灯就亮,其工作原理如图2所示。 (a)(b) 图2 LED数码管显示原理 在图2(a)中,当a 端为正,COM端为负时,则a 段亮。若要显示数字“1”,则b、c端为高电平,其余a、d、e、f、g分别为低电平即可。 用PLC控制LED显示有两种方法,一种方法是输出4为BCD码给LED显示(如用BCD码指令显示);另一种方法是由PLC编制程序进行译码,来控制显示a到g段,我们选用的是第二种方法,在下面的的表一中列出了数码管显示的真值表。 数码管要在规定时间段显示规定的数码,必须了解数码管的动态显示原理,以免出现闪烁或者无法显示的现象. 动态显示原理:原理上同一时刻只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是常说的动态扫描显示。 动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,所以一般均取几个ms左右为宜。

LED数码显示器及接口技术

收稿日期:2004-09-30 作者简介:李五坡(1973-),男,河南夏邑人,商丘职业技术学院助教,主要从事机电技术研究. 文章编号:1671-8127(2005)02-0055-03 L ED 数码显示器及接口技术 李五坡1,董海霞2 (1.商丘职业技术学院,河南商丘476000;2.商丘技工学校,河南商丘476000) 摘 要:L ED (Light Emiting Diode )是发光二极管的简称,是一种通电后能发光的半导体器件,导电性质与普通二极管类似. L ED 数码显示器就是由发光二极管组合而成的一种新型的显示器件,在单片机系统与接口技术中得到了广泛的应用. 关键词:单片机;L ED 显示器;接口技术 中图分类号:O175.29 文献标识码:A L ED 数码显示器件是一种由八个L ED 发光二极管组合显示字符的显示器件,其中七个用于显示字符,一个用于显示小数点,故通常称为七段(也称八段)L ED 数码显示器.从小型计算器到复杂的仪器仪表,L ED 数码显示器都得到了广泛的应用,实际使用的L ED 显示器都是多位的,对于多位显示器多采用动态扫描的方法显示[1],用单片机(8155)的A 口、C 口分别控制段码和位码实现L ED 显示器的动态扫描. 1 L ED 数码显示器的结构与显示段码 1.1 L ED 数码显示器的结构 发光二极管(L ED )与普通二极管类似,只要管子上有电流流过,管子就点亮.通过七段发光二极管亮暗不同的组合,可以显示多种数字、字母及其它字符[2].内部结构如图1. 1.2 L ED 数码显示器的连接方法. 1.2.1 共阴极连接.把七个发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地.每个发光二极管的阳极通过电阻与输入端连接,阳极端输入高电平时,发光二极管点亮,输入低电平时则不亮.连接方法如图2. 1.2.2 共阳极接法.把七个发光二极管的阳极连在一起构成公共阳极,使用时阳极接+5V 电源,每个发光二极管的阴极通过电阻与输入端连接,阴极输入低电平时,发光二极管点亮,输入高电平则不亮.连接方法如图 3. 图1 发光二极内部结构 图2 共阴极 图3 共阳极 1.3 L ED 数码显示器的显示段码. 为了显示字符,要为L ED 显示器提供显示段码[3],组成一个“8”字形字符的七段,加上一个小数点位,共八段,所以提供给L ED 显示器的显示段码为1个字节,对应关系如表1.表1 L ED 显示器显示段码的对应关系 段码位 D7D6D5D4D3D2D1D0显示段dp g f e d c b a 2 L ED 数码显示器的接口电路 2.1 实际使用的L ED 数码显示器位数较多,为了简化电路、降低成本,多采用以软件为主的接口方法.对于多位(以3位为? 55?2005年第2期第4卷(总第17期) 商丘职业技术学院学报J OU RNAL OF SHAN GQ IU VOCA TIONAL AND TECHN ICAL COLL EGE Vo1.4,No.2Apr.,2005

基于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数码管动态显示的流程如下所示。

013、动态数码显示技术

13.动态数码显示技术 1.实验任务 如图4.13.1所示,P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。 2.电路原理图 图4.13.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上;

(2.把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3.把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP1端口上; 4.程序设计内容 (1.动态扫描方法 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。 (2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 (3.对于显示的字形码数据我们采用查表方法来完成。 5.程序框图 图4.13.2

6.汇编源程序 ORG 00H START: JB P1.7,DIR1 MOV DPTR,#TABLE1 SJMP DIR DIR1: MOV DPTR,#TABLE2 DIR: MOV R0,#00H MOV R1,#01H NEXT: MOV A,R0 MOVC A,@A+DPTR MOV P0,A MOV A,R1 MOV P2,A LCALL DAY INC R0 RL A MOV R1,A CJNE R1,#0DFH,NEXT SJMP START DAY: MOV R6,#4 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET TABLE1: DB 06H,5BH,4FH,66H,6DH TABLE2: DB 78H,79H,38H,38H,3FH END 7. C语言源程序 #include unsigned char code table1[]={0x06,0x5b,0x4f,0x66,0x6d}; unsigned char code table2[]={0x78,0x79,0x38,0x38,0x3f}; unsigned char i; unsigned char a,b; unsigned char temp; void main(void) { while(1) { temp=0xfe; for(i=0;i<5;i++) { if(P1_7==1)

基于单片机的拉幕式数码显示技术--课程设计

基于单片机的拉幕式数码显示技术--课程设计

单片机程设计报告 题目:拉幕式数码显示技术 电气工程学院

拉幕式数码显示技术 摘要:单片机具有体积小,重量轻,控制灵活方便,价格低廉等优点,通常配 以简单的外围电路就可以构成一个完整的控制系统。用AT89S51单片机的 P0.0/AD0-P0.7/AD7端口接数码管的a-h 端,8 位数码管的S1-S8 通过 74LS138译码器的Y0-Y7 来控制选通每个数码管的位选端。AT89S51 单片机的P1.0-P1.2 控制74LS138 的A,B,C 端子。在8 位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。 关键字:单片机 AT89S51 74LS138 拉幕式数码显示 Abstract: The MCU is small, light weight, control flexibility, the advantages of low cost, usually accompanied by a simple external circuit can form a complete control system. P0.0/AD0-P0.7/AD7 with AT89S51 microcontroller port connected digital tube a-h-side, 8-bit digital control of the S1-S8 through the 74LS138 decoder Y0-Y7 to control the strobe tube each digital The bit select. AT89S51 MCU P1.0-P1.2 control 74LS138 of A, B, C terminal. In the 8-bit digital tube display from right to left circle, "12345678." Can be smoothed to see the curtain effect. Keywords:MCU AT89S51 74LS138 pull-screen digital display

数码管动态扫描显示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数码管字形扫描动态显示技术

收稿日期:2008-03-25 作者简介:鄢积分(1963-),女,江西南昌人,江西蓝天学院,工程师。研究方向:机电一体化。 朱洪涛(1962-),男,江西南昌人,南昌大学,教授,博导。研究方向:精密仪器及机械。 七段LE D 数码管字形扫描动态显示技术 鄢积分 1 朱洪涛 2 (1、江西蓝天学院机电所 江西南昌330098;2、南昌大学机电学院江西南昌330031) 摘要:在综合叙述和分析单片机控制系统中常用的七段LE D 数码管显示接口技术的设计思路与性能差异的基础 上,介绍一种特别适合于需要同时驱动较多位数数码管的场合使用的字形扫描动态显示新技术,其硬件接口电路与软件接口编程均比较简单,同时又能很好地保证显示的亮度。通过提供实例,已经获得工程应用。 关键词:单片机七段LE D 数码管字形扫描中图分类号:TP39文献标识码:B 文章编号:123(2008增)-029-03 0 引言 微型计算机,尤其是单片机控制系统中,七段LE D 数码管以其简单直观、主动发光、布置灵活、经济性好等特点,成为首选的显示输出设备。数码管显示接口常用的有静态与动态显示二种不同方式,二者在硬件开销(包括接口资源、 PCB 板面积等)与软件开销(包括数据维护、显示码计算等) 各有所长,均获得广泛的应用。其中,显示位数较少时常采用静态显示方式以追求软件的最大简化,显示位数较多时则常采用动态显示方式以追求硬件的最大简化。 1 动态显示技术分析 动态显示接口电路以字位扫描方式工作的最为常见,一般的单片机教科书中均予以详细介绍[1][2][3][4] 。其主要工作原理为:各数码管按位分时扫描显示。在该动态显示接口硬件电路中,有一个8位的字段驱动器(译码方式时还包括一个译码器),各数码管的同名字段(包括小数点字段)并联后,接在相应的字段驱动线上。同时有若干位(与数码管位数相当)的位驱动器,各位数码管的公共端各自接不同的位扫描线。动态扫描信号加载在位扫描线上,所需输出的显示码与扫描信号配合加载在字段驱动线上,各数码管按一定的时间间隔轮流使用字段驱动器。该接口方式硬件 电路简单,软件又不失简洁。字位扫描动态显示方式常用 于显示位数8-12位的应用场合,可大大节省硬件成本。 字位扫描方式最大的问题是显示亮度。由于各数码管分时点亮,当显示位数为X 时,每一位点亮的时间只有显示时间的1/X,位数过多时显示亮度将大幅下降,甚至到了不能实际使用的程度。 字段扫描动态显示方式[5]是一种专门针对较多位数数码管的显示方法。其主要工作原理为:数码管各段分时扫描显示。除驱动电流计算略有不同之外,字段扫描动态显示接口硬件电路与字位扫描动态显示接口硬件电路基本相同,也包括一个8位的字段驱动器和与显示位数适应的位驱动器。所不同的是,采用字段扫描方式时,动态扫描信号加载在字段驱动线上,各数码管的不同字段被按一定的时间间隔轮流驱动,而与各数码管公共端相连的位驱动线上加载的是位控码,位控码的各位决定着哪几位数码管的对应 字段被点亮(可能全部、部分或均不显示该字段)。 由于7段LE D 数码管连小数点在内共有8个字段,所以无论有多少位的数码管,扫描显示的时间和间隔的时间都是不变的,因此,数码管的显示亮度与数码管的位数无关。 字段扫描动态显示技术特别适用于显示位数较多(如 20位以上)的数码管显示。字段扫描技术最大的缺点是软 件编程比较复杂。以一个24位数码管的显示系统为例,与数码管字段a 、b 、c 、d 、e 、f 、g 、dp 扫描过程协同工作的是8个 3字节(24bit ×8)的位控码。位控码为组合码,每位数码管 ? 92?增刊2008年10月 江西蓝天学院学报JOURNAL OF J I A NGX IBLUE SKY UN I V ERSI TY Supp le ment Oct ober .2008

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

微机原理与接口技术 实验报告 实验题目:动态数码显示设计 指导老师: 班级:计算机科学与技术系 姓名: 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 动态数码显示程序流程图

动态扫描数码显示电路

1.课程设计目的 巩固所学理论,提高动手能力、创新能力和综合设计能力。 熟悉常用芯片的引脚功能。 了解动态扫描数码显示电路的组成及工作原理。 2.课程设计要求 任务要求:动态扫描数码现实电路设计,通过单路显示译码器驱动多路显示输出,同时动态扫描现实时达到无闪烁效果。 性能指标要求: (1)设计制作一个进行四位十进制数码显示电路。 (2)分时显示各位十进制数码。 (3)设计用于动态显示控制的脉冲发生电路。 (4)设计分时动态扫描显示控制的逻辑电路。 (5)输入的显示数据为8421BCD码,且并行输入。 3.电路图组成框图 图1 4.元器件清单 元器件:4位拨码开关4只,74LS161十六进制计数器—1片,74LS138译码器—1片,74LS240带三态输出反相器—4片,显示译码器7448, LED显示管 5 个 ,小灯4个,555定时器,Ω电阻一个,Ω电阻一个,10nF电容两个,电源,非门,与非门,导线若干。

仿真环境:软件Multisim。 5.各功能块电路图 脉冲发生电路 图2 该脉冲发生电路为由555定时器接成的多谐振荡器。其中R 1为Ω,R 2 为Ω,C 为10nF,则其产生脉冲的 频率为: 占空比为: 计数器 图3

该计数器主要由一个74LS161构成,CLK端接收来自脉冲发生电路中555定 时器的输出脉冲信号,74LS161对其脉冲进行计数,在其输出端Q D Q C Q B Q A 产生从 0000到1111的十六进制循环的高低电平信号,其Q B Q A 产生的高低电平信号为00、 01、10、11四进制的循环计数,若需要对六个数码管进行动态扫描显示,则需要将其改接成六进制计数器。 译码器 图4 该译码器使用的是74LS138,输入端AB接收来自计数器Q A Q B 的高低电平信 号,并对其进行译码,因为计数器产生的信号是四进制的,所以只需要用到AB 两位,C端接低电平,输出端Y 0-Y 4 根据输入信号的状态,对应位为低电平。 显示控制及显示译码 图5 该部分由显示译码、显示控制以及拨码开关组成,是本电路的关键部分。显

数码管动态显示实验报告

实验四数码管动态显示实验一 一、实验要求 1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码 管数据引脚相连,P2.0~P2.3引脚输出选控制信号 3.在Keil软件中编写程序,采用动态显示法,实现数码管分别显示数字1,2,3,4 二、实验目的 1.巩固Proteus软件和Keil软件的使用方法 2.学习端口输入输出的高级应用 3.掌握7段数码管的连接方式和动态显示法 4.掌握查表程序和延时等子程序的设计 三.实验说明 本实验是将单片机的P1口做为输出口,将四个数码管的七段引脚分别接到P1.0至P1.7。由于电路中采用共阳极的数码管,所以当P1端口相应的引脚为0时,对应的数码管段点亮。程序中预设了数字0-9的段码。由于是让四个数码管显示不同的数值,所以要用扫描的方式来实现。因此定义了scan函数,接到单片机的p2.0至p2.3 在实验中,预设的数字段码表存放在数组TAB中,由于段码表是固定的,因此存储类型可设为code。 在Proteus软件中按照要求画出电路,再利用Keil软件按需要实现的功能编写c程序,生成Hex文件,把Hex文件导到Proteus软件中进行仿真。为了能够更好的验证实验要求,在编写程序时需要延时0.5s,能让人眼更好的分辨;89C51的一个机器周期包含12个时钟脉冲,而我们采用的是12MHz晶振,每一个时钟脉冲的时间是1/12us,所以一个机器周期为1us。在keil程序中,子函数的实现是用void delay_ms(int x),其中x为1时是代表1ms。 四、硬件原理图及程序设计 (一)硬件原理图设计 电路中P1.0到P1.7为数码管七段端口的控制口,排阻RP1阻值为220Ω,p2.0到p2.3为数码管的扫描信号。AT89c51单片机的9脚(RST)为复位引脚,当RST为高电平的时间达到2个机器周期时系统就会被复位;31引脚(EA)为存取外部存储器使能引脚,当EA为高电平是使用单片机内部存储器,当EA为低电平时单片机则使用外部存储器。18、19引脚是接晶振脚。而接地和电源端在软件中已经接好,所以不用在引线。 如下图所示:

相关文档
最新文档