基于51系列单片机的实验平台开发设计.docx

上传人:b****7 文档编号:11473845 上传时间:2023-03-01 格式:DOCX 页数:25 大小:1.39MB
下载 相关 举报
基于51系列单片机的实验平台开发设计.docx_第1页
第1页 / 共25页
基于51系列单片机的实验平台开发设计.docx_第2页
第2页 / 共25页
基于51系列单片机的实验平台开发设计.docx_第3页
第3页 / 共25页
基于51系列单片机的实验平台开发设计.docx_第4页
第4页 / 共25页
基于51系列单片机的实验平台开发设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于51系列单片机的实验平台开发设计.docx

《基于51系列单片机的实验平台开发设计.docx》由会员分享,可在线阅读,更多相关《基于51系列单片机的实验平台开发设计.docx(25页珍藏版)》请在冰豆网上搜索。

基于51系列单片机的实验平台开发设计.docx

基于51系列单片机的实验平台开发设计

摘要

由于单片机技术在各个领域正得到越来越广泛的应用,许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MOS.51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了市场,成为国内单片机应用领域中的主流。

目前,可用于MOS.51系列单片机开发的产品越来越多,与其配套的各类开发系统、各种软件也日趋完善,因此可以极方便地利用现有资源,开发出用于不同目的的各类应用系统。

利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,在KeilC环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功。

实现流水灯正反向流动,应用中断实现数码管60之内计数以及LCD显示不同字符的功能。

关键词:

STC单片机,实验平台,数码管,流水灯

 

51seriesmicrocontrollercomprehensiveexperimentalboarddevelopmentdesign

ABSTRACT

Duetothesingle-chipmicrocomputertechnologyinvariousfieldshasbeenmoreandmorewidelyused,manyintegratedcircuitmanufacturershaveintroducedvarioustypesofSCM,themicrocontrollerfamilymanymembers,MOS.51seriesmicrocontrollerwithitssuperiorperformance,maturetechnologyandhighreliabilityandhighperformanceprice,quicklyoccupiedthemarket,becomethemainstreaminthefieldofSCM.Atpresent,canbeusedforMOS.51seriesmicrocontrollerproductsismoreandmore,anditssupportingallkindsofdevelopmentsystem,allkindsofsoftwarehasbecomemoreandmoreperfect,soitcanbeveryconvenienttouseofthepresentresources,developedfordifferentpurposeofallkindsofapplicationsystem.

UsingSTCseriessinglechipmicrocomputerasmicrocontrollerdevelopasetofsoftwareandhardwarecombinationofSCMexperimentplatform,intheKeilCundertheenvironmentofsoftwaredesign,includingthewaterlamp,digitaltubedisplayandLCDdisplaymodule,inProtuessimulationinsuccess,downloadtocircuitboardverifysuccess.Realizationofflowingwaterlightforwardandreverseflow,applicationofinterrupttorealizedigitaltubewithinsixtycounterandLCDdisplaythefunctionofdifferentcharacter.

 

KEYWORDS:

STCmicrocontroller,comprehensiveexperimentalboard,softwareandhardwarecombinedwith,andtheprogramdevelopmentdesign

 

前言

1946年第一台电子计算机诞生至今,依靠微电子技术和半导体技术的进步,从电子管——晶体管——集成电路——大规模集成电路,使得计算机体积更小,功能更强。

特别是近20年时间里,计算机技术获得飞速的发展,计算机在工农业,科研,教育,国防和航空航天领域获得了广泛的应用,计算机技术已经是一个国家现代科技水平的重要标志。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

单片机应用的意义不仅在于它的广阔范围及所带来的经济效益,更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。

这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。

随着单片机应用的推广,微控制技术将不断发展完善。

 

第1章系统概述

 

1.1设计题目

基于51系列单片机的实验平台开发设计

1.2系统设计目的和内容

1.2.1设计目的

利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台。

锻炼学生的设计思维和动手能力,使其具备独立完成设计的能力。

1.2.2设计内容

1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;

2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;

3.在KeilC环境下,进行软件设计。

主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;

4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。

