1、洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 单片机原理和应用 设计题目 基于STC89C52单片机试验平台开发设计专 业 计算机科学和技术 班 级 B1105 学 号 姓 名 完成日期 12月27日 课 程 设 计 任 务 书设计题目: 基于STC89C52单片机试验平台开发设计 设计内容和要求:一、设计内容利用STC系列单片机作为微控制器开发一套软、硬件相结合单片机试验平台,关键包含以下内容:1. 电路原理图设计,关键包含集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路设计;2. 学习集成电路等芯片焊接方法和技巧,进行实际元器件识别,进行电路板焊接
2、;3. 在Keil C环境下,进行软件设计。关键包含流水灯、计数器、定时器、LCD字符显示、键盘控制等功效程序设计;4. 针对所开发试验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计汇报。二、设计要求1. 完成综合试验平台电路结构分析,进行模块分解,掌握各部分电路工作原理;2. 独立完成电路板焊接,掌握故障排除方法,完成试验平台硬件设计及开发;3. 结合Keil C软件在焊接无误单片机试验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;4. 根据要求撰写课程设计论文。 指导老师: 12 月 16 日课 程 设 计 评 语 成绩: 指导老师:_ 年 月
3、 日基于STC89C52单片机试验平台开发设计摘 要单片机是一个集成电路芯片,是采取超大规模集成电路技术把含有数据处理能力中央处理器CPU随机存放器RAM、只读存放器ROM、多个I/O口和中止系统、定时器/计时器等功效(可能还包含显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上组成一个小而完善微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当初4位、8位单片机,发展到现在32位300M高速单片机。51单片机是对全部兼容Intel 8031指令系统单片机统称。该系列单片机始祖是Intel8031单片机,以后伴随Flash rom技术发展,8031单片机
4、取得了长足进展,成为应用最广泛8位单片机之一,其代表型号是ATMEL企业AT89系列,它广泛应用于工业测控系统之中。很多企业全部有51系列兼容机型推出,以后很长一段时间内将占有大量市场。51单片机是基础入门一个单片机,还是应用最广泛一个。需要注意是52系列单片机通常不含有自编程能力。STC89C52单片机控制器为关键,是一个开发一个体积小、使用方便、实用性强单片机综合试验实训平台,该平台也是现在市场上比较基础单片机,通常能够满足部分不太复杂设计需要和部分智能工作场所,该单片机即使比较简单,不过性能稳定,可应用于很多控制领域。当然也是是初学者不错选择。 所以这次我们采取单片机来用板子上面已经集成
5、好硬件基础做部分简单试验,包含数码管控制,键盘使用,流水灯和液晶使用,和串口通信等部分试验。关键词: STC单片机,试验平台,数码管,流水灯,串口通信ABSTRACTSCM is an integrated circuit chip, is the use of VLSI technology with data processing capabilities of the central processing unit CPU random access memory RAM, read-only memory ROM, multiple I / O port and interrupt s
6、ystem, the timer / timer, etc. function (may also include a display driving circuit, the pulse width modulation circuit, the analog multiplexer, A / D converters, etc. circuit) integrated onto a silicon wafer consisting of a small micro-computer system and complete, in the industrial control field w
7、idely used. From the 1980s by the then 4, 8-bit microcontroller, to todays 32 300M high-speed microcontroller.51 single for all compatible Intel 8031 microcontroller instruction set collectively. The series is Intels single-chip ancestor 8031, and later with Flash rom technology, 8031 has made consi
8、derable progress, to become the most widely used one 8-bit microcontroller, its representative model is ATMEL Corporation AT89 series, which widely used in industrial control systems. Many companies have launched 51 series compatibles, the future for a long period of time will occupy a large market.
9、 51 is the basis for the entry of a single-chip microcontroller, or the most widely used one. Note that the 52 series of microcontrollers generally do not have self-programming capability.STC89C52 single-chip controller as the core, is a development of a small, easy to use, practical single-chip int
10、egrated experimental and training platform, which is currently the basis of comparison of the microcontroller on the market, generally able to meet some of the less complex design needs and some smart work places, although the chip is relatively simple, but the performance and stability, can be appl
11、ied to a lot of control. Of course, is a good choice for beginners. So this time we use the microcontroller to above has been integrated with the board good hardware base to do some simple experiments, including digital control, use of the keyboard, and LCD light water use serial communications have
12、 been some experiments.KEYWORDS: STC microcontroller, comprehensive experimental board, software and hardware combined with, and the program development design目 录摘 要I目 录III前 言1第1章 系统概述21.1 设计题目21.2 系统设计目标和内容21.2.1 设计目标21.2.2 设计内容21.2.3 设计要求21.2.4 设计步骤2第2章 整体设计方案32.1 开发板整体外观32.2 Protuce仿真电路32.3 软件功效描
13、述32.4 仿真软件PROTUES中效果图4第3章 硬件电路设计53.1两位一体共阴数码管53.1.1 数码管概述53.1.2 两位一体共阴数码管和74LS374锁存器接口电路63.2 LCD1602液晶63.2.1 LCD1602液晶介绍63.2.2 LCD1602液晶外围接口电路73.3 串口通信73.3.1 串口通讯概述73.3.2 MAX232接口电路8第4章 软件设计94.1程序整体步骤图9第5章 调试及故障分析105.1 焊接准备阶段元器件测试、电路原理图故障分析105.2 电路焊接过程中故障分析105.3 程序编写过程中故障分析105.4 实物演示效果10结论12谢辞12参考文件
14、12附录一13附录二17前 言中国开始使用单片机是在1982 年,短短五年时间里发展极为快速。1986 年在上海召开了全国首届单片机开发和应用交流会,有地域还成立了单片微型计算机应用协会,那是全国形成第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”搜索,将会看到上万个介绍单片机网站,这还不包含国外。和它对应专业杂志现在也有很多,比如由单片机界权威何立民主编单片机和嵌入式系统应用杂志现以风靡电子界,在7月,在上海、广州、北京等大城市所做一次专业人才需求汇报中,单片机人才需求量位居第一。一块小小片子,为何有这么魔力?我们首先从它组成说起:单片机,亦称单片微电脑或单片微型
15、计算机。它是把中央处理器(CPU)、随机存取存放器(RAM)、只读存放器(ROM)、输入/输出端口(I/0)等关键计算机功效部件全部集成在一块集成电路芯片上微型计算机。计算机产生加紧了人类改造世界步伐,不过它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活各个领域,从导弹导航装置,到飞机上多种仪表控制,从计算机网络通讯和数据传输,到工业自动化过程实时控制和数据处理,和我们生活中广泛使用多种智能IC 卡、电子宠物等,这些全部离不开单片机。以前没有单片机时,这些东西也能做,不过只能使用复杂模拟电路,然而这么做出来产品不仅体积大,而且成本高,而且因为长久使用,元
16、器件不停老化,控制精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单接口电路,关键部分只是由人为写入程序来完成。这么产品体积变小了,成本也降低了,长久使用也不会担心精度达不到了。所以,它魔力不仅是在现在,在未来将会有更多人来接收它、使用它。据统计,中国单片机年容量已达13 亿片,且每十二个月以大约16%速度增加,但相对于世界市场中国拥有率还不到1%。尤其是沿海地域玩具厂等生产产品多数用到单片机,并不停地辐射向内地。所以,学习单片机在中国是有着宽广前景。第1章 系统概述1.1 设计题目基于STC89C52单片机试验平台开发设计。1.2 系统
17、设计目标和内容1.2.1 设计目标 (1)学会分块电路原理图分析。 (2)利用手中PCB板,完成元器件焊接,掌握焊接得技巧,怎样将焊点焊美观,牢靠,焊接过程中对元器件识别。 (3)在Keil C环境下进行软件设计。关键包含流水灯,数码管,液晶,键盘控制1.2.2 设计内容 (1)单片机在复位状态下,按下第一个键数码管开始以秒加1计时,当读到60时再从0开始;按下第二个液晶开始工作,首先显示欢迎语“welcome to MCU”然后清楚再显示时间,包含年月日,小时,分钟,秒;按下第三个led开始工作。 (2)数码管秒计数利用T1定时器工作方法2,液晶时间显示利用T0定时器工作方法2;键盘检测比较
18、简单,只需要检测单个引脚对应电平即可。1.2.3 设计要求 (1)完成综合试验平台电路结构分析,进行模块分解,掌握各部分电路工作原理;(2)独立完成电路板焊接,掌握故障排除方法,完成试验平台硬件设计及开发;(3)结合Keil C软件在焊接无误单片机试验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;1.2.4 设计步骤(1)读懂并分析每一块电路连接,工作原理,其中包含搜集必需部分芯片资料。 (2)完成电路焊接。(3)模块化编程,首先编写LED看,这个程序来说相对比较简单编写同时友能够熟悉开发板电路,然后编写数码管和LCD对应程序,在编写过程中要完成一个模块调试好了在进行下一个模块编写。
19、第2章 整体设计方案122.1 开发板整体外观 2.2 Protuce仿真电路 2.3 软件功效描述Delay_ms 实现一个简单延时;LCD_program 实现液晶时间显示:led_program 实现了闪烁移动;smg_program 实现数码管以秒加一计数。2.4 仿真软件PROTUES中效果图 图2.4.1 数码管仿真图 图2.4.2 LCD仿真图 图2.4.3 LED 仿真图 第3章 硬件电路设计3.1两位一体共阴数码管233.13.1.1 数码管概述数码管也称LED数码管,晶美、光电、不一样行业人士对数码管称呼不一样,其实全部是一样产品。数码管按段数可分为七段数码管和八段数码管,
20、八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管;按发光二极管单元连接方法可分为共阳极数码管和共阴极数码管。共阳数码管是指将全部发光二极管阳极接到一起形成公共阳极(COM)数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管阴极为低电平时,对应字段就点亮,当某一字段阴极为高电平时,对应字段就不亮。共阴数码管是指将全部发光二极管阴极接到一起形成公共阴极(COM)数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管阳极为高电平时,对应字段就点亮,当某一字段阳极
21、为低电平时,对应字段就不亮。led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型器件,引线已在内部连接完成,只需引出它们各个笔划,公共电极。led数码管常见段数通常为7段有另加一个小数点,还有一个是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管依据LED接法不一样分为共阴和共阳两类,了解LED这些特征,对编程是很关键,因为不一样类型数码管,除了它们硬件电路有差异外,编程方法也是不一样。共阴和共阳极数码管内部电路,它们发光原理是一样,只是它们电源极性不一样而已。颜色有红,绿,蓝,黄等多个。led数码管广泛用于仪
22、表,时钟,车站,家电等场所。选择时要注意产品尺寸颜色,功耗,亮度,波长等。数码管内部引脚见附录一。 3.1.2 两位一体共阴数码管和74LS374锁存器接口电路 图3.1.3 数码管外围电路3.2 LCD1602液晶3.2.1 LCD1602液晶介绍工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示方便 ,后文皆以1表示高电平,0表示低电平。1602液晶也叫1602字符型液晶,它是一个专门用来显示字母、数字、符号等点阵型液晶模块。它由若干个5X7或5X11等点阵字符位组成,每个点阵字符位全部能够显示一个字符,每位之间有一个点距间隔,每行之间也有间隔,起到了字符间距和
23、行间距作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示内容为16X2,即能够显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片,控制原理是完全相同,所以基于HD44780写控制程序能够很方便地应用于市面上大部分字符型液晶。其特征为:3.3V或5V工作电压,对比度可调。内含复位电路。提供多种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多个功效。有80字节显示数据存放器DDRAM。内建有192个5X7点阵字型字符发生器CGROM。8个可由用户自定义5X7字符发生器CGRAM。微功耗、体积小
24、、显示内容丰富、超薄轻巧,常见在袖珍式仪表和低功耗应用系统中。引脚图及原理图见附录一。3.2.2 LCD1602液晶外围接口电路 图3.2.3 LCD外围电路3.3 串口通信3.3.1 串口通讯概述串口通信(Serial Communication), 是指外设和计算机间,经过数据信号线 、地线、控制线等,按位进行传输数据一个通讯方法。这种通信方法使用数据线少,在远距离通信中能够节省通信成本,但其传输速度比并行传输低。串口通信(Serial Communications)概念很简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)并行通信慢,不过串口能够在使用一根线发送数据同时用另一
25、根线接收数据。它很简单而且能够实现远距离通信。比如IEEE488定义并行通行状态时,要求设备线总长不得超出20米,而且任意两个设备间长度不得超出2米;而对于串口而言,长度可达1200米。经典地,串口用于ASCII码字符传输。通信使用3根线完成,分别是地线、发送、接收。因为串口通信是异步,端口能够在一根线上发送数据同时在另一根线上接收数据。其它线用于握手,但不是必需。串口通信最关键参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信端口,这些参数必需匹配。波特率:这是一个衡量通信速度参数。它表示每秒钟传送bit个数。比如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指
26、波特率比如假如协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上采样率为4800Hz。通常电话线波特率为14400,28800和36600。波特率能够远远大于这些值,不过波特率和距离成反比。高波特率常常见于放置很近仪器间通信,经典例子就是GPIB设备通信。数据位:这是衡量通信中实际数据位参数。当计算机发送一个信息包,实际数据不会是8位,标准值是6、7和8位。怎样设置取决于你想传送信息。比如,标准ASCII码是0127(7位)。扩展ASCII码是0255(8位)。假如数据使用简单文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包含开始/停止位,
27、数据位和奇偶校验位。因为实际数据位取决于通信协议选择,术语“包”指任何通信情况。停止位:用于表示单个包最终一位。经典值为1,1.5和2位。因为数据是在传输线上定时,而且每一个设备有其自己时钟,很可能在通信中两台设备间出现了小小不一样时。所以停止位不仅仅是表示传输结束,而且提供计算机校正时钟同时机会。适适用于停止位位数越多,不一样时钟同时容忍程度越大,不过数据传输率同时也越慢。奇偶校验位:在串口通信中一个简单检错方法。有四种检错方法:偶、奇、高和低。当然没有校验位也是能够。对于偶和奇校验情况,串口会设置校验位(数据位后面一位),用一个值确保传输数据有偶个或奇个逻辑高位。比如,假如数据是011,那
28、么对于偶校验,校验位为0,确保逻辑高位数是偶数个。假如是奇校验,校验位为1,这么就有3个逻辑高位。高位和低位不真正检验数据,简单置位逻辑高或逻辑低校验。这么使得接收设备能够知道一个位状态,有机会判定是否有噪声干扰了通信或是否传输和接收数据是否不一样时。3.3.2 MAX232接口电路图3.3.2 MAX232 接口电路第4章 软件设计4.1程序整体步骤图开始检测键盘对应引脚电平Led程序Lcd程序数码管程序Key1, Key2, Key0是否其中有一个为0Key2=0Key0=0Key1=0结束程序设计见附录二第5章 调试及故障分析5.1 焊接准备阶段元器件测试、电路原理图故障分析检测各个器件
29、是否完备并完整;测试一些电阻是否符合要求;测试键盘内部连接以确定怎样焊接;5.2 电路焊接过程中故障分析电源短路,最有可能就是焊接过程中焊锡太多造成;焊点展现圆球状,这么焊点极有可能出现虚焊,还有部分空间很小地方在焊完以后一定要测试一下是否短路或断路;电源指示灯亮度太暗,有可能是和其串联电阻太大造成5.3 程序编写过程中故障分析LED循环亮灯问题,假如用_corol_()函数,必需要要包含对应头文件,这个函数每调用一次左移一位,所以要是整个LED循环亮就得调用循环。LCD中出现问题最多,首先要明白1602时序问题,还有显示原理,1602没有汉字字库,只能显示ASSII码,最初编写写命令writ
30、e_com()和写数据write_data()函数过程中没有对RW端口进行操作,结果造成1602不能驱动问题,还有可能出现问题就是1602使能端连接到138译码器Y2,这就要求对138译码器原理必需掌握,其实138译码器最关键就是其对应真值表;数码管用到了373锁存器,经过对两个373控制以实现对两位数码管控制,ALE端负跳变实现锁存。5.4 实物演示效果 图5.4.1 LCD效果图 图5.4.2 数码管效果图 图5.4.3 LED效果图结论 这次试验,不管在开发板还是在仿真图上全部得到了预想结果,这个让我们从部分感性认识一下子进入到可触控实际认识,换句话说,看吧,东西就在眼前。或许有很多同学
31、会怀疑我就写了一个程序,下载到里面,它怎么会实现。其实我也想了很多,你不就是给她芯片里写了部分字符吗,她怎么会实现物理开关般作用,其实这个问题不用多问,我认为我们临时知道这个就能够了,不用死钻牛角尖。当然,这次团体合作是这次试验成功不可缺乏原因。很多时候,尤其在部分大工程里,可能每个人只是负责一个部分,这个时候知道团体合作是发展需要。谢辞这次试验,对于三位老师教导我表示深深地感谢,和老师们为我们精心准备开发板来让我们实质性体验。当然,我还得感谢我队员,正是我们相互合作,共同努力才得以处理在焊接过程中碰到部分问题,才会又快又好地焊接PCB板。参考文件1 林立 张俊亮编 单片机原理及应用M. 北京
32、:电子工业出版社,2 周润景等编 Proteus入门使用教程. 北京:电子工业出版社,3 谭浩强编 C程序设计. 北京:清华大学出版社,19914 郭天祥编 51单片机C语言教程. 北京:电子工业出版社,附录一1、数码管内部引脚及功效下面将介绍常见LED数码管内部引脚图数码管实物图 图1 LED数码管引脚定义 图2 LED为共阴方法 图3 数码管内部结构原理图 图32、74LS373原理及引脚图74LS373功效表LEDQ0111010000不变1高阻态74LS373三种工作方法:跟随(=0,LE=1,输出跟随输入)锁存(=0,LE从高变为低负跳变时,锁存D0D7)高阻(=1,Q0Q7输出为高
33、阻,相当于断开)3、74LS138原理及引脚图74LS138真值表注:1表示高电平,0表示低电平,表示任意【C为高位,A为低位】【强调:要使138芯片工作,G1接高电平“1”,和接低电平“0”】74LS138引脚图4、LCD1602工作原理及引脚图LCD1602工作电流2.0mA(5.0V)9013驱动电流达40mA,仿真时能够选择一个NPN三极管。所以从低到高时,LCD1602E端出现高到低负跳变。 1602采取标准16脚接口,其中:第1脚:VSS为电源地;第2脚:VCC接5V电源正极;第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼
34、影”,使用时能够经过一个10K电位器调整对比度);第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器;第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作;第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时实施指令;第714脚:D0D7为8位双向数据端;第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD1602第5脚:,读写操作选择(1读,0写)。RS寄存器及操作00指令寄存器写入01忙信号和地址计数器读出10数据寄存器写入11数据寄存器读出LCD1602第6脚:E端为使能端,当E端由高电平跳变成
35、低电平时(负跳变),液晶模块实施命令。【类似于74LS373,需要负跳变】实施一条命令或写入一个数据,全部要使E有一个负跳变。附录二程序设计/#include #include delay.h#include led.h#include lcd.h#include smg.hsbit key0=P32;sbit key1=P33;sbit key2=P34;sbit key3=P35;void main() while(1) if(key0=0) delay_ms(3);if(key0=0) led_program(); if(key3=0) delay_ms(3);if(key3=0) lc
36、d_program(); if(key2=0) delay_ms(3);if(key2=0) smg_program(); /#include delay.h#include led.h#include #include void led_program()uint i;uchar a,b;a=0xfe; /1111 1110b=0x7f; /0111 1111while(1)P2=0x00;delay_ms(800);P2=0xff;delay_ms(800);P2=0xaa; /1010 1010 /低电平有效delay_ms(800);P2=0x55; /0101 0101delay_m
37、s(800);/循环亮灯i=500;while(i=20)P2=a;delay_ms(i);a=_crol_(a,1);i=i-10;i=10;while(i0;i-)for(j=110;j0;j-);/#ifndef _LCD_H_#define _LCD_H_#define uchar unsigned char #define uint unsigned intvoid LCD_EN_0();void LCD_EN_1();void write_com(uchar com);void write_data(uchar date);void Lcdinit();void display_time(uchar add,uchar date);void lcd_program(void);#endif/#include lcd.h#include delay.h#include sbit Lcdrs=P16;sbit Lcdrw=P17;sbit E3_138=P15;uchar welcome_mode=Welcome to MCU;uchar name_mode=chaoweili ; uchar xuehao_mo