单片机课程设计论文.docx
《单片机课程设计论文.docx》由会员分享,可在线阅读,更多相关《单片机课程设计论文.docx(51页珍藏版)》请在冰点文库上搜索。
单片机课程设计论文
洛阳理工学院
课程设计报告
课程名称单片机原理与应用
设计题目基于STC89C52单片机的实验平台开发设计
专业计算机科学与技术
班级B110503
学号B********
姓名郭鹏鸽
完成日期2013年6月20日
课程设计任务书
设计题目:
基于STC89C52单片机的实验平台开发设计
设计内容与要求:
一、设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:
1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
3.在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
二、设计要求
1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;
3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;
4.按照要求撰写课程设计论文。
指导教师:
舒云星、李传锋
2013年5月30日
课程设计评语
成绩:
指导教师:
_______________
年月日
基于STC89C52单片机的实验平台开发设计
摘要
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
单片机即单片微型计算机。
(Single-ChipMicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于工业自动化上和智能产品。
本次基于51系列单片机实验平台开发课程设计,是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。
掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
实验主要包括,以STC89C52RC单片机作为核心板,实现电路原理图设计,LCD显示模块、串口通信模块、数码管显示模块、LED流水灯、按键操作等电路的设计、焊接与仿真。
编程软件采用keil4及proteus7.8仿真软件进行仿真。
关键词:
STC单片机,实验平台,数码管,流水灯,串口通信
BasedontheSTC89C52single-chipmicrocomputerexperimentalplatformdevelopmentanddesign
ABSTRACT
Inrecentyears,withtherapiddevelopmentofelectronictechnologyandmicrocomputer,increasingthegradeofthesinglechip,itsapplicationfieldhasbeenexpanded,hasbeenintheindustrialcontrol,advancedscience,intelligentinstrumentsandmeters,dailyhouseholdappliances,automobileelectronicsystems,officeautomationequipment,informationterminal,andhasbeenwidelyusedincommunicationsproducts,becomethemostimportantintelligentmodernelectronicsystematthecoreoftheparts.
SCMthesinglechipmicrocomputer.(Single-ChipMicrocomputer),isasetofCPU,RAM,ROM,timing,countandvariousinterface,whichintegratesthemicrocontroller.Ithassmallvolume,lowcost,thefunctionisstrong,widelyusedinindustrialautomationandintelligentproducts.
Basedonthe51seriessingle-chipmicrocomputerexperimentalplatformdevelopmentcurriculumdesign,isbasedonsingle-chipcomputercourses,wehavestudiedacourseaccordingtotheoutlinerequirementsforourinspection,istheneedfortrainingcoursetasks,alsomastermicrocontrollerapplicationhasagreathelptous.Mastermicrocontrollertechnologyisaindispensabletechnology,forourfutureworkandlifeandlearningareverycloselylinked.Experimentsmainlyinclude,withSTC89C52RCsingle-chipmicrocomputerasthecoreboard,realizethecircuitprinciplediagramdesign,LCDdisplaymodule,serialcommunicationmodule,digitaltubedisplaymodule,LEDrunninglights,buttonsoperationsuchascircuitdesign,weldingandsimulation.Programmingsoftwareadoptskeil4and7.8simulationsoftwaresimulationproteus.
KEYWORDS:
STCmicrocontroller,comprehensiveexperimentalboard,softwareandhardwarecombinedwith,andtheprogramdevelopmentdesign
前言
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),单片机芯片常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
Intel的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。
其中最成功的是Intel的8031,此后在8031上发展出了MCS51系列单片机系统。
因为简单可靠而性能不错获得了很大的好评。
尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。
在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。
事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
第1章系统概述
1.1设计题目
基于51系列单片机的实验平台开发设计
1.2系统设计目的和内容
1.2.1设计目的
通过本次课程设计,学生学会通过进行查阅资料、方案设计、焊接,提高学生的查阅、动手能力、独立设计能力、分析问题并解决问题等。
增加学生对单片机的兴趣。
1.2.2设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:
电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
1.2.3设计要求
1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;
3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;
4.按照要求撰写课程设计论文。
1.2.4设计步骤
(1)首先预习老师邮箱所发的电路设计原理图,了解各个模块的具体功能,掌握各种元器件的识别方法、封装和功能。
(2)然后进行实物焊接,李老师将各种元器件已经提前发给了大家,告知了一些注意事项后,就是在李老师和舒主任的指导下,开始进行焊接,电路板是已经设计好的PCB板,只需照着将各元器件插入焊牢固即可。
(3)焊接好后,用万用表对焊好的电路板进行测量,检测电路是否有短路或虚焊,并且通过舒主任的检查。
(4)最后就是程序设计,要根据电路,进行程序设计,用模块化编程将会更加方便、清晰、可读。
(5)下载验证,将编写好的程序生产的hex文件下载到proteus仿真电路进行验证,能正常实现功能后再将文件下载到开发板中进行仿真测试。
(6)答辩,各组的同学要带上本组焊接的电路板,到老师的办公室进行答辩,大家要根据自己设计的程序回答老师提出的问题,并当场在电路板上进行验证。
(7)书写课程设计报告,总结本次课程设计的收获与以及问题,从中吸取经验,为以后的学习强化自己基础理论知识以及实践能力。
第2章整体设计方案
1
2
2.1开发板整体外观
图2-1开发板整体外观
2.2整板电路PROTUES仿真电路
图2-2仿真电路图
2.3软件功能描述
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和MPLAB等多种编译
2.4仿真软件PROTUES中的效果图
1.流水灯模块:
图2-3流水灯(一个亮)
图2-4流水灯(一个亮)
图2-5流水灯(两个亮)
2.
秒表计时模块:
图2-60~99秒自动计时
图2-7
0~99秒自动计时
3.
液晶电子时钟显示模块:
图2-8液晶电子时钟显示
图2-9液晶电子时钟显示
4.
按键计数显示模块:
图2-10按键计数显示
图2-11按键计数显示
第3章硬件电路设计
3.1两位一体共阴数码管
2
3
3.1
3.1.1数码管概述
LED(LightEmittingDiode)数码管是由发光二极管构成的。
常见的LED数码管为“8”字型的,共计8段。
每一段对应一个发光二极管。
有共阳极和共阴极两种,如图8-1所示。
共阴极发光二极管的阴极连在一起,通常公共阴极接地。
当阳极为高电平时,发光二极管发光。
同样,共阳极发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管发光,显示相应的段。
LED数码管中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。
通过七个发光二极管亮暗的不同组合,可以显示各种数字。
图3-1共阴极数码管结构图
3.1.2数码管内部结构
如图1-12为共阴极数码管结构图,下表1-1为其显示字模。
表3-1共阴极数码管字模
显示
0
1
2
3
4
5
6
7
8
9
字模
0x3f
0x06
0x5b
0x4f
0x66
0x6d
0x7d
0x07
0x7f
0x6f
图3-2数码管内部结构
3.1.3两位一体共阴数码管和74LS374锁存器接口电路
图3-3数码管与锁存器接口
3.2LCD1602液晶
图3-41602液晶模块图
3.2.1LCD1602液晶简介
LCD1602是工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)
3.2.2LCD1602液晶引脚介绍
图3-51602液晶模块
显示容量:
16×2个字符;工作电流2.0mA(5.0V);字符尺寸:
2.95×4.35mm。
RT-1602C采用标准的16脚接口,各引脚情况如下:
第1脚:
VSS为电源地;
第2脚:
VDD为+5V电源;
第3脚:
VL为液晶显示对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时,会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择命令寄存器。
[RS:
RegisterSelection]
第5脚:
,读写操作选择(1-读,0-写)。
表3-2
操作功能表
RS
寄存器及操作
0
0
指令寄存器写入
0
1
忙信号和地
址计数器读出
1
0
数据寄存器写入
1
1
数据寄存器读出
第6脚:
E端为使能端,当E端由高电平跳变成低电平时(负跳变),液晶模块执行命令。
第7~14脚:
D0~D7,为8位双向数据总线,与单片机的数据总线相连,三态。
第15脚:
BLA,背光电源,通常为+5V,并联一个电位器,调节背光亮度。
第16脚:
BLK,背光电源地。
3.2.3LCD1602液晶外围接口电路
图3-6液晶外围电路
3.3串口通信
3.3.1串口通讯概述
串行通信是一种能把二进制数据按位(逐位)进行传送的一种通信方式。
计算机与外界的通信有两种基本方式:
并行通信和串行通信。
表3-3串并行口对比
并行数据传送
串行数据传送
原理
各位数据同时传送
数据按位顺序传送
优点
传送速度快、效率高
最少需要一对传输线即可完成:
成本低
缺点
数据位数→传输线根数:
成本高
速度慢,成本低
应用
传送距离<30米,用于近距离或内部
几米~几千公里,用于计算机与外设之间
串行通信按信息的格式又可分为异步通信和同步通信两种方式。
在异步通信中,每一个字符要用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地发送和接收。
串行异步通信方式的特点是:
数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平“1”。
传送一个字符又称为一帧信息,传送一帧信息时,每一个字符前加一个低电平的起始位,然后是数据位,数据位可以是5~8位,低位在前,高位在后,数据位后可以带(也可以不带)一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是1位、1位半或2位(通常采用1位)。
串行口工作方式分为以下四种:
方式0:
移位寄存器方式;
方式1:
8位数据异步通讯方式;
方式2和方式3都是11为异步收发。
3.3.2MAX232接口电路
图3-7232串口接口电路
第4章软件设计
4.1程序整体流程图
图4-1程序流程图
4.2程序清单
实验程序采用模块化编程方式编程:
1.流水灯模块:
LED.c
#include
#include
#include"LED.H"
#include"delay.h"
voidLED()
{
chara,i;
a=0xfe;
while
(1)
{
for(i=0;i<8;i++)
{
P2=a;
delay(400);
a=_crol_(a,1);//循环左移
}
P2=0x6f;
delay(400);
P2=0xb7;
delay(400);
P2=0xdb;
delay(400);
P2=0xed;
delay(400);
P2=0xf6;
delay(400);
P2=a;//重新赋值
}
}
LED.H
#ifndef_LED_H_
#define_LED_H_
externvoidLED();
#endif
2.数码管模块:
SMG.c
#include
#include"delay.h"
#include"smg.h"
sbitE1=P1^5;
charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极断码值0~9(注意此处后加分号)//注意不能用相同变量,以防重复定义
charshi_bit,ge_bit;
voiddisplay()//显示函数
{
P1=0xff;
P0=0xff;
TMOD=0x01;//定时器工作方式,定时器0工作方式1最大计数65536=2^16
TH0=(65536-50000)/256;//定时50ms
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;
TR0=1;//定时器运行控制位
while
(1)
{
E1=1;
P2=0x1f;
P0=table[ge_bit];
delay(5);
E1=1;
P2=0x3f;
P0=table[shi_bit];
delay(5);
}
}
SMG.H
#ifndef_SMG_H_
#define_SMG_H_
externcharshi_bit,ge_bit;//注意extern的应用
externvoiddisplay();
#endif
3.液晶模块:
LCD.c
#include
#include"lcd.h"
#include"delay.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitlcdrs=P1^6;
sbitlcdrw=P1^7;
sbitE1=P1^5;
charcodetable2[]="2013-06-10PM";
charcodetable3[]="12:
00:
00";
voidwrite_com(charcom)
{
lcdrs=0;
lcdrw=0;
E1=0;
P0=com;
delay(5);
E1=1;
P2=0x5f;//Y2=0,即LCD_EN=1
delay(5);
E1=0;
}
voidwrite_data(chardate)
{
lcdrs=1;
lcdrw=0;
E1=0;
P0=date;
delay(5);
E1=1;
P2=0x5f;//Y2=0,即LCD_EN=1
delay(5);
E1=0;
}
voidinit()
{
E1=0;
write_com(0x38);//显示模式设置
write_com(0x0c);//设置开显示,不显示光标
write_com(0x06);//写一个字符后地址指针加1
write_com(0x01);//显示清0,数据指针清0
TMOD=0x01;//定时器工作方式,定时器0工作方式1最大计数65536=2^16
TH0=(65536-50000)/256;//定时50ms
TL0=(65536-50000)%256;
EA=1;//开总中断
ET