已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛洛 阳阳 理理 工工 学学 院院 课课 程程 设设 计计 报报 告告 课程名称 单片机原理与应用 设计题目 基于 STC89C52 单片机的实验系统开发与设计 专 业 计算机科学与技术 班 级 B120505 学 号 姓 名 完成日期 2014 年 6 月 27 日 课课 程程 设设 计计 任任 务务 书书 设计题目:设计题目: 基于 STC89C52 单片机的实验系统开发与设计 一、设计内容一、设计内容 利用 STC 系列单片机作为微控制器开发一套软、硬件相结合的单片机实验 系统,主要包括以下内容: 1. 电路原理图设计,主要包括集 LCD 显示模块、串口通信模块、数码管显示 模块、LED 发光二极管、键盘等接口电路的设计; 2. 学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路 板焊接; 3. 在 Keil C 环境下,进行软件设计。主要包括流水灯、计数器、定时器、LCD 字符显示、键盘的控制等功能程序设计; 4. 针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调 试、软硬件联调等方面写出课程设计报告。 二、设计要求二、设计要求 1. 完成综合实验系统的电路结构分析,进行模块分解,掌握各部分电路的工作 原理; 2. 每组协作完成电路板的焊接,掌握故障排除方法,完成实验系统的硬件设计 及开发; 3. 结合 Keil uVision4 软件在焊接无误的单片机实验系统上开发出流水灯、计数 器、LCD 显示等程序; 4. 根据分组情况,从硬件、软件方面对学生进行逐一答辩考核; 5. 按照要求撰写课程设计论文。 指导教师:舒云星、李传锋 2014 年 6 月 10 日 课课 程程 设设 计计 评评 语语 成绩:成绩: 指导教师:_ 年 月 日 I 基于 STC89C52 单片机的实验系统开发与设计 摘 要 STC单片机在8位的MCS51内核单片机行列中逐渐被认可,在单片机教学实验 系统中普遍应用由于STC单片机问世时间短,大部分写录器不能支持或仅支持 它的部分功能STC单片机在出厂时已经为用户写入程序做了充分的准备,在单 片机内部设计了ISP在线下载模块,使得用户可以自行设计程序下载器但其提 供的PC机程序下载软件只能通过Rs232串口下载程序,而目前一般的计算机特别 是笔记本大多数没有配置RS232串行接口而只配置了USB串口为此设计了STC单 片机程序下载器,它利用F1232BM组成串口转换器,将USB串口虚拟成RS232串 121,解决了此问题。TC89C52是S一种低功耗、高性能CMOS8位微控制器,具有以 下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内 置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个 7向量4级中断结构(兼容传统51的5向量2级中断结构) ,全双工串行口。本次课 程设计就是利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机 实验平台。 利用 STC89C52 单片机作为微控制器开发一套软、硬件相结合的单片机实验 平台,在 Keil C 环境下进行软件设计,主要包括流水灯、数码管显示以及 LCD 显示模块,在 Protues 中仿真成功,下载到电路板中验证成功。实现流水灯的跳 转显示流动,应用中断实现数码管 60 之内计数以及 LCD 显示不同字符的功能。 关键词: STC 单片机,仿真设计,实验系统,计数器,串行通信 Experiment Platform Development Design Based on STC Microcontroller ABSTRACT STC microcontroller gradually being recognized in the ranks of eight MCS51 microcontroller core, the teaching system in the SCM commonly used. STC microcontroller has been written for the user program at the factory made full preparations, the interior design of the microcontroller ISP online download module allows users to design their own program downloader. But it provides a PC download software only through Rs232 serial download, and in particular current general notebook computer is not configured for most RS232 serial interface and only equipped with a USB port. For this design the STC microcontroller program downloader, which uses F1232BM composed of serial converter, USB to RS232 serial virtual string 121, solves this problem. S TC89C52 is a low-power, high-performance CMOS8 bit microcontroller with the following standard features: 8k bytes of Flash, 512 bytes of RAM, 32 digital I / O lines, Watchdog timer, built-in 4KB EEPROM, MAX810 reset circuit, three 16-bit timer / counter, four external interrupts, a 7-vector interrupt structure 4 (compatible with traditional 51 2 5 vector interrupt structure), full-duplex serial port. The curriculum design is the use of STC Series MCU microcontroller development as a software and hardware combination of single-chip experiment platform. As the use of single-chip microcontroller STC89C52 develop a software and hardware platform combining single-chip experiment in Keil C environment for software design, including water lights, digital display and LCD display module, the simulation successfully Protues downloaded to successfully verify the circuit board. Jump to achieve water lights display flow achieved within the application interrupts the count, and 60 digital LCD display different character .KEYWORDS: STC microcontroller, Simulation design, Experiment platform, Counter, Serial communication III 目 录 前 言1 第 1 章实验平台概述.2 1.1设计题目.2 1.2系统设计目的和内容.2 1.2.1设计目的2 1.2.2设计内容2 1.2.3设计要求2 1.2.4设计步骤2 第 2 章整体设计方案.3 2.1开发板整体外观.3 2.2整板电路 PROTUES 仿真电路.3 2.3软件功能描述.3 2.4仿真软件 PROTUES 中的效果图.3 第 3 章硬件电路设计.4 3.1 两位一体共阴数码管.4 3.1.1数码管概述4 3.1.2数码管内部结构4 3.1.3两位一体共阴数码管和 74LS373 锁存器接口电路 .4 3.2LCD1602 液晶4 3.2.1LCD1602 液晶简介.4 3.2.2LCD1602 液晶引脚介绍.4 3.2.3LCD1602 液晶外围接口电路.4 3.3 串口通信4 3.3.1串口通讯概述4 3.3.2MAX232 接口电路4 第 4 章软件设计.5 4.1 程序整体流程图.5 4.2 程序清单.5 第 5 章调试及故障分析.6 5.1 焊接准备阶段元器件测试、电路原理图故障分析6 5.2 电路焊接过程中的故障分析6 5.3 程序编写过程中的故障分析6 5.4 实物演示效果6 结论7 谢辞8 参考文献9 附 录10 1 前 言 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理 能力的中央处理器 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.在 Keil C 环境下,进行软件设计。主要包括流水灯、计数器、计数器、 LCD 字符显示、键盘的控制等功能程序设计; 4.针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程 调试、软硬件联调等方面写出课程设计报告。 1.2.3 设计要求 1.完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工 作原理; 2.独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及 开发; 3.结合 Keil C 软件在焊接无误的单片机实验平台上开发出流水灯、LCD 显示 模块,通信模块等程序设计; 4.按照要求撰写课程设计论文。 1.2.4 设计步骤 1.研究讨论纸质电路图,弄清楚各个元器件的用途及可以实现的功能; 2.根据电路图在开发板上进行焊接; 3.在仿真软件上绘制仿真电路图; 4.根据要实现的功能编写程序,先在仿真软件上运行,无误的话下载到单片 机上查看运行效果; 5.根据课程设计的要求撰写实验报告。 3 第 2 章 整体设计方案 开发板整体外观 2.2 整板电路 PROTUES 仿真电路 2.3 软件功能描述 1.Protues Protues 软件是英国 Labcenter electronics 公司出版的 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 图 5 纸,可以方便地供 WORD、POWERPOINT 等多种文档使用。 支持主流的 CPU 类型:如 ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、Basi cStamp、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. Keil C51 uVision4 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件 开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (uVision)将这些部分组合在一起。运行 Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的 集成环境、强大的软件仿真调试工具也会令你事半功倍。 2.4 仿真软件 PROTUES 中的效果图 1.流水灯模块 2.LCD 显示模块 3.计数器和定时器 第 3 章 硬件电路设计 3.1 两位一体共阴数码管 数码管概述 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个 发光二极管单元(多一个小数点显示) ;按能显示多少个“8”可分为 1 位、2 位、 4 位等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。 共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数 码管,共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的 阴极为低电平时,相应字段就点亮,当某一字段发光二极管的阴极为高电平时, 相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴 极(COM)的数码管。共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当 某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为 7 低电平时,相应字段就不亮。 3.1.2 数码管内部结构 led 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成 “8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电 极。led 数码管常用段数一般为 7 段有的另加一个小数点,还有一种是类似于 3 位“+1”型。位数有半位,1,2,3,4,5,6,8,10 位等等,led 数码管根据 LED 的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的, 因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。 图 2 是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的 电源极性不同而已。颜色有红,绿,蓝,黄等几种。led 数码管广泛用于仪表, 时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。 下面将介绍常用 LED 数码管内部引脚图片。 3.1.3 两位一体共阴数码管和 74LS373 锁存器接口电路 3.2 LCD1602 液晶 3.2.1 LCD1602 液晶简介 工业字符型液晶,能够同时显示 16x02 即 32 个字符。 (16 列 2 行) 1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的 点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符 位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到 了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好) 。 1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显 示字符和数字) 。其特性: 3.3V 或 5V 工作电压,对比度可调 内含复位电路 提供控制命令 如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有 80 字节显示数据存储器 DDRAM 内建有 192 个 5X7 点阵的字型的字符发生器 CGROM 8 个可由用户自定义的 5X7 的字符发生器 CGRA 9 3.2.2 LCD1602 液晶引脚介绍 1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为电源地 第 2 脚:VCC 接 5V 电源正极 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时 对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器 调整对比度) 。 第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令 寄存器。 第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第 6 脚:E(或 EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行 指令。 第 714 脚:D0D7 为 8 位双向数据端。 第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。 3.2.3 LCD1602 液晶外围接口电路 3.3 串口通信 3.3.1 串口通讯概述 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发 送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根 线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比 如 IEEE488 定义并行通行状态时,规定设备线总长不得超过 20 米,并且任意两 个设备间的长度不得超过 2 米;而对于串口而言,长度可达 1200 米。典型地, 串口用于 ASCII 码字符的传输。通信使用 3 根线完成,分别是地线、发送、接收。 由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数 据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、 停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。 11 3.3.2 MAX232 接口电路 第 4 章 软件设计 4.1 程序整体流程图 主函数 中断 0中断 1定时器 T0定时器 T1 流水灯花样 1 延时 依次 亮灯 LED 个位 送字模 LED 十位 送字模 延时 1s LCD 初始化 调用写指令 调用写数据函数 LED 个位 送字模 LED 十位 计数 count 加 1 4.2 程序清单 #include “reg51.h“ unsigned char led=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/流水灯花样 char led_mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/LED 显示字模 unsigned char name_mod=“wang zhen“; unsigned char num_mod=“B12050510“; unsigned char count=0; unsigned char count1=0; sbit RS=P16; sbit RW=P17; sbit E=P15; sbit P34=P34; void delay(unsigned int count)/延时 1ms unsigned char i; while(count-) for(i=0;i0;i-) 延时 全亮、全灭闪烁 定时 count1 加 1 送字模 送字模 原地循环 13 P2=ledi; 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); unsigned char busy_check() /查忙函数 unsigned char LCD_status; RS=0; RW=1; E=1; P2=0x40; delay(2); P2=0x00; return LCD_status; void wcmd(unsigned char cmd) /写指令 while(busy_check() RS=0; RW=0; E=1; P2=0X40; P0=cmd; delay(5); P2=0x00; delay(5); void wdat(unsigned char dat)/写数据函数 while(busy_check() RS=1; RW=0; E=1; P2=0x40; delay(5); P0=dat; P2=0x00; delay(5); void Init_LCD()/初始化 LCD wcmd(0x38);/8 位,2 行显示,5*7 点阵 delay(1); wcmd(0x01);/清屏 delay(1); wcmd(0x06);/字符不动,光标右移一位 delay(1); wcmd(0x0e);/开显示,有光标,字符不闪烁 delay(1); void timer() interrupt 1 /计数器 T0 P2=0x00; /判断送字模 count1+; P0=led_modcount1%10; /求模 P2=0x20; P0=led_modcount1/10; /整除 delay(1000); void int1() interrupt 2/LCD 显示,外中断 1 unsigned char j; Init_LCD(); wcmd(0x80+0x00);/从第一行第一列开始 for(j=0;j9;j+) wdat(num_modj); wcmd(0x80+0x43); /从第二行第七列开始 for(j=0;j9;j+) wdat(name_modj); void counter() interrupt 3/定时器 T1 P2=0x00; count+; if(count=61) count=0; P0=led_modcount%10; P2=0x20; P0=led_modcount/10; 15 void main() unsigned char mod=“Welcome to test“; unsigned char mod1=“ kaifaban“; unsigned char i; P2=0x00; Init_LCD(); wcmd(0x80+0x00); for(i=0;i15;i+) wdat(modi); wcmd(0x80+0x40); for(i=0;i10;i+) wdat(mod1i); TR0=0; TMOD=0x61; TH1=0xff; TL1=0xff; IT0=1; EX0=1; ET1=ET0=1; IT1=1; EX1=1; EA=1; TR1=1; while(1) if(P34=0) TR0=1; TR0=0; 第 5 章 调试及故障分析 5.1 焊接准备阶段元器件测试、电路原理图故障分析 在焊接前,准备好所需的元件以及焊接过程当中用到的工具。然后,了解各个元件的功能, 了解功能之后,看懂电路原理图。知道整个电路正常工作的原理,为后面电路焊接过程中, 出现故障做准备。 5.2 电路焊接过程中的故障分析 在电路的焊接过程当中,根据相应的步骤,焊接相应的元件。现焊接小部件,然后焊接大 部件。在焊接有极性的元件的时候,特别注意正负极之分,比如:发光二极管,三极管,电 容等。还有在焊接芯片的时候,注意缺口对应缺口,在给底座上面插芯片的时候,注意不要 插断芯片的引脚。而且在焊接的过程当中,注意是否将整个焊盘焊接完整,有没有短路、断 路的地方。 5.3 程序编写过程中的故障分析 编写相应的程序的过程当中,首先了解主要元件,工作的原理。比如说 LCD1602 液晶显 示器,根据这个元件的功能,编写相应的程序。在用中断实现电路的控制中,了解对应的中 断号,注意个变量的定义,函数名的定义。函数之间的相互调用关系。定时/计数器在使用 的过程当中计算相应的初值。 5.4 实物演示效果 结论 这一次经
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论