单片机原理与应用课程设计论文报告.docx
- 文档编号:23192351
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:26
- 大小:476.53KB
单片机原理与应用课程设计论文报告.docx
《单片机原理与应用课程设计论文报告.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计论文报告.docx(26页珍藏版)》请在冰豆网上搜索。
单片机原理与应用课程设计论文报告
洛阳理工学院
课程设计报告
课程名称单片机原理与应用
设计题目基于STC89C52单片机的实验系统开发与设计
专业计算机科学与技术
班级Bxxxxx
学号Bxxxxx
姓名xxxx
完成日期2014年6月25日
课程设计任务书
设计题目:
基于STC89C52单片机的实验系统开发与设计
一、设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验系统,主要包括以下内容:
1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
3.在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
二、设计要求
1.完成综合实验系统的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
2.每组协作完成电路板的焊接,掌握故障排除方法,完成实验系统的硬件设计及开发;
3.结合KeiluVision4软件在焊接无误的单片机实验系统上开发出流水灯、计数器、LCD显示等程序;
4.根据分组情况,从硬件、软件方面对学生进行逐一答辩考核;
5.按照要求撰写课程设计论文。
指导教师:
舒云星、李传锋
2014年6月10日
课程设计评语
成绩:
指导教师:
_______________
年月日
基于STC89C52单片机的实验系统开发与设计
摘要
在KeilC环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功。
主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计该系统主要应用于高等学校、中等职业学校单片机技术的教学、实验、实训、综合设计和电子设计竞赛等,利用实训平台增加学生学习单片机技术的兴趣,从而提高学生单片机技术的实际应用能力。
关键词:
STC单片机,仿真设计,实验系统,计数器,串行通信
ExperimentPlatformDevelopmentDesignBasedon
STCMicrocontroller
ABSTRACT
UndertheenvironmentofKeilCsoftwaredesign,mainlyincludingthewaterlights,digitaltubedisplayandLCDdisplaymodule,successfulinProtuessimulation,validationsuccessfuldownloadedontoacircuitboard.Implementforwardandreverseflow,waterlampinterruptionisappliedtoimplementdigitaltubewithin60countandLCDdisplaysdifferentfeaturesofthecharacters.Thissystemismainlyusedininstitutionsofhigherlearningandsecondaryvocationalschoolsinglechiptechnologyteaching,experiment,practicaltraining,comprehensivedesignandelectronicdesigncontest,etc.,usingthetrainingplatformtoincreasestudents'interestinlearningmicrocontrollertechnology,soastoimprovethepracticalapplicationabilityofstudentsmicrocontrollertechnology.
KEYWORDS:
STCmicrocontroller,Simulationdesign,Experimentplatform,Counter,Serialcommunication
目录
前言1
第1章实验平台概述1
1.1设计题目1
1.2系统设计目的和内容1
1.2.1设计目的1
1.2.2设计内容1
1.2.3设计要求2
1.2.4设计步骤2
第2章整体设计方案2
2.1开发板整体外观2
2.2整板电路PROTUES仿真电路3
2.3软件功能描述3
2.4仿真软件PROTUES中的效果图5
第3章硬件电路设计6
3.1两位一体共阴数码管6
3.1.1数码管概述6
3.1.2数码管内部结构6
3.1.3两位一体共阴数码管和74LS373锁存器接口电路7
3.2LCD1602液晶7
3.2.1LCD1602液晶简介7
3.2.2LCD1602液晶引脚介绍8
3.2.3LCD1602液晶外围接口电路9
3.3串口通信9
3.3.1串口通讯概述9
3.3.2MAX232接口电路10
第4章软件设计11
4.1程序整体流程图11
4.2程序清单12
第5章调试及故障分析15
5.1焊接准备阶段元器件测试、电路原理图故障分析15
5.2电路焊接过程中的故障分析15
5.3程序编写过程中的故障分析16
5.4实物演示效果16
结论16
谢辞17
参考文献17
附 录18
前言
为了更好的学习和应用单片机,可以将经常应用到的单片机外围电路集成到一个学习/开发板上以供使用者方便使用。
同时应提供常用的移植性较好的模块代码(本设计选用C作为源代码的编写工具)。
市场上现存的单片机开发板很多,因此,要求设计尽量能够达到资源丰富、易用性好、设计美观等特点。
而STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
单片机技术又作为计算机技术中的一个独立分支,有着性价比高,集成度高,体积小,可靠性高,控制功能强大,低功耗,低电压,便于生产,便于携带等特点,所以得到越来越广泛的应用
第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先对原理图进行分析
2根据图示对电路板进行焊接
3焊接完成后,在protues上连接仿真电路图
4再根据原理图进行编程序,并在keilC上运行,检查是否有误
5将程序加载在仿真图上运行,截取需要的电路图
6最后在焊接好的电路板上实验
第2章整体设计方案
1
2
2.1开发板整体外观
2.2整板电路PROTUES仿真电路
图2-2-1
图2-2-2
2.3软件功能描述
1.Keil
KeilC51µVision3集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。
KeilC51集成开发环境的主要功能有以下几点:
●µVision3forWindows:
是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;
●C51国际际准化C交叉编译器:
从C源代码产生可重定位的目标模块;
●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原理图实现印刷电路板的设计功能。
。
2.4仿真软件PROTUES中的效果图
图2-4-1
第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两位一体共阴数码管和74LS373锁存器接口电路
图3-2两位一体共阴数码管和74LS374锁存器接口电路
3.2LCD1602液晶
3.2.1LCD1602液晶简介
1602LCD,工业字符型液晶,能够同时显示16×2即32个字符(16列2行)每行16个字符液晶模块(显示字符和数字)。
。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5×7或者5×10等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。
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-8MAX232接口电路
第4章软件设计
4.1程序整体流程图
4.2程序清单
#include
#include
unsignedcharled[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsignedcharcount=0;
unsignedcharm;
bitdir=0,run=0;
sbitP1_5=P1^5;
sbitP3_4=P3^4;
sbitRS=P1^6;
sbitRW=P1^7;
sbitP3_5=P3^5;
unsignedcharLCD_Statues;
unsignedcharxuehao[]="B12050328";
unsignedcharname[]="fanchao";
voiddelay(unsignedcharcount)
{
unsignedchari;
while(count--)
for(i=0;i<120;i++);
}
voidjishuqi()
{
ET0=1;
EA=1;
TMOD=0x01;
TH0=60;
TL0=176;
TR0=1;
P1_5=1;
while
(1)
{
m++;
P2=0x1f;
P0=table[m%10];
delay(1000);
P2=0x3f;
P0=table[m/10];
delay(1000);
if(m==100)
{
m=0;
}
}
}
int0()interrupt1
{
count++;
if(count==20)
{
count=0;
delay(100);
}
TH0=60;
TL0=176;
}
unsignedcharBusy_Check()
{
RS=0;RW=1;
P2=0x5f;
delay
(2);
LCD_Statues=P0;
delay
(2);
P2=0xff;
returnLCD_Statues;
}
voidwcmd(unsignedcharcmd)
{
while((Busy_Check()&0x80)==0x80);
RS=0;RW=0;
P2=0x5f;
delay
(2);
P0=cmd;
delay
(2);
P2=0xff;
}
voidwdat(unsignedchardat)
{
while((Busy_Check()&0x80)==0x80);
RS=1;RW=0;
P2=0x5f;
delay
(2);
P0=dat;
delay
(2);
P2=0xff;
}
voidinit()
{
wcmd(0x38);
delay
(2);
wcmd(0x01);
delay
(2);
wcmd(0x06);
delay
(2);
wcmd(0x0c);
delay
(2);
}
voidLCD()
{unsignedchari;
init();
wcmd(0x80+0x00);
for(i=0;i<9;i++)
wdat(xuehao[i]);
wcmd(0x80+0x40);
for(i=0;i<7;i++)
wdat(name[i]);
}
voidmain()
{
unsignedchari;
P0=0x00;
while
(1)
{
if(P3_4==0)
{
delay(100);
if(P3_4==0)
jishuqi();
}
if(P3_5==0)
{
delay(100);
if(P3_5==0)
{
LCD();
}
}
switch(P3&0x3c)
{
case0x34:
run=1,dir=1;break;
case0x38:
run=0,dir=0;break;
}
if(run)
if(dir)
for(i=0;i<=7;i++)
{
P2=led[i];
delay(200);
}
else
for(i=7;i>=0;i--)
{
P2=led[i];
delay(200);
}
else
P2=0xff;
}
}
第5章调试及故障分析
5.1焊接准备阶段元器件测试、电路原理图故障分析
先测试各器件是否完好,包括二极管、数码管、单片机、LED、电容等等。
然后按照所给的电路图正确焊接。
利用万用表进行逐步排查、找出电路中错误的地方、然后进行修改。
5.2电路焊接过程中的故障分析
1焊接过程中焊接不完善,导致断路,不能导通
2电容、LED正负极接反,导致灯不会亮,也影响整体电路
3芯片插槽接反,将导致整体电路不能执行功能
4焊接过程中造成短路,将导致整体电路不能执行功能
5将电阻排接反,也不能得到预期的效果
5.3程序编写过程中的故障分析
在编写完成后,不能完成预期的功能,那么就需要对其进一步的修改直到可以实现功能为止,完成后,流水灯不会亮,经过检查后,原来是设置值的时候没有设置对。
监控流水灯的设计在刚开始的时候不能正常运行,原因在于启停标志位没有设置好,改过以后就能正常显示了
5.4实物演示效果
结论
从理论和实践结合的基础上进行不断的学习向来是我们领悟力提高的最基本也是最有效的方法,在跟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 课程设计 论文 报告