基于STC89C52单片机的实验系统开发与设计.docx
- 文档编号:5473087
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:21
- 大小:464.04KB
基于STC89C52单片机的实验系统开发与设计.docx
《基于STC89C52单片机的实验系统开发与设计.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的实验系统开发与设计.docx(21页珍藏版)》请在冰豆网上搜索。
基于STC89C52单片机的实验系统开发与设计
洛阳理工学院
课程设计报告
课程名称单片机原理与应用
设计题目基于STC89C52单片机的实验系统开发与设计
专业计算机科学与技术
班级B120505
学号
姓名
完成日期2014年6月27日
课程设计任务书
设计题目:
基于STC89C52单片机的实验系统开发与设计
一、设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验系统,主要包括以下内容:
1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
3.在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;
4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
二、设计要求
1.完成综合实验系统的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
2.每组协作完成电路板的焊接,掌握故障排除方法,完成实验系统的硬件设计及开发;
3.结合KeiluVision4软件在焊接无误的单片机实验系统上开发出流水灯、计数器、LCD显示等程序;
4.根据分组情况,从硬件、软件方面对学生进行逐一答辩考核;
5.按照要求撰写课程设计论文。
指导教师:
舒云星、李传锋
2014年6月10日
课程设计评语
成绩:
指导教师:
_______________
年月日
基于STC89C52单片机的实验系统开发与设计
摘要
STC单片机在8位的MCS51内核单片机行列中逐渐被认可,在单片机教学实验系统中普遍应用.由于STC单片机问世时间短,大部分写录器不能支持或仅支持它的部分功能.STC单片机在出厂时已经为用户写入程序做了充分的准备,在单片机内部设计了ISP在线下载模块,使得用户可以自行设计程序下载器.但其提供的PC机程序下载软件只能通过Rs232串口下载程序,而目前一般的计算机特别是笔记本大多数没有配置RS232串行接口而只配置了USB串口.为此设计了STC单片机程序下载器,它利用F'1232BM组成串口转换器,将USB串口虚拟成RS232串121,解决了此问题。
TC89C52是S一种低功耗、高性能CMOS8位微控制器,具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
本次课程设计就是利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台。
利用STC89C52单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,在KeilC环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功。
实现流水灯的跳转显示流动,应用中断实现数码管60之内计数以及LCD显示不同字符的功能。
关键词:
STC单片机,仿真设计,实验系统,计数器,串行通信
ExperimentPlatformDevelopmentDesignBasedon
STCMicrocontroller
ABSTRACT
STCmicrocontrollergraduallybeingrecognizedintheranksofeightMCS51microcontrollercore,theteachingsystemintheSCMcommonlyused.STCmicrocontrollerhasbeenwrittenfortheuserprogramatthefactorymadefullpreparations,theinteriordesignofthemicrocontrollerISPonlinedownloadmoduleallowsuserstodesigntheirownprogramdownloader.ButitprovidesaPCdownloadsoftwareonlythroughRs232serialdownload,andinparticularcurrentgeneralnotebookcomputerisnotconfiguredformostRS232serialinterfaceandonlyequippedwithaUSBport.ForthisdesigntheSTCmicrocontrollerprogramdownloader,whichusesF'1232BMcomposedofserialconverter,USBtoRS232serialvirtualstring121,solvesthisproblem.STC89C52isalow-power,high-performanceCMOS8bitmicrocontrollerwiththefollowingstandardfeatures:
8kbytesofFlash,512bytesofRAM,32digitalI/Olines,Watchdogtimer,built-in4KBEEPROM,MAX810resetcircuit,three16-bittimer/counter,fourexternalinterrupts,a7-vectorinterruptstructure4(compatiblewithtraditional5125vectorinterruptstructure),full-duplexserialport.ThecurriculumdesignistheuseofSTCSeriesMCUmicrocontrollerdevelopmentasasoftwareandhardwarecombinationofsingle-chipexperimentplatform.
Astheuseofsingle-chipmicrocontrollerSTC89C52developasoftwareandhardwareplatformcombiningsingle-chipexperimentinKeilCenvironmentforsoftwaredesign,includingwaterlights,digitaldisplayandLCDdisplaymodule,thesimulationsuccessfullyProtuesdownloadedtosuccessfullyverifythecircuitboard.Jumptoachievewaterlightsdisplayflowachievedwithintheapplicationinterruptsthecount,and60digitalLCDdisplaydifferentcharacter
.KEYWORDS:
STCmicrocontroller,Simulationdesign,Experimentplatform,Counter,Serialcommunication
前言
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
随着电子技术的发展,单片机在电讯技术、工业控制、汽车自动化、家用电器等领域得到了广泛的应用,而单片机由于其实用性好、可靠性高、便于扩展等特点得到了广泛的应用。
为了更好的学习和应用单片机,可以将经常应用到的单片机外围电路集成到一个学习/开发板上以供使用者方便使用。
同时应提供常用的移植性较好的模块代码(本设计选用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设计目的
利用学习的知识,编写不同模块的程序。
熟悉理论知识,复习与巩固所学习的知识,并且将所学到的东西,应用到实际的操作过程当中。
1.2.2设计内容
利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:
1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;
2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;
3.在KeilC环境下,进行软件设计。
主要包括流水灯、计数器、计数器、LCD字符显示、键盘的控制等功能程序设计;
4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。
1.2.3设计要求
1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;
2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;
3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;
4.按照要求撰写课程设计论文。
1.2.4设计步骤
1.研究讨论纸质电路图,弄清楚各个元器件的用途及可以实现的功能;
2.根据电路图在开发板上进行焊接;
3.在仿真软件上绘制仿真电路图;
4.根据要实现的功能编写程序,先在仿真软件上运行,无误的话下载到单片机上查看运行效果;
5.根据课程设计的要求撰写实验报告。
第2章整体设计方案
1
2
2.1开发板整体外观
2.2
整板电路PROTUES仿真电路
2.3软件功能描述
1.Protues
Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051,HC11PIC10/12/16/18/24/30/DsPIC33,AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译.
超过27000种元器件,可方便地创建新元件;智能的器件搜索:
通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:
自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:
使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:
通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。
支持主流的CPU类型:
如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用外设模型:
如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;实时仿真:
支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。
编译及调试:
支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。
2.KeilC51uVision4
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
2.4仿真软件PROTUES中的效果图
1.流水灯模块
2.LCD显示模块
3.计数器和定时器
第3章硬件电路设计
3.1两位一体共阴数码管
2
3
3.1
3.1.1数码管概述
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段发光二极管的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
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.1.3两位一体共阴数码管和74LS373锁存器接口电路
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的字符发生器CGRA
3.2.2LCD1602液晶引脚介绍
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
3.2.3LCD1602液晶外围接口电路
3.3串口通信
3.3.1串口通讯概述
串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成,分别是地线、发送、接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通信的端口,这些参数必须匹配。
3.3.2MAX232接口电路
第4章软件设计
4.1程序整体流程图
4.2程序清单
#include"reg51.h"
unsignedcharled[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//流水灯花样
charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//LED显示字模
unsignedcharname_mod[]="wangzhen";
unsignedcharnum_mod[]="B12050510";
unsignedcharcount=0;
unsignedcharcount1=0;
sbitRS=P1^6;
sbitRW=P1^7;
sbitE=P1^5;
sbitP34=P3^4;
voiddelay(unsignedintcount)//延时1ms
{unsignedchari;
while(count--)
for(i=0;i<120;i++);
}
key()interrupt0//流水灯
{unsignedchari;
P2=0xff;
delay(500);
P2=0x00;
delay(500);
for(i=0;i<=7;i++){
P2=led[i];
delay(200);
}
P2=0xff;
delay(200);
for(i=7;i>0;i--)
{
P2=led[i];
delay(200);
}
P2=0xff;
delay(500);
P2=0x00;
delay(500);
P2=0xff;
for(i=0;i<=3;i++)
{
P2=0xE7;
delay(200);
P2=0xC3;
delay(200);
P2=0x00;
delay(200);
P2=0xff;
delay(200);
}}
unsignedcharbusy_check()//查忙函数
{unsignedcharLCD_status;
RS=0;
RW=1;
E=1;
P2=0x40;
delay
(2);
P2=0x00;
returnLCD_status;}
voidwcmd(unsignedcharcmd)//写指令
{while((busy_check()&0x80)==0x80);
RS=0;
RW=0;
E=1;
P2=0X40;
P0=cmd;
delay(5);
P2=0x00;
delay(5);
}
voidwdat(unsignedchardat)//写数据函数
{while((busy_check()&0x80)==0x80);
RS=1;
RW=0;
E=1;
P2=0x40;
delay(5);
P0=dat;
P2=0x00;
delay(5);
}
voidInit_LCD()//初始化LCD
{wcmd(0x38);//8位,2行显示,5*7点阵
delay
(1);
wcmd(0x01);//清屏
delay
(1);
wcmd(0x06);//字符不动,光标右移一位
delay
(1);
wcmd(0x0e);//开显示,有光标,字符不闪烁
delay
(1);}
voidtimer()interrupt1//计数器T0
{
P2=0x00;//判断送字模
count1++;
P0=led_mod[count1%10];//求模
P2=0x20;
P0=led_mod[count1/10];//整除
delay(1000);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 单片机 实验 系统 开发 设计