拉幕式数码显示.docx

上传人:b****8 文档编号:9536216 上传时间:2023-02-05 格式:DOCX 页数:18 大小:394.95KB
下载 相关 举报
拉幕式数码显示.docx_第1页
第1页 / 共18页
拉幕式数码显示.docx_第2页
第2页 / 共18页
拉幕式数码显示.docx_第3页
第3页 / 共18页
拉幕式数码显示.docx_第4页
第4页 / 共18页
拉幕式数码显示.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

拉幕式数码显示.docx

《拉幕式数码显示.docx》由会员分享,可在线阅读,更多相关《拉幕式数码显示.docx(18页珍藏版)》请在冰豆网上搜索。

拉幕式数码显示.docx

拉幕式数码显示

第1章概述1

单片机的硬件特性与发展趋势1

第2章系统总体方案设计3

第3章硬件设计5

3.1控制模块5

3.2显示模块5

3.3驱动模块6

3.4其他硬件6

3.4.174LS138译码器7

3.4.2时钟电路.7

3.4.3复位电路8

3.5系统硬件原理图8

第4章软件设计及调试9

4.1设计软件9

4.1.1KeilC51软件9

4.1.2Proteus软件9

4.2程序流程图9

4.3程序设计10

第5章系统联调及操作说明15

第6章总结17

第1章概述

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。

单片机往往是作为一个核心部件来使用,再根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

单片机,亦称单片微电脑或单片微型计较机。

它是把中心处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)输入/输出端口(I/0)等首要计算机功能部件都集成在一块集成电路芯片上的微型计较机。

单片机的硬件特性与发展趋势

1.低功耗CMO化

MCS-51系列的8031推出时的功耗达630mW而此刻的单片机普遍都在100mW随着对单片机功耗要求越来越低,此刻的各个单片机制造商根基都采用了CMOS互补金属氧化物半导体工艺)。

80C51就采用了HMOSg卩高密度金属氧化物半导体工艺)和CHMO互补高密度金属氧化物半导体工艺)。

CMOSS然功耗较低,但因为其物理特征决定其工作速度不够高,而CHMO则具备了高速和低功耗的特点。

这些特征,更适合于在要求低功耗,电池供电的应用场所。

2.微型单片化

常规的单片机普遍都是将中心处理器(CPU)、随机存取数据存储(RAM)只读存储器(ROM)并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW脉宽调制电路)、WDT看门狗)、有些单片机将LCD液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强。

单片机厂商还可以按照用户的要求量身定做,制造出具有自己特色的单片机芯片。

单片机除了功能强和功耗低外,还要求其体积要小

3.高性能

以往单片机内的ROM为1KA4KB,RAM为64〜128B但在需要复杂工作的场所,该存储容量是不够的,必需进行外接扩充。

为了顺应这种规模的要求,须运用新的工艺,使片内存储器容量增大。

此外单片机进一步改变CPU勺性能能,加速指令运算的速度和提高系统机制的稳定性。

采用精简指令集(RISC)结构和流水线工艺,可以大幅度提高运行速度。

单片机改变了我们的生活,从导弹的导航装配,到飞机上的各类仪表,从计算机的收集通信与数据传输,到工业自动化过程的控制,以及我们生活中普遍使用的各类智能IC卡、电子宠物等,这些都离不开单片机,单片机有着广阔的应用前景。

本次课程设计的要求是以51系列单片机为核心,以开发板为平台,设计一个拉幕式数码显示系统。

对于要显示的数码1、2、3、

4、5、6、7、8具有比较平滑的拉幕显示效果。

本设计是以AT89C51单片机为核心,结合相关的元器件(共阴极七段LED数码显示器,

74LS138等),再配以相应的软件,达到制作简易的数码显示技术目的,其难点在于程序的编写与调试等。

第2章系统总体方案设计

课题的核心为采用单片机设计一个具有拉幕式数码显示效果的系统,我们可以通过采用AT89C51芯片、74LS138芯片和一片8LED数码显示管进行设计。

用AT89C51单片机的PO.O/ADO—

P0.7/AD7端口接数码管的a—h端,通过编写相应程序,实现从右到左、从左到右的“12345678”的数字显示和从两端到中间