1.2.3设计要求

1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;

2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;

3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;

4.按照要求撰写课程设计论文。

1.2.4设计步骤

1.完成每一个模块的C51程序,包括数码管显示模块,LCD模块,流水灯模块;并在仿真软件中运行仿真;

2.按照电路原理图完成电路板的焊接;

3.下载验证

 

第2章整体设计方案

1

2

2.1开发板整体外观

图2-1开发板整体外观

2.2整板电路PROTUES仿真电路

 

图2-2Protues仿真电路

2.3软件功能描述

1.Keil

KeilC51µVision2集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。

KeilC51集成开发环境的主要功能有以下几点:

●µVision2forWindows:

是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;

●C51国际际准化C交叉编译器:

从C源代码产生可重定位的目标模块;

●A51宏汇编器:

从80C51汇编源代码产生可重定位的目标模块;

●BL51链接器/定位器:

组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;

●LIB51库管理器:

从目标模块生成连接器可以使用的库文件;OH51目标文件至HEX格式的转换器,从绝对目标模块生成IntelHex文件;

●RTX-51实时操作系统:

简化了复杂的实时应用软件项目的设计。

这个工具套件是为专业软件开发人员设计的,但任何层次的编程人员都可以使用,并获得80C51单片机的绝大部分应用。

2.ISISProtues

ProtuesISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

该软件可以对模拟电路、数字电路、模数混合电路、单片机及外围电路进行绘制、分析、仿真,并提供了简便易用的印刷电路板设计工具。

Protues软件有如下几个特点:

●强大的原理绘图功能。

●支持主流单片机系统的仿真。

目前支持的单片机类型有:

68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

●提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点的等调试功能,同时在仿真系统中也加入了观察各个变量、寄存器等的当前状态的功能;它还支持第三方的软件编译和调试环境,如KeilC51Vision2等软件。

●丰富的元器件库。

提供30多个元器件库,数千种元器件。

包括:

电阻、电容、二极管、三极管、MOS管、变压器、继电器、各种激励、各种微控制器、各种门电路和终端等。

●软件包中提供各种仪表。

包括:

交直流电压表、交直流电流表、逻辑分析仪、定时\计数器和信号发生器等,它们通过图形显示功能,将线路中的变化的信号以图形方式实时显示出来。

Protues中主要包括ISIS和ARES两个基本模块,其中ISIS集单片机电路图绘制、汇编语言编程、调试和仿真运行等功能于一体;ARES模块则可根据ISIS原理图实现印刷电路板的设计功能。

总之,在Protues中,从原理图设计、单片机编程、系统仿真到PCB设计可以一气呵成,具有从概念到产品的完整设计能力。

2.4仿真软件PROTUES中的效果图

图2-3Protues仿真效果图

第3章硬件电路设计

3.1两位一体共阴数码管

2

3

3.1

3.1.1数码管概述

LED数码管是由发光二极管构成的,具有显示亮度高、响应速度快的特点。

常见的是七段LED显示器为“8”字型,该显示器内部有7个条形发光二级管和一个小圆点发光二级管,共计8段,每段对应一个发光二级管。

有共阴极和共阳极两种,共阴极发光二极管的阴极连在一起,通常公共阴极接地。

当阳极为高电平时发光二级管发光。

共阳极发光二极管的阳极连在一起,通常公共阳极接正电压。

当阴极为低电平时发光二级管发光。

3.1.2数码管内部结构

8段LED数码管如图3-1所示:

图3-18段LED数码管结构及外形

LED数码管通过7个发光二极管亮暗的不同组合可以显示各种数字,另外一个圆的型发光二级管(图3-1(a)中以dp显示)显示小数点。

只要为LED数码管提供了段码就可以显示不同的符号和数字。

LED数码管共计8段。

正好是一个字节。

习惯上是以“a”段对应段码字节的最低位。

各段与字节中各位对应关系如表3-1所示。

表3-1段码与字节中各位对应关系

代码位

D7

D6

D5

D4

D3

D2

D1

D0

显示段

dp

g

f

e

d

c

b

a

