1、学 号 XXXX大学 单片机原理及应用A课程设计 设计说明书 四种波形发生器 起止日期: 2017 年 5 月 29 日至 2017 年 6 月 9日 学生姓名 班级 成绩 指导教师(签字) 控制与机械工程学院 2017年 6月9 日 目录 绪论 1 1、设计目得 2 2、课程设计题目与实现目标ﻩ3 3、设计方案ﻩ4 4、主要芯片介绍ﻩ5 4、程序流程图 9 5、Proteus仿真原理图 10 6、设计心得体会ﻩ11 参考文献ﻩ12 绪论 近年来,随着电子技术与微机计算机得迅速发展,单片机得档次
2、不断提高,其应用领域也在不断得扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛得应用,成为现代电子系统中最重要得智能化得核心部件。 单片机即单片微型计算机。(Single—Chip Microputer ),就是集 CPU ,RAM ,ROM ,定时,计数与多种接口于一体得微控制器.它体积小,成本低,功能强,广泛应用于工业自动化上与智能产品。 本次基于51系列单片机实验平台开发课程设计,就是根据我们所学习得单片机课程,按照大纲要求对我们进行得一次课程检验,就是进行单片机课程训练得必要任务,也对我们掌握单片机应用有很大得帮
3、助。掌握单片机技术就是一门不可或缺得技术,对我们将来得工作以及生活与学习都有很密切得联系。实验主要包括,以STC89C52RC单片机作为核心板,实现电路原理图设计, LCD显示模块、串口通信模块、数码管显示模块、LED流水灯、按键操作等电路得设计、焊接与仿真。编程软件采用keil 4及proteus 7、8仿真软件进行仿真. 1、设计目得 (1)利用所学单片机得理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们得综合应用能力。ﻫ (2)我们这次得课程设计就是以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变得函数发生器。
4、 (3)掌握各个接口芯片(如0832等)得功能特性及接口方法,并能运用其实现一个简单得微机应用系统功能器件。 (4)在平时得学习中,我们所学得知识大都就是课本上得,在机房得练习大家也都就是分散得对各个章节得内容进行练习.因此,缺乏一种系统得设计锻炼。在课程所学结束以后,这样得课程设计十分有助于学生得知识系统得总结到一起。 (5)通过这几个波形进行组合形成了一个函数发生器,使得我对系统得整个框架得设计有了一个很好得锻炼.这不仅有助于大家找到自己感兴趣得题目,更可以锻炼大家微机知识得应用. ﻬ2、课程设计题目与实现目标 本次课程设计得题目就是;制作一个波形发生器,产生
5、周期可调得方波、锯齿波、三角波、正弦波信号,不同波形用不同符号显示在一个LED上,用一个LCD显示幅值与频率。 本次课程设计得目标:设计一个波形发生器,带有四个按钮,分别就是波形选择、增加频率、减少频率、调节幅度,并带有一个LCD与一个LED,LED用来显示波形得符号LCD用来显示频率、幅值。波形符号用1表示正弦波,2表示三角波,3表示方波,4表示锯齿波.频率得调节幅度就是10HZ,幅值调节幅度分别就是0、2V,0、02V,0、3V,0、4V。 ﻬ3、设计方案 本次设计采用AT89C51及其外围扩展系统与PCF8591,软件方面主要就是应用C语言设计程序。系统以AT89C51
6、为核心,配置相应得外设及接口电路,用Keil C及Proteus等软件开发,用C语言编程,组成一个多功能信号发生器。用户通过按键选择输出实验室中经常使用到得几种基本波形:方波、锯齿波、正弦波与三角波。方波由AT89C51单片机将最大值与最小值输出给D/A进行转换,并由用户通过键盘选择波形周期. 可采用单片机程序产生以上4种波形,并通过一片D/A转换器输出。另外,采用一片D/A转换器来控制前一片D/A转换器得参考电压,从而可以改变输出波形幅值。通过外接键盘来设定波形得类型、幅值与频率。 4、主要芯片介绍 (1) 、PCF8591芯片介绍: PCF8591就是一个单片集成
7、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出与1个串行I²C总线接口。PCF8591得3个地址引脚A0, A1与A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外得硬件.在PCF8591器件上输入输出得地址、控制与数据信号都就是通过双线双向I2C总线以串行得方式进行传输。 图1 PCF8591工作原理图 DAC0832得外部引脚及功能介绍图如下: 图2 PCF8591引脚图 AIN0~AIN3:模拟信号输入端。 A0~A2:引脚地址端。 VDD、VSS:电源端。(2、5~6V) SDA
8、SCL:I2C 总线得数据线、时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端。 (2)单片机AT89S52介绍: AT89S52 就是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令与引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器.在单芯片上,拥有灵巧得8 位CPU 与在系统可编程Flash,使得
9、AT89S52为众多嵌入式控制应用系统提供高灵活、超有效得解决方案. AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,瞧门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作.掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 图3 AT89S52引脚图 AT89S52管脚说明: VCC:供电
10、电压。 GND:接地. P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口得管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址得第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口就是一个内部提供上拉电阻得8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这就是由于内部上拉得缘故。在FLASH编程与校验时,P1口作为第八位地址接收。 P
11、2口:P2口为一个内部上拉电阻得8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口得管脚被外部拉低,将输出电流。这就是由于内部上拉得缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址得高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器得内容。P2口在FLASH编程与校验时接收高八位地址信号与控制信号。 P3口:P3口管脚就是8个带内部上拉电阻得双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”
12、后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这就是由于上拉得缘故. RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期得高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许得输出电平用于锁存地址得地位字节.在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变得频率周期输出正脉冲信号,此频率为振荡器频率得1/6.因此它可用作对外部输出得脉冲或用于定时目得.然而要注意得就是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE得输出可在SFR8EH地址上置0。此时, ALE只有在执行MO
13、VX,MOVC指令就是ALE才起作用.另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效. PSEN:外部程序存储器得选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效得/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管就是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器得输入及内部时钟
14、工作电路得输入。 XTAL2:来自反向振荡器得输出。 (3)LCD1602介绍: 1602液晶也叫1602字符型液晶,它就是一种专门用来显示字母、数字、符号等得点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距得间隔,每行之间也有间隔,起到了字符间距与行间距得作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD就是指显示得内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符与数字)。 图4 LCD1602引脚图 LCD1602采用标准得16脚接口,其中:
15、 第1引脚:GND为电源地 第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脚:空脚或
16、背灯电源。第15引脚背光正极,第16引脚背光负极。 4、程序流程图 初始化,设置常量与指针 按键1按下 按键1按下 按键1按下 跳转到主程序 N N N 开始 LCD 调用正弦波输出程序,输出一个周期得正弦波 LCD 调用三角波输出程序,输出一个周期得三角波 LCD 调用方波输出程序,输出一个周期得方波 LCD 调用锯齿波输出程序,输出一个周期得锯齿波 按键1按下 5、Proteus仿真原理图 ﻬ6、设计心得体会 课程设计就是培养学生综合运用所学知识,发现,提出,分析与解决实际问题,锻炼实
17、践能力得重要环节,就是对学生实际工作能力得具体训练与考察过程、随着科学技术发展得日新日异,单片机已经成为当今计算机应用中空前活跃得领域, 在生活中可以说得就是无处不在。因此作为二十一世纪得大学来说掌握单片机得开发技术就是十分重要得。 通过这次课程设计,我不仅加深了对单片机理论得理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们坚持不懈与合作精神,让我们不断超越自己。课堂上没有见过真正得单片机 ,只就是从理论上去理解 ,枯燥乏味,这次得实训 ,让我大开眼界,提高了单片机知识得理解与运用水平 ,从选题到定稿,从理论到实践,在整整两星期得日子里,可以学到很多很多得得东西,同时不仅可以巩固了以前所学过得知识,而且学到了很多在书本上所没有学到过得知识.通过这次课程设计我也发现了自身存在得不足之处,虽然感觉理论上已经掌握,但在运用到实践得过程中仍有意想不到得困惑,经过一番努力才得以解决。 最后再次感谢老师与同学们得帮助. 参考文献: [1] 毅刚,彭喜元、 单片机原理与应用设计、 北京:电子工业出版社、 [2](美)Richard Blum著;马朝晖等译;汇编语言程序设计 北京:机械工业出版社






