基于STC89C52单片机的实验平台开发设计课程设计_第1页
基于STC89C52单片机的实验平台开发设计课程设计_第2页
基于STC89C52单片机的实验平台开发设计课程设计_第3页
基于STC89C52单片机的实验平台开发设计课程设计_第4页
基于STC89C52单片机的实验平台开发设计课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 单片机原理与应用 设计题目 基于stc89c52单片机的实验平台开发设计专 业 计算机科学与技术 班 级 b110506 学 号 b11050619 姓 名 刘博 完成日期 2013年6月25日 课 程 设 计 任 务 书设计题目: 基于stc89c52单片机的实验平台开发设计 设计内容与要求:一、设计内容利用stc系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:1. 电路原理图设计,主要包括集lcd显示模块、串口通信模块、数码管显示模块、led发光二极管、键盘等接口电路的设计;2. 学习集成电路等芯片的焊

2、接方法与技巧,实际元器件的识别、电路板焊接;3. 在keil c环境下,进行软件设计。主要包括流水灯、计数器、定时器、lcd字符显示、键盘的控制等功能程序设计;4. 针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。二、设计要求1. 完成综合实验平台的电路分析,进行模块分解,掌握各部分电路的工作原理;2. 独立完成电路板的焊接,掌握故障排除方法,完成实验的硬件设计及开发;3. 结合keil c软件在焊接无误的单片机实验平台上开发出流水灯、lcd显示模块,通信模块等程序设计;4. 按照要求撰写课程设计论文。 指导教师: 舒云星、李传锋 201

3、3年 5 月 30 课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日基于stc89c52单片机的实验平台开发设计摘 要stc89c52是stc公司生产的一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。stc89c52使用经典的mcs-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节flash,512字节ram, 32 位i/o 口线,看门狗定时器,内置4kb eeprom

4、,max810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双共串口。另外 stc89c52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35mhz,6t/12t可选。利用stc89c52单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,在keil c环境下进行软件设计,主要包括流水灯、数码管显示以及lcd显示模块,在pr

5、otues中仿真成功,下载到电路板中验证成功。实现流水灯的跳转显示流动,应用中断实现数码管60之内计数以及lcd显示不同字符的功能。关键词: stc单片机,实验平台,数码管,流水灯,串口通信design and development platform based on stc89c52 microcontroller experimentabstractthe stc89c52 is a low power, high performance cmos8 produced stc, with 8k in system programmable flash memory. stc89c52 s

6、ing classic mcs-51 kernel, but made a lot of improvements make the chip with raditional 51 scm features not available. in a single chip, with 8 cpu dexterous and in-system programmable flash, the stc89c52 offers solutions for high flexibility, super efficient for many embedded control applications.

7、has the standard features: 8k bytes of flash, 512 bytes of ram, 32 i/o lines, the watchdog timer, built-in 4kb eeprom, max810 reset circuit, 3 16 timer / counter, 4 external interrupts, a 7 vector level 4 interrupt structure, a total of. in addition stc89c52 can be reduced to 0hz static logic operat

8、ion, support 2 software selectable power saving mode. the idle mode, the cpu stops working, ram, timer / counter, serial port interrupt, continue to work permit.the ower-down mode, the ram content being saved, has been frozen, disabling all other chip functions, until the next interrupt or hardware

9、reset. maximum operating requency of 35mhz, 6t/12t optional.scm experiment platform based on stc89c52 mcu development of a soft, combined with hardware, software design in keil c environment, including water lights, digital tube display and lcd display module, the simulation successfully in protues,

10、 download to the circuit board test successful. to achieve water lamp jump display flow, using interrupt 60 digital tube counting and lcd display different characters within the function.keywords: stc microcontroller, comprehensive experimental board, software and hardware combined with, and the pro

11、gram development design目 录摘 要i目 录iii前 言1第1章系统概述21.1设计题目21.2系统设计目的和内容21.2.1设计目的21.2.2设计内容21.2.3设计要求31.2.4设计步骤3第2章整体设计方案42.1开发板整体外观42.2整板电路protues仿真电路42.3软件功能描述52.4仿真软件protues中的效果图7第3章硬件电路设计93.1两位一体共阴数码管93.1.1数码管概述93.1.2数码管内部结构93.1.3两位一体共阴数码管和74ls374锁存器接口电路113.2lcd1602液晶123.2.1lcd1602液晶简介123.2.2lcd160