按照表3-1中的格式,显示各种字符的8段LED数码管的段码如表3-2所示(以共阴极为例)。

表3-28段LED数码管段码

显示字符

段符号

十六进制代码

dp

g

f

e

d

c

b

a

共阴极

共阳极

0

0

0

1

1

1

1

1

1

3FH

C0H

1

0

0

0

0

0

1

1

0

06H

F9H

2

0

1

0

1

1

0

1

1

5BH

A4H

3

0

1

0

0

1

1

1

1

4FH

B0H

4

0

1

1

0

0

1

1

0

66H

99H

5

0

1

1

0

1

1

0

1

6DH

92H

6

0

1

1

1

1

1

0

1

7DH

82H

7

0

0

0

0

0

1

1

1

07H

F8H

8

0

1

1

1

1

1

1

1

7FH

80H

9

0

1

1

0

1

1

1

1

6FH

90H

3.1.3两位一体共阴数码管和74LS374锁存器接口电路

图3-2两位一体共阴数码管和74LS374锁存器接口电路

3.2LCD1602液晶

3.2.1LCD1602液晶简介

1.1602LCD,工业字符型液晶,能够同时显示16×2即32个字符(16列2行)每行16个字符液晶模块(显示字符和数字)。

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5×7或者5×10等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。

2.液晶显示模块RT-C1602C的内部结构可以分成三部分:

一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图3-1所示:

 

图3-1RT-C1602内部结构

3.HD44780控制器的特点

HD44780是集控制器、驱动器于一体,专用于字符显示控制驱动集成电路。

可选择5×7或5×10点字符。

HD44780不仅作为控制器而且还具有驱动40×16点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。

HD44780可控制的字符高达每行80个字,也就是5×80=400点,HD44780内部有16路行驱动器和40路列驱动器,所以HD44780本身就具驱动有16×40点阵LCD的能力(即单行16个字符或两行8个字符)。

如果在外部加一HD44100外扩展多40路/列驱动,则可驱动16×2LCD。

HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM全部集成在芯片内。

HD44780有80个字节的显示缓冲区,分两行,地址为:

第一行为00H~27H;(0~39→40个)

第二行为40H~67H。

(64~103→40个)

HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。

具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。

HD44780内部的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形包括阿拉伯数字、英文字母的大小写、常用的符号和日文假名等。

4.HD44100是作为扩展显示字符位。

3.2.2LCD1602液晶引脚介绍

图3-3RT-1602外观

图3-4RT-1602引脚

显示容量:

16个×2排字符;工作电流2.0mA(5.0V);字符尺寸:

2.95×4.35mm。

RT-1602C采用标准的16脚接口,各引脚情况如下:

第1脚:

VSS为电源地;

第2脚:

VDD为+5V电源;第3脚:

VEE为液晶显示对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时,会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择命令寄存器。

[RS:

RegisterSelection]

第5脚:

R\W,读写操作选择(1-读,0-写)。

如表3-1所示:

表3-3读写操作选择

RS

R\W

寄存器及操作

0

0

指令寄存器写入

0

1

忙信号和地址计数器读出

1

0

数据寄存器写入

1

1

数据寄存器读出

第6脚:

E端为使能端,当E端由高电平跳变成低电平时(负跳变),液晶模块执行命令。

执行一条命令,都要使E有一个负跳变。

第7~14脚:

D0~D7,为8位双向数据总线,与单片机的数据总线相连,三态。

第15脚:

BLA,背光电源,通常为+5V,并联一个电位器,调节背光亮度。

第16脚:

BLK,背光电源地。

 

3.2.3LCD1602液晶外围接口电路

图3-5LCD1602液晶外围接口电路

3.3串口通信

3.3.1串口通讯概述

单片机构成的控制系统,由于设计需求,往往需要和外部的微处理器进行数据交流,实现两个或多个处理器之间的数据通信。

常用的数据通信包括两种形式:

并行通信和串行通信。

分别如图3-1(a)和图3-1(b)所示。

 

 

 

(a)(b)

图3-6并行通信与串行通信

1.串行通信与并行通信的优缺点对比,如表3-1所示。

