基于STC89C52单片机的实验平台开发设计.docx
- 文档编号:9821926
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:30
- 大小:507.82KB
基于STC89C52单片机的实验平台开发设计.docx
《基于STC89C52单片机的实验平台开发设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的实验平台开发设计.docx(30页珍藏版)》请在冰点文库上搜索。
基于STC89C52单片机的实验平台开发设计
洛阳理工学院
课程设计报告
课程名称单片机原理与应用
设计题目基于STC89C52单片机的实验平台开发设计
专业计算机科学与技术
班级
学号
姓名
完成日期2013年6月25日
课程设计任务书
设计题目:
基于STC89C52单片机的实验平台开发设计
设计内容与要求:
一、设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:
1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
2.学习集成电路等芯片的焊接方法与技巧,实际元器件的识别、电路板焊接;
3.在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
二、设计要求
1.完成综合实验平台的电路分析,进行模块分解,掌握各部分电路的工作原理;
2.独立完成电路板的焊接,掌握故障排除方法,完成实验的硬件设计及开发;
3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;
4.按照要求撰写课程设计论文。
指导教师:
2013年5月30
课程设计评语
成绩:
指导教师:
_______________
年月日
基于STC89C52单片机的实验平台开发设计
摘要
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双共串口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
利用STC89C52单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,在KeilC环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功。
实现流水灯的跳转显示流动,应用中断实现数码管60之内计数以及LCD显示不同字符的功能。
关键词:
STC单片机,实验平台,数码管,流水灯,串口通信
DESIGNANDDEVELOPMENTPLATFORMBASEDONSTC89C52MICROCONTROLLEREXPERIMENT
ABSTRACT
TheSTC89C52isalowpower,highperformanceCMOS8producedSTC,with8KinsystemprogrammableFlashmemory.STC89C52singclassicMCS-51kernel,butmadealotofimprovementsmakethechipwithraditional51SCMfeaturesnotavailable.Inasinglechip,with8CPUdexterousandin-systemprogrammableFlash,theSTC89C52offerssolutionsforhighflexibility,superefficientformanyembeddedcontrolapplications.Hasthestandardfeatures:
8KbytesofFlash,512bytesofRAM,32I/Olines,thewatchdogtimer,built-in4KBEEPROM,MAX810resetcircuit,316timer/counter,4externalinterrupts,a7vectorlevel4interruptstructure,atotalof.InadditionSTC89C52canbereducedto0Hzstaticlogicoperation,support2softwareselectablepowersavingmode.Theidlemode,theCPUstopsworking,RAM,timer/counter,serialportinterrupt,continuetoworkpermit.Theower-downmode,theRAMcontentbeingsaved,hasbeenfrozen,disablingallotherchipfunctions,untilthenextinterruptorhardwarereset.Maximumoperatingrequencyof35MHz,6T/12Toptional.
SCMexperimentplatformbasedonSTC89C52MCUdevelopmentofasoft,combinedwithhardware,softwaredesigninKeilCenvironment,includingwaterlights,digitaltubedisplayandLCDdisplaymodule,thesimulationsuccessfullyinProtues,downloadtothecircuitboardtestsuccessful.Toachievewaterlampjumpdisplayflow,usinginterrupt60digitaltubecountingandLCDdisplaydifferentcharacterswithinthefunction.
KEYWORDS:
STCmicrocontroller,comprehensiveexperimentalboard,softwareandhardwarecombinedwith,andtheprogramdevelopmentdesign
摘要I
目录III
前言1
第1章系统概述2
1.1设计题目2
1.2系统设计目的和内容2
1.2.1设计目的2
1.2.2设计内容2
1.2.3设计要求3
1.2.4设计步骤3
第2章整体设计方案4
2.1开发板整体外观4
2.2整板电路PROTUES仿真电路4
2.3软件功能描述5
2.4仿真软件PROTUES中的效果图7
第3章硬件电路设计9
3.1两位一体共阴数码管9
3.1.1数码管概述9
3.1.2数码管内部结构9
3.1.3两位一体共阴数码管和74LS374锁存器接口电路11
3.2LCD1602液晶12
3.2.1LCD1602液晶简介12
3.2.2LCD1602液晶引脚介绍12
3.2.3LCD1602液晶外围接口电路14
3.3串口通信14
3.3.1串口通讯概述14
3.3.2MAX232接口电路15
第4章软件设计16
4.1程序整体流程图16
4.2程序清单17
第5章调试及故障分析21
5.1焊接准备阶段元器件测试、电路原理图故障分析21
5.2电路焊接过程中的故障分析21
5.3程序编写过程中的故障分析21
5.4实物演示效果22
结论24
谢辞25
参考文献26
附 录27
前言
随着电子技术的发展,单片机在电讯技术、工业控制、汽车自动化、家用电器等领域得到了广泛的应用,而单片机由于其实用性好、可靠性高、便于扩展等特点得到了广泛的应用。
为了更好的学习和应用单片机,可以将经常应用到的单片机外围电路集成到一个学习/开发板上以供使用者方便使用。
同时应提供常用的移植性较好的模块代码(本设计选用C作为源代码的编写工具)。
市场上现存的单片机开发板很多,因此,要求设计尽量能够达到资源丰富、易用性好、设计美观等特点。
而STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
本系统是基于STC89C52单片机的学习开发板,集成了单片机应用过程中常用到的硬件资源,数码管、LCD显示器、流水灯。
为学习和开发单片机产品提供平台。
第1章系统概述
1.1设计题目
基于STC89C52的实验平台开发设计
1.2系统设计目的和内容
1.2.1设计目的
利用STC89C52作为微控制器开发一套软、硬件相结合的单片机实验平台。
实现对数码管、LCD显示器、流水灯的操作,锻炼学生的设计思维和动手能力,使其具备独立完成设计的能力,也让学生更好的了解课本内容。
1.2.2设计内容
✧电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
✧学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
✧在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
✧针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
1.1.1设计要求
✧完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
✧独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;
✧结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;
✧按照要求撰写课程设计论文。
1.1.2设计步骤
✧先对原理图进行分析
✧根据图示对电路板进行焊接
✧焊接完成后,在protues上连接仿真电路图
✧再根据原理图进行编程序,并在keilC上运行,检查是否有误
✧将程序加载在仿真图上运行,截取需要的电路图
✧最后在焊接好的电路板上实验
第2章整体设计方案
1
2
2.1开发板整体外观
图2-1开发板外观图
2.2整板电路PROTUES仿真电路
图2-2仿真原理图
2.3软件功能描述
1.KeilC51
C51工具包的整体结构,如图
(1)所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
2.ISISProtues
Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译
支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。
✧提供软件调试功能。
✧提供丰富的外围接口器件及其仿真。
RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
这样很接近实际。
在训练学生时,可以选择不同的方案,这样更利于培养学生。
✧提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。
✧具有强大的原理图绘制功能
在PROTUES绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。
PROTUES是单片机课堂教学的先进助手。
PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
它具有设计灵活,结果、过程的统一的特点。
可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。
相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。
可实现KeilC与Protues连接调试。
在已经绘制出了8051驱动原理图的基础上,完整地展示一个Protues与KeilC相结合的仿真过程。
✧硬件设计
✧程序设计
✧仿真实现步骤
2.4仿真软件PROTUES中的效果图
图2-3仿真效果图1
图2-4仿真效果图2
图2-5仿真效果图3
第3章硬件电路设计
3.1两位一体共阴数码管
2
3
3.1
3.1.1数码管概述
LED数码管是由发光二极管构成的,具有显示亮度高、响应速度快的特点。
常见的是七段LED显示器为“8”字型,该显示器内部有7个条形发光二级管和一个小圆点发光二级管,共计8段,每段对应一个发光二级管。
有共阴极和共阳极两种,共阴极发光二极管的阴极连在一起,通常公共阴极接地。
当阳极为高电平时发光二级管发光。
共阳极发光二极管的阳极连在一起,通常公共阳极接正电压。
当阴极为低电平时发光二级管发光。
3.1.2数码管内部结构
led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下面将介绍常用LED数码管内部引脚图片。
图3-1LED数码管引脚定义图3-210引脚数码管实物图
8段LED数码管如图3-3所示:
图3-38段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-4共阴数码管和74LS374锁存器接口电路图
3.2LCD1602液晶
3.2.1LCD1602液晶简介
工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
其特性:
✧3.3V或5V工作电压,对比度可调
✧内含复位电路
✧提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能
✧有80字节显示数据存储器DDRAM
✧内建有192个5X7点阵的字型的字符发生器CGROM
✧8个可由用户自定义的5X7的字符发生器CGRAM
3.2.2LCD1602液晶引脚介绍
1602采用标准的16脚接口,如图3-4所示,其中:
图3-5LCD1602液晶引脚图
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
如表3-3所示:
表3-3读写操作选择
RS
R\W
寄存器及操作
0
0
指令寄存器写入
0
1
忙信号和地址计数器读出
1
0
数据寄存器写入
1
1
数据寄存器读出
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
3.2.3LCD1602液晶外围接口电路
图3-6LCD1602液晶外围接口电路
3.3串口通信
3.3.1串口通讯概述
串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。
使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
如图3-5所示:
图3-7串口通信
串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
串行通信按信息的格式可分为异步通信和同步通信两种方式;根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种,如图3-6所示。
图3-8串行通信的3种传输形式
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。
异步通信中,在异步通信中有两个比较重要的指标:
字符帧格式和波特率。
数据通常以字符或者字节为单位组成字符帧传送。
字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。
发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
3.3.2MAX232接口电路
图3-9MAX232接口电路
第4章软件设计
4.1程序整体流程图
4.2程序清单
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitsw2=P3^2;
sbitsw3=P3^3;
sbitlcdrs=P1^6;
sbitlcdrw=P1^7;
sbitA0=P2^5;
sbitA1=P2^6;
sbitA2=P2^7;
sbitE1=P1^5;
ucharcodetable[]={"welcomtocheck!
"};
ucharcodetable1[]={"B11050619"};
ucharcodetable3[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
ucharcodetable2[]={
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 单片机 实验 平台 开发 设计