12、2液晶引脚介绍123.2.3lcd1602液晶外围接口电路143.3 串口通信143.3.1串口通讯概述143.3.2max232接口电路15第4章软件设计164.1程序整体流程图164.2程序清单17第5章调试及故障分析215.1 焊接准备阶段元器件测试、电路原理图故障分析215.2 电路焊接过程中的故障分析215.3 程序编写过程中的故障分析215.4 实物演示效果22结论24谢辞25参考文献26附录27iii前 言随着电子技术的发展,单片机在电讯技术、工业控制、汽车自动化、家用电器等领域得到了广泛的应用,而单片机由于其实用性好、可靠性高、便于扩展等特点得到了广泛的应用。为了更好的学习和应

13、用单片机,可以将经常应用到的单片机外围电路集成到一个学习/开发板上以供使用者方便使用。同时应提供常用的移植性较好的模块代码(本设计选用c作为源代码的编写工具)。市场上现存的单片机开发板很多,因此,要求设计尽量能够达到资源丰富、易用性好、设计美观等特点。而stc89c52是stc公司生产的一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。stc89c52使用经典的mcs-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决

14、方案。本系统是基于stc89c52单片机的学习开发板,集成了单片机应用过程中常用到的硬件资源,数码管、lcd显示器、流水灯。为学习和开发单片机产品提供平台。第1章 系统概述1.1 设计题目基于stc89c52的实验平台开发设计1.2 系统设计目的和内容1.2.1 设计目的利用stc89c52作为微控制器开发一套软、硬件相结合的单片机实验平台。实现对数码管、lcd显示器、流水灯的操作,锻炼学生的设计思维和动手能力,使其具备独立完成设计的能力,也让学生更好的了解课本内容。1.2.2 设计内容² 电路原理图设计,主要包括集lcd显示模块、串口通信模块、数码管显示模块、led发光二极管、键盘

15、等接口电路的设计;² 学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;² 在keil c环境下,进行软件设计。主要包括流水灯、计数器、定时器、lcd字符显示、键盘的控制等功能程序设计;² 针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。1.1.1 设计要求² 完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;² 独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;² 结合keil c软件在焊接无误的单片机实验平台上

16、开发出流水灯、lcd显示模块,通信模块等程序设计;² 按照要求撰写课程设计论文。1.1.2 设计步骤² 先对原理图进行分析² 根据图示对电路板进行焊接² 焊接完成后,在protues上连接仿真电路图² 再根据原理图进行编程序,并在keil c上运行,检查是否有误² 将程序加载在仿真图上运行,截取需要的电路图² 最后在焊接好的电路板上实验第2章 整体设计方案122.1 开发板整体外观图2-1开发板外观图2.2 整板电路protues仿真电路图2-2仿真原理图2.3 软件功能描述1.keil c51c51工具包的整体结构,如图(

17、1)所示,其中uvision与ishell分别是c51 for windows和for dos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用ide本身或其它编辑器编辑c或汇编源文件。然后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中。使用独立的keil仿真器

18、时,注意事项* 仿真器标配11.0592mhz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/ea)已接至高电平,所以仿真时只能使用片内rom,不能使用片外rom;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部rom(其cpu的/ea引脚接至低电平)的目标系统中使用。2. isis protuesprotues软件是英国labcenter electronics公司出版的eda工具软件。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。proteu

19、s是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和matlab等多种编译支持当前的主流单片机,如51系列、avr系列、pic12系列、pic16系列、pic18系列

20、、z80系列、hc11系列、68000系列等。² 提供软件调试功能。² 提供丰富的外围接口器件及其仿真。ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部分iic器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。² 提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。² 具有强大的原理图绘制功能在protues绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在protues的原理图中看到模拟的实物运行状态和过程。protues 是单片机课堂教学的先进

