单片机原理及应用设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机设计报告

编写:HUBU2015级通信工程xmx 2017年5月23日

一、设计的目的与要求

利用8*8LED点阵动态显示汉字的字样。采用STC89C52单片机作为整个控制搭电路的核心,并编制软件程序,实现汉字的显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。

1、设计一个8*8点阵LED电子显示屏。

2、要求在目测条件下LED显示屏各点亮度均匀、充足,可显示一个“大” 字。

二、总体方案设计

2.1硬件电路的总体设计

1、设计总体框图

硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和

8*8点阵显示电路。

2、工作原理

由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0 口控制行,P1 口控制列,通过软件编程,即可实现汉字的显示

3、兀器件清单

元件名称规格数量备注

STC89C52单片机一块附底座

晶振12MHZ一块

8*8点阵LED显示器一块SZ411288k

按钮开关一个四脚

极性电容10uF一支

瓷片电容51pF两个

电阻5k Q八个

电阻10k Q一个

2.2系统软件的设计

软件程序主要由开始、初始化、主程序、字库和延时子程序组成

三、系统硬件电路的具体设计

3.1时钟电路

STC89C52单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。STC89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。

内部时钟方式:禾I」用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF 左右

3.2复位电路

单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。本设计中采用按键复位电路,上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1选择10K Q左右的电阻,电容器一般选择10 ^F o

3.3显示电路的设计

本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种。设计中用到的是“列共阳,行共阴”,即“列用高电平控制,行用低电平控制”。图中

画出了 8*8点阵的二极管。每一行发光二极管的阳极接在一起,有一个引出端r , 每一列发光二极管的阴极接在一起,有一个引出端 c 。当给发光二极管阳极引出 端r1加高电平,阴极引出端cl 加低电平时,左上角的二极管被点亮因此,对于 行和列的电平进行扫描控制时,可以达到显示不同字符的目的。

□ r F 3 /ion oooooaoo 沪松陰甲滞雷丁卿

oooooooo

2 s s. 1 C D 6

4

⑴把“单片机系统”区域中的P0端口

用8芯排芯连接到“点阵模块”区域 中的“ A~H ”端口上;

(2)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域 中的“ 0~7”端口上;

为了方便于单片机连接,我们在焊接的过程中特意将 0〜7接口排列出来作 为列,将A 〜H 接口作为行,这样我们就可以直接将 AT89C52单片机的P0 口与 0~7接口一次连接,将AT89C52单片机的P1 口与A~H 接口一次连接。要使LED 发亮即使给予数字端高电平,字母端给予低电平,就能使二极管发亮。

四、系统软件的具体设计

000 0 0 000

000 00 000

000 00 000

000 00 000

000 0 0 000

000 0 0 000

000 00 000

000 0 0 000

11)L

a r

®

)

to L KJ

I)

F 齐

■S'l Z r±

tllh

¥L (Q ? ys[£l

T L 3M1

w(3i

T L 5(Z1

.■J

HIH JM

*

B 务

■. -H

* R

K

■>v

Mb E

4.1显示函数

while(1)

{

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

{

P仁DZ88lie[i]; 〃列选高电平有效P0=DZ88hang[i]; //行选低电平有效}

}

4.2 “大”字取模

char code DZ88lie[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};

char code DZ88ha ng[]={0x77,0xB7,0xD7,0xE0,0xE0,0xD7,0xB7,0x77,};

4.3延时程序

延时程序在单片机编程中使用非常广泛,也很重要,在本次设计的程序中用到了延时子程序。延时子程序如下:

void delay_ms(i nt z)

{

char x,y;

for(x=z;z>0;z__)

for(y=110;y>0;y--);

}

4.4主程序

void mai n()

{

while(1)

{

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

{

P1=DZ88lie[i]; 〃列选高电平有效

相关文档
最新文档