“43211234”的显示,能够比较平滑地看到拉幕的效果。

数码管的公共端固定接地(共阴极)或接正电源(共阳极),直接在I/O线发送相应的字段码即可,为静态显示工作情况。

使每个数码管轮流点亮相应字符再不断循环,从计算机角度看是一个一个显示的,但由于人的视觉暂留效应,只要循环周期足够短,看起来所有数码管都是一起显示的,为动态显示工作情况。

AT89C51芯片总共有40个管脚,其中可做I/O管脚有P0口、P1口、P2口和P3口共32个,我们可以通过选择其中一个口的8个管脚作为输出端接通七段数码显示管,再选择另外一个口接至七段数码显示管的片选端,通过此方式,我们直接通过AT89C51芯片驱动七段数码显示管工作,而无须其他扩展端口。

系统总体框图设计如下:

段码信号

通过选择AT89C51的P0口作为数据传送端口传送数据,在数码管上显示相应的数据,选择P2口的P2.0、P2.1、P2.2三个端口实现对数码管的位选;同时为了使单片机能比较精确工作,夕卜部还需有时钟电路等。

第3章硬件设计

3.1控制模块

对于AT89C51单片机单元,由于其共有40个管脚,其中有32个管脚可作为I/O口用,它们分别为P0口的八个管脚、P1口的八个管脚、P2口的八个管脚和P3口的八个管脚,其中P3口的八个管脚可作串行口、外部中断、定时器、读写控制等特殊用途,当不需要作特殊用途的时候,P3口可作I/O口使用。

AT89C51单

图3.1AT89C51单片机芯片示意图

3.2显示模块

对于数码显示管单元,我选用的是七段数码显示管,七段数码显示管有共阴极和共阳极两种,显示器接口按驱动方式可分为静态显示和动态显示两种方式。

静态显示的优点是显示稳定,亮度高;缺点是占用硬件电路(如I/O口、驱动器等)多。

动态显示的优点是节省硬件电路;缺点是采用软件扫描时占用CPU时间

多,当显示位数较多时,显示器亮度将受到影响。

此系统我们采用的是7段共阴数码显示管、静态显示的工作情况。

7段共阴数码显示管如下图所示:

 

图3.27段共阴数码显示管硬件图

3.3驱动模块

数码显示管单元中还用到了驱动电阻,如下图所示:

 

R1

R2

R3

R4

R5

R6

R7

3k3

3K3

3k3

3k3

3怕

3k3

t4

►彳

>*

3k3

图3.3驱动电阻电路图

3.4其他硬件

34174LS138译码器

74LS138为3线—8线译码器,其硬件图如下图所示:

U2

74LS138

图3.474LS1383线—8线译码器

3.4.2时钟电路

利用片内振荡电路,将XTAL1和XTAL2外接晶体振荡器或陶

C1T;

瓷谐振器,构成内部自激振荡器,产生振荡时钟脉冲。

电路中,石英晶体选择12MHz电容器C1和C2对振荡频率有微调作用,取值为30pF。

时钟电路图如下:

X1

CRYSTAL

FREQ=12MHz

 

图3.5时钟电路

343复位电路

复位电路设计如下图:

R1

IK

图3.6复位电路

3.5系统硬件原理图

系统硬件原理图见附录A所示。

第4章软件设计及调试

4.1设计软件

4.1.1KeilC51软件

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。

是目前最流行开发MCS-51系

列单片机的软件。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

4.1.2Proteus软件

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCE设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVRARM8086和MSP43等。

4.2程序流程图

程序采用C语言编写,相对用汇编语言编写简单易读,程序流程图也相对简单。

程序主要包括延时子程序段、左移程序段、右移程序段、两端往中间显示程序段。

设计其程序流程图如下图

所示:

4.3程序设计

拉幕式数码显示程序设计思路:

课程设计要求实现从右往左“12345678”、从左往右“87654321”、和从两端往中间“43211234”的数码显示,而7段共阴数码显示管每个时刻只显示了一位数码,要达到这种连续显示的效果,可将段码表分组,取一组段码显示一段时间后,再取下一组显示,如此循环下去,即可看到拉幕式显示效果:

0000001,00000012,00000123,00001234,00012345,00123456,01234567,12345678等。