21、助手。protues不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中protues也能茯得愈来愈广泛的应用。可实现keil c 与 protues连接调试。在已经绘制出了8051驱动原理图的基础上,完整地展示一个protues 与 keil c 相结合的仿真过程。² 硬件设计² 程序设计²

22、仿真实现步骤2.4 仿真软件protues中的效果图图2-3仿真效果图1图2-4仿真效果图2图2-5仿真效果图3第3章 硬件电路设计3.1两位一体共阴数码管233.13.1.1 数码管概述led数码管是由发光二极管构成的,具有显示亮度高、响应速度快的特点。常见的是七段led显示器为“8”字型,该显示器内部有7个条形发光二级管和一个小圆点发光二级管,共计8段 ,每段对应一个发光二级管。有共阴极和共阳极两种,共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时发光二级管发光。共阳极发光二极管的阳极连在一起,通常公共阳极接正电压。当阴极为低电平时发光二级管发光。3.1.2 数码管内部结

23、构led数码管(led segment displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据led的接法不同分为共阴和共阳两类,了解led的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表

24、,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用led数码管内部引脚图片。  图3-1 led数码管引脚定义 图3-2 10引脚数码管实物图8段led数码管如图3-3所示:图3-3 8段led数码管结构及外形led数码管通过7个发光二极管亮暗的不同组合可以显示各种数字,另外一个圆的型发光二级管(图3-1(a)中以dp显示)显示小数点。只要为led数码管提供了段码就可以显示不同的符号和数字。led数码管共计8段。正好是一个字节。习惯上是以“a”段对应段码字节的最低位。各段与字节中各位对应关系如表3-1所示。表3-1 段码与字节中各位对应关系代码位d

25、7d6d5d4d3d2d1d0显示段dpgfedcba按照表3-1中的格式,显示各种字符的8段led数码管的段码如表3-2所示(以共阴极为例)。表3-2 8段led数码管段码显示字符段符号十六进制代码dpgfedcba共阴极共阳极0001111113fhc0h10000011006hf9h2010110115bha4h3010011114fhb0h40110011066h99h5011011016dh92h6011111017dh82h70000011107hf8h8011111117fh80h9011011116fh90h3.1.3 两位一体共阴数码管和74ls374锁存器接口电路图3-4共

26、阴数码管和74ls374锁存器接口电路图3.2 lcd1602液晶3.2.1 lcd1602液晶简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义cgram,显示效果也不好)。1602lcd是指显示的内容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。其特性:

27、8; 3.3v或5v工作电压,对比度可调² 内含复位电路² 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能² 有80字节显示数据存储器ddram² 内建有192个5x7点阵的字型的字符发生器cgrom² 8个可由用户自定义的5x7的字符发生器cgram3.2.2 lcd1602液晶引脚介绍1602采用标准的16脚接口,如图3-4所示,其中:图3-5 lcd1602液晶引脚图第1脚:vss为电源地第2脚:vcc接5v电源正极第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“

28、鬼影”,使用时可以通过一个10k的电位器调整对比度)。第4脚:rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:rw为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。如表3-3所示:表3-3 读写操作选择rsrw寄存器及操作00指令寄存器写入01忙信号和地址计数器读出10数据寄存器写入11数据寄存器读出第6脚:e(或en)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:d0d7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.2.3 lcd1602液晶外围接口电路 图3-6 lcd1

29、602液晶外围接口电路3.3 串口通信3.3.1 串口通讯概述串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。如图3-5所示:图3-7 串口通信串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。串行通信按信息的格式可分为异步通信和同步通信两种方式;根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种,如图3-6所示。图3-8串行通信的3种传输形式同步通信是

30、一种连续串行传送数据的通信方式,一次通信只传送一帧信息。异步通信中,在异步通信中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。3.3.2 max232接口电路图3-9 max232接口电路第4章 软件设计4.1程序整体流程图sw2=0?sw3=0?sw4=0?开始调用yejing函数给yejing函数初始化操作调用写数据函数,输入数据并延时调入写指令函数,移动写入的数据调用写数据函数,输入数据并延时清屏操作 再次调入

