基于STC89C52单片机地实验系统开发与设计_第1页
基于STC89C52单片机地实验系统开发与设计_第2页
基于STC89C52单片机地实验系统开发与设计_第3页
基于STC89C52单片机地实验系统开发与设计_第4页
基于STC89C52单片机地实验系统开发与设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

洛阳理工学院课程设计报告课程名称单片机原理与应用设计题目基于STC89C52单片机的实验系统开发与设计专业计算机科学与技术班级B120505学号姓名完成日期2014年6月27日

课程设计任务书设计题目:基于STC89C52单片机的实验系统开发与设计一、设计内容利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验系统,主要包括以下内容:电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;在KeilC环境下,进行软件设计。主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。二、设计要求完成综合实验系统的电路结构分析,进行模块分解,掌握各部分电路的工作原理;每组协作完成电路板的焊接,掌握故障排除方法,完成实验系统的硬件设计及开发;结合KeiluVision4软件在焊接无误的单片机实验系统上开发出流水灯、计数器、LCD显示等程序;根据分组情况,从硬件、软件方面对学生进行逐一答辩考核;按照要求撰写课程设计论文。指导教师:舒云星、李传锋2014年课程设计评语成绩:指导教师:_______________年月日PAGEIII基于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单片机,仿真设计,实验系统,计数器,串行通信ExperimentPlatformDevelopmentDesignBasedonSTCMicrocontrollerABSTRACTSTCmicrocontrollergraduallybeingrecognizedintheranksofeightMCS51microcontrollercore,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目录TOC\o"1-3"\h\u前言 1第1章 实验平台概述 21.1 设计题目 21.2 系统设计目的和内容 21.2.1 设计目的 21.2.2 设计内容 21.2.3 设计要求 21.2.4 设计步骤 2第2章 整体设计方案 32.1 开发板整体外观 32.2 整板电路PROTUES仿真电路 32.3 软件功能描述 32.4 仿真软件PROTUES中的效果图 3第3章 硬件电路设计 43.1两位一体共阴数码管 43.1.1 数码管概述 43.1.2 数码管内部结构 43.1.3 两位一体共阴数码管和74LS373锁存器接口电路 43.2 LCD1602液晶 43.2.1 LCD1602液晶简介 43.2.2 LCD1602液晶引脚介绍 43.2.3 LCD1602液晶外围接口电路 43.3串口通信 43.3.1 串口通讯概述 43.3.2 MAX232接口电路 4第4章 软件设计 54.1程序整体流程图 54.2程序清单 5第5章 调试及故障分析 65.1焊接准备阶段元器件测试、电路原理图故障分析 65.2电路焊接过程中的故障分析 65.3程序编写过程中的故障分析 65.4实物演示效果 6结论 7谢辞 8参考文献 9附录 10PAGE18前言单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器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显示器、流水灯。为学习和开发单片机产品提供平台。实验系统概述设计题目基于STC89C52单片机的实验系统开发与设计系统设计目的和内容设计目的利用学习的知识,编写不同模块的程序。熟悉理论知识,复习与巩固所学习的知识,并且将所学到的东西,应用到实际的操作过程当中。设计内容利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:1.电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;2.学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;3.在KeilC环境下,进行软件设计。主要包括流水灯、计数器、计数器、LCD字符显示、键盘的控制等功能程序设计;4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。设计要求1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;3.结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;4.按照要求撰写课程设计论文。设计步骤1.研究讨论纸质电路图,弄清楚各个元器件的用途及可以实现的功能;2.根据电路图在开发板上进行焊接;3.在仿真软件上绘制仿真电路图;4.根据要实现的功能编写程序,先在仿真软件上运行,无误的话下载到单片机上查看运行效果;5.根据课程设计的要求撰写实验报告。整体设计方案开发板整体外观整板电路PROTUES仿真电路软件功能描述1.ProtuesProtues软件是英国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.KeilC51uVision4KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。仿真软件PROTUES中的效果图流水灯模块2.LCD显示模块3.计数器和定时器硬件电路设计3.1两位一体共阴数码管数码管概述数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段发光二极管的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。数码管内部结构led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片。两位一体共阴数码管和74LS373锁存器接口电路LCD1602液晶LCD1602液晶简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。其特性:3.3V或5V工作电压,对比度可调内含复位电路提供控制命令如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRALCD1602液晶引脚介绍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脚背光负极。LCD1602液晶外围接口电路3.3串口通信串口通讯概述串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。MAX232接口电路软件设计主函数4.1程序整体流程图主函数定时器T0中断1中断0LED个位流水灯花样1LED个位调用写指令送字模延时LED十位调用写数据函数LED十位送字模计数count加1延时1s定时器T1定时器T0中断1中断0LED个位流水灯花样1LED个位调用写指令送字模延时LED十位调用写数据函数LED十位送字模计数count加1延时1s定时器T1LCD初始化LCD初始化送字模送字模依次亮灯依次亮灯送字模送字模送字模送字模延时定时count1加1延时定时count1加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);}voidint1()interrupt2 //LCD显示,外中断1{unsignedcharj; Init_LCD(); wcmd(0x80+0x00);//从第一行第一列开始 for(j=0;j<9;j++) {wdat(num_mod[j]);} wcmd(0x80+0x43);//从第二行第七列开始 for(j=0;j<9;j++) {wdat(name_mod[j]);}}voidcounter()interrupt3 //定时器T1{P2=0x00;count++;if(count==61)count=0;P0=led_mod[count%10]; P2=0x20; P0=led_mod[count/10];}voidmain(){unsignedcharmod[]="Welcometotest";unsignedcharmod1[]="kaifaban";unsignedchari;P2=0x00;Init_LCD();wcmd(0x80+0x00);for(i=0;i<15;i++){wdat(mod[i]);}wcmd(0x80+0x40);for(i=0;i<10;i++){wdat(mod1[i]);}TR0=0;TMOD=0x61;TH1=0xff;TL1=0xff;IT0=1;EX0=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论