只要数码管刷新时间够快,由于人眼视觉暂留效应,看起来就像是同时显示8位数,即看到拉幕式数码显示效果。

设计好段码表“00000001234567800000000”,将其分为16组,每次按顺序取其中的一组显示,为了防止人眼看来有闪烁效果,我将每组数码显示了10次,这样就看不到闪烁效果了。

按要求从左往右显示时,只需按顺序反向查一组段码表,即可看到拉幕式显示效果:

1000000,21000000,32100000,43210000,54321000,65432100,76543210,87654321等。

按照类似从右往左移的方法,每组数码显示了10次,就完成了从右往左移的显示设计。

综上,编写子程序段如下:

左移程序段

for(ci=4;ci>0;ci--)/*控制循环4次*/

for(i=0;i<16;i++)/*总共查16组段码*/

{for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止闪

烁*/

{for(j=0;j<8;j++)

{P2=wei[j];/*位选信号*/

P0=duan[j+i];/*段选信号*/delay(20);/*延时*/

}

右移程序段

控制循环4次*/

/*总共查16组段码*/

每组刷新10次,防止闪

for(ci=4;ci>0;ci--)/*

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

{for(cnt=10;cnt>0;cnt--)/*

烁*/

{for(j=0;j<=7;j++)

{P2=wei[j];/*位选信号*/

P0=duan[m+i];/*段选信号*/

m--;

delay(20);/*延时*/}m=7;

}

}

当从两端到中间显示时,以类似的方法,设计4组段码表,分别为“10000001”、“21000012”、“32100123”和“43211234”,同样取一组段码显示一段时间后,再取下一组显示,每组数码显示了10次,即可看到从两端到中间的拉幕式显示效果。

综上,编写子程序段如下:

for(ci=4;ci>0;ci--)/*控制循环4次*/

{

for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止

闪烁*/

{for(j=0;j<=7;j++)/*位选信号*/

{P2=wei[j];/*段选信号*/

P0=sheet1[j];/*查第一张表*/delay(15);/*延时*/

}

}

for(cnt=10;cnt>0;cnt--)

{for(j=0;j<=7;j++)

{P2=wei[j];

P0=sheet2[j];/*查第二张表*/delay(15);

}

}

for(cnt=10;cnt>0;cnt--)

{for(j=0;j<=7;j++)

{P2=wei[j];

P0=sheet3[j];/*查第三张表*/delay(15);

}

}

for(cnt=10;cnt>0;cnt--)

{for(j=0;j<=7;j++)

{P2=wei[j];

P0=sheet4[j];/*查第四张表*/delay(15);

}

}

}

第5章系统联调及操作说明

调试主要分为硬件调试和软件调试,由于没有时间做实物,硬件调试在proteus软件中完成。

程序部分是用C语言编写程序的,由于没有专门学习过用C语言来实现对单片机的控制,我又花了许多时间上网找相关资料,在程序编写过程中遇见了各种各样的问题,但都一一解决了。

在编程的过程中,尽量争取使程序简单,可读性强。

通过仿真软件ISIS对写好的程序进行仿真,在此过程中出现显示不正确、数码显示不全、扫描频率太快等难题,最后通过对程序的不断调试,实现从右到左、从左到右的“12345678'

的数字显示和从两端到中间“43211234”的显示,能够比较平滑地看到拉幕的效果。

仿真效果图如下所示:

从右到左“12345678'的数字显示效果:

左移“12345678”的数字显示

从左到右“87654321”的数字显示效果:

两端到中间“43211234”的数字显示

第6章总结

通过两个星期的单片机课程设计,我受益匪浅。

首先,在这次课程设计当中,我将《单片机原理与应用》的教材重新认真复习了一遍,由于以前没认真听过课,这个过程十分痛苦,许多知识点都看不懂,但我没有放弃,遇到不懂的知识点反复思考,仔细推敲,并结合老师的讲义,最终把教材过了一遍,为后来的单片机课程设计打下了一个良好的基础。

在此期间我还阅读了大量各种有关单片机的参考书,这使我对单片机的硬件结构更加清晰,对单片机的软件的设计有了初步的系统的了解,对其中的各种常用的指令更加熟悉,相对于课程设计以前的水平有了很大的提高。

在此次的课程设计当中,虽然最后以C语言来编写这次课程设计的程序,但在此之前我尝试用汇编语言编写程序,使我对使用汇编语言设计程序不再感到陌生,通过对程序的不断修改,我对汇编语言中的各种指令和语句的使用更加熟练,这对我步入使用汇编语言编写程序的大门做了一个很好的铺垫,以后我会更加努力学习用汇编语言来编写大型程序。

其次,在这次课程设计当中,周向红老师的悉心教导,使我对单片机的软件设计与硬件方面的知识有了很大的收获,以前只是停留在理论认识单片机的层次,通过这次课程设计我更加加深了对单片机软件与硬件方面的理解。

最后,在这次课程设计当中,锻炼了我的毅力与恒心。

此次课程设计的难点主要在于程序的编写与调试,在此之前我从未有过此方面的经验,拿到一个要求不知道从何下手。

最后跌跌撞撞的把程序写完了,但调试又遇到了大问题。

许多错误不知道是什么意思,根本不知道从何改起。

我只好定位到错误的地方,在书本上找到相关知识,或者问同学,最后把错误一一排除。

在系统联调时,又遇到了许多问题,如出现显示不正确、数码显示不全、扫描频率太快,我不断的修改程序、修改方案,最终在我的不懈努力下完成了拉幕式数码显示的课程设计,这种成功后的喜悦溢于言表,最重要的是在此期间我的意志力得到了锻炼,这应该是我这次课程设计的最大收获!

图理原统系

需LTIM

附录1系统原理图

■4

 

Q—L

Q—w—

■1

■■—二尸

L

11

1.II11

L1

丿%

1

§

 

附录2程序清单#include#defineucharunsignedchar#defineuintunsignedint/*右移与左移的段码显示*/ucharduan[]=

{0,0,0,0,0,0,0,

0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0,0,0,0,0,0,0,0};

/*两边往中间的段码显示*/ucharsheet1[8]={0x06,0,0,0,0,0,0,0x06};

ucharsheet2[8]={0x5b,0x06,0,0,0,0x06,0x5b};

ucharsheet3[8]={0x4f,0x5b,0x06,0,0,0x06,0x5b,0x4f};uchar

sheet4[8]={0x66,0x4f,0x5b,0x06,0x06,0x5b,0x4f,0x66};

uintwei[8]={0,1,2,3,4,5,6,7};

voiddelay(uintms)/*延时子程序*/{

uintt0,t1;

for(t0=ms;t0>0;t0--)for(t1=15;t1>0;t1--);

}

voidmain()

{uinti,j,k,m,cnt,ci;k=10;

m=7;while

(1){

/*左移程序段*/

for(i=0;i<16;i++)/*总共查16组段码*/

{for(cnt=10;cnt>0;cnt--)/*每组刷新10次,防止闪

烁*/

{for(j=0;j<8;j++)

{P2=wei[j];/*位选信号*/

P0=duan[j+i];/*段选信号*/delay(20);/*延时*/

}

}

}

*/*/

/*右移程序段*/

 

烁*/

{for(j=0;j<=7;j++)

{P2=wei[j];/*位选信号*/

P0=duan[m+i];/*段选信号*/m--;

delay(20);/*延时*/

}

m=7;

}

}

/*两边往中间的程序段*/

for(ci=4;ci>0;ci--)/*控制循环4次*/

{

for(cnt=10;cnt>0;cnt--)/*

每组刷新10次,防止

闪烁*/

{for(j=0;j<=7;j++)

/*位选信号*/

{P2=wei[j];

/*段选信号*/

P0=sheet1[j];/*

查第一张表*/

delay(15);/*

}

延时*/

}

for(cnt=10;cnt>0;cnt--)

{for(j=0;j<=7;j++)

{P2=wei[j];

/*查第二张表*/

P0=sheet2[j];

delay(15);

}

for(cnt=10;cnt>0;cnt--){for(j=0;j<=7;j++)

{P2=wei[j];P0=sheet3[j];delay(15);

}

}

for(cnt=10;cnt>0;cnt--){for(j=0;j<=7;j++)

{P2=wei[j];

P0=sheet4[j];

/*查第三张表*/

/*查第四张表*/

delay(15);

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1