表3-4串并行通信对比

并行数据传送

串行数据传送

原理

各位数据同时传送

数据按位顺序传送

优点

传送速度快、效率高

最少需要一对传输线即可完成:

成本低

缺点

数据位数→传输线根数:

成本高

速度慢,成本低

应用

传送距离<30米,用于近距离或内部

几米~几千公里,用于计算机与外设之间

2.串行通信按信息的格式可分为异步通信和同步通信两种方式;根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种,如图3-2所示。

图3-7串行通信的3种传输形式

 

3.3.2MAX232接口电路

MAX232接口电路如图3-3所示。

图3-8MAX232接口电路

第4章软件设计

 

4.1程序整体流程图

4.2程序清单

#include

unsignedcharled[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsignedcharled_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbitP15=P1^5;

sbitRS=P1^6;

sbitRW=P1^7;

bitrun=0;

bitdir=0;

unsignedcharLCD_Status;

voiddelay(unsignedintcount)

{unsignedchari;

while(count--)

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

}

unsignedcharBusy_Check()//检查忙函数

{RS=0;

RW=1;//RS=0,RW=1,忙信号地址读出

P2=0x40;//E=1;//E端由高电平跳变成低电平时,液晶模块执行命令

delay

(2);

LCD_Status=P0;//读出的值写入单片机

delay

(2);

P2=0x00;//E=0;

returnLCD_Status;

}

voidwcmd(unsignedcharcmd)//写命令函数,RS=0;RW=0

{while((Busy_Check()&0x80)==0x80);//写命令前,先检查设备是否忙?

//忙信号标志位在最高位,为1时表示忙,程序不往下执行

RS=0;

RW=0;//写控制字

P2=0x40;//E=1;//E设置为高电平

P0=cmd;//命令由P0口送入LCD

delay

(2);

P2=0x00;//E=0;//E由高电平到低电平跳变,液晶模块执行命令

}

voidwdat(unsignedchardat)//写数据函数,RS=1;RW=0

{

while((Busy_Check()&0x80)==0x80);//写数据前,检查是否忙,同上

RS=1;

RW=0;

P2=0x40;//E=1;//E由高电平到低电平跳变,液晶模块执行命令

P0=dat;//数据由P1口送入LCD

delay

(2);//延时大约2ms

P2=0x00;//E=0;

}

voidinit()//初始化函数,主要写命令

{wcmd(0x38);//38H=00111000,使用8位,显示两行;用5×7的字型【命令6】

delay(20);//改为0x3C=00111100,就用5×10字型

wcmd(0x01);//01H=00000001,清屏【命令1】

delay(20);

wcmd(0x06);//06H=00000110,字符不动,光标自动右移一格【命令3】

delay(20);

wcmd(0x0e);//0eH=00001110,开显示,有光标,字符不闪烁【命令4】

delay(20);

}

voidkey1(void)interrupt0

{

run=1;

dir=0;

wcmd(0x80+0x44);

wdat('h');

wdat('e');

wdat('l');

wdat('l');

wdat('o');

}

voidkey2(void)interrupt2

{unsignedintk;

unsignedintj;

while(k<6)

{P2=0x3f;

P0=led_code[k];

k++;

for(j=0;j<10;j++)

{P2=0x1f;

P0=led_code[j];

delay(200);}

}k=0;j=0;

}

voidmain(void)

{signedchari;

IT0=1;IT1=1;

EX0=1;EX1=1;

EA=1;

P15=1;

Busy_Check();

wcmd();

wdat();

init();//0x80,见命令8(显示缓冲区DDRAM地址设置命令格式)

wcmd(0x80+0x00);//写入显示缓冲区起始地址为第1行第1列

wdat('W');

wdat('E');

wdat('L');

wdat('C');

wdat('O');

wdat('M');

wdat('E');

while

(1)

{switch(P3&0x3c)

{case0x2c:

run=1,dir=1;break;

case0x1c:

run=0,dir=0;break;

}

if(run==1)

if(dir==1)

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

{P2=led[i];

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

当前位置:首页 > 经管营销

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

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