31、写数据、写指令、延时函数,输入下条信息结束yejing函数开始数码管函数初始化选择定时方式,并给高八位低、八位赋值, 开中断调用显示函数,输出每个数码管的数值显示count>59?主函数结束数码管函数开始流水灯函数流水灯一次奇偶数亮,全开,全熄灭i>=3?中断结束流水灯函数ynyyynysw2=0sw3=0流水灯从上到下亮,全开,一次奇偶数亮,全熄灭4.2程序清单 #include<reg52.h> #define uint unsigned int#define uchar unsigned charsbit sw2=p32;sbit sw3=p33;sbit lcd

32、rs=p16;sbit lcdrw=p17;sbit a0=p25;sbit a1=p26;sbit a2=p27;sbit e1=p15;uchar code table="welcom to check!"uchar code table1="b11050619"uchar code table3=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code table2=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0x00,

33、0x55,0x55,0xaa,0xaa;unsigned char count,num;void delay(uint xms) uint i,j;for(i=xms;i>0;i-) for(j=110;j>0;j-);void write_com(uchar com) lcdrs=0;p0=com;lcdrw=0;/没有这条语句不行delay(5);p2=0x40;delay(5);p2=0x00;void write_data(uchar date) lcdrs=1;p0=date;lcdrw=0;/没有这条语句不行delay(5);p2=0x40;delay(5);p2=0x

34、ff;void lcd_init() write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);void liushuideng()uchar i;while(1) if(sw2=0) for(i=0;i<3;i+) p2=0xaa; delay(500); p2=0x55; delay(500); p2=0x00; delay(500); p2=0xff; delay(500); if(sw3=0) for(i=0;i<16;i+) p2=table2i; delay(500); p2=0xff;void ye

35、jing() lcd_init();write_com(0x80);for(num=0;num<16;num+) write_data(tablenum); delay(5);write_com(0x80+0x40);for(num=0;num<9;num+) write_data(table1num); delay(5);while(1);void display(unsigned char count) a0=0; a1=0; a2=0; e1=1; p0=table3count%10; delay(100); a0=1; a1=0; a2=0; e1=1; p0=table3

36、count/10; delay(100);void init() tmod=0x01;th0=(65536-50000)/256;/赋初值tl0=(65536-50000)%256;ea=1;/开总中断et0=1;tr0=1;void t0_time() interrupt 1 th0=(65536-50000)/256;/赋初值tl0=(65536-50000)%256;void shumaguan()init();p0=0xff;for(count=0;count<60;count+) display(count);delay(500); void main() while(1) s

37、witch(p3) case 0xfb:yejing();break;case 0xf7:shumaguan();break;case 0xef:liushuideng();break;case 0xdf:;break;第5章 调试及故障分析5.1 焊接准备阶段元器件测试、电路原理图故障分析Ø 检测各器件是否完好,包括二极管、数码管、单片机、led、电容等Ø 将一定值的器件摆放在应在的位置Ø 按照所给的电路图正确焊接Ø 利用万用表进行测试,找到短路、短路的地方进行修改5.2 电路焊接过程中的故障分析Ø 焊接过程中焊接不完善,导致断路,不能导通&

38、#216; 电容、led正负极接反,导致灯不会亮,也影响整体电路Ø 芯片插槽接反,将导致整体电路不能执行功能Ø 焊接过程中造成短路,将导致整体电路不能执行功能Ø 将电阻排接反,也不能得到预期的效果5.3 程序编写过程中的故障分析在编写程序的时候,总会出现一些这样那样的错误,例如:在编写完成后,不能完成预期的功能,那么就需要对其进一步的修改直到可以实现功能为止,完成后,流水灯不会亮,经过检查后,原来是设置值的时候没有设置对。5.4 实物演示效果图5-1 液晶显示效果图 图5-2 流水灯效果显示图5-3 数码管效果显示1图5-3 数码管效果显示2结论这次的课程设计,虽然时间不长,但是却学到了很多东西。首先,我们花费了一天的时间对电路板进行焊接,焊接的过程中也会出现一些不必要的错误,例如:把器件的位置焊接错误,但是经过检测还是可以发现的。并且学到在焊接的时候团队合作是必要的,

温馨提示

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

评论

0/150

提交评论