基于STC89C52单片机的实验系统开发与设计.docx

上传人:b****4 文档编号:5473087 上传时间:2022-12-16 格式:DOCX 页数:21 大小:464.04KB
下载 相关 举报
基于STC89C52单片机的实验系统开发与设计.docx_第1页
第1页 / 共21页
基于STC89C52单片机的实验系统开发与设计.docx_第2页
第2页 / 共21页
基于STC89C52单片机的实验系统开发与设计.docx_第3页
第3页 / 共21页
基于STC89C52单片机的实验系统开发与设计.docx_第4页
第4页 / 共21页
基于STC89C52单片机的实验系统开发与设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于STC89C52单片机的实验系统开发与设计.docx

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

基于STC89C52单片机的实验系统开发与设计.docx

基于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);

}

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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