




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与电气工程学院课程设计说明书(2010 /2011学年第 2学期)课程名称 : 单片机应用课程设计 题 目 : 简易直流数字电压表 专业班级 : 学生姓名 : 学 号: 指导教师 : 杨怡君 设计周数 : 二 周 设计成绩 : 2011 年 6 月 24 日一:课设目的 用STC90C52AD单片机作为核心控制器,设计简易直流电压表。合理分配地址,编写系统程序。我们这里设计的简易直流电压表没有使用特别多的、复杂的元器件,只是一个单片机控制系统和数码管附加驱动器件,它的特点是电路简单、制作方便、操作简单、性能可靠。二:技术要求基于STC90C52AD单片机的最小系统设计,设计简易直流电压表,3位数码管显示控制方案要求: 确定总体设计方案;设计显示电路;合理分配地址,编写系统程序;利用Protel设计硬件原理图;软硬件联机调试。:开发软件Keil C51 uVision3简介Keil uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持、PLM、汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。基本环境如图2-1所示:MCS-51单片机软件Keil C51开发过程为:建立一个工程项目,选择芯片,确定选项。建立汇编源文件或C源文件。用项目管理器生成各种应用文件。检查并修改源文件中的错误。上图所示即为该软件的运行界面编译连接通过后进行软件模拟仿真或硬件在线仿真。单片机程序烧写软件STC90C52AD系列单片机大部分具有在系统可编程特性,单片机在用户系统上即可现在烧录用户程序,而无需将单片机从已经生产好的产品上拆下,在用通用编程器进行烧写程序。大部分STC90C50AD系列单片机在销售给用户之前已经在单片机系统内部固化啦ISP系统引导程序配合PC端得控制程序即可将用户的程序代码下载进单片机内部,故无需编程器烧写程序。三:总体设计方案3.1 数码管显示电路显示电路中单片机STC90C52AD的P2口,通过总线驱动74LS245直接驱动8段数码管,完成字形码的输出(字形选择)。而P1.0-P1.2控制3位数码管的位选信号。当P1.0-P1.2为低电平时PNP的三极管选通,通过给P2口赋不同的段选值,数码管显示不同的数字。低电平点亮数码管。由于各位的段码线并联,P2口输出的段码对各个显示位来说都是相同的,但是数字电压表要求第一位带有小数点,所以第一个数码管要对小数点显示程序进行设计。数码管动态显示,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选处于关闭状态,这样,在同一时刻,3位LED中只有选通的那一位显示出字符,而其他三位则是熄灭的。同样,虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余晖和人眼的视觉暂留作用,每位显示间隔时间较短,造成各位同时亮的假象,达到显示的效果。数码显示模块程序如下:void display(ulong i) /数码管显示函数uint a=0,b=0;uchar table010=0X21,0X7D,0X13,0X19,0X4D, 0X89,0X81,0X3D,0X01,0X09; /09段码uchar table13=0XFE,0XFD,0XFB; /三个数码管的位码 uchar table23=0,0,0;table20=i/100;table21=i%100/10;table22=i%10;for(b=0;b50;b+)for(a=0;a3;a+)P0=table1a;P2=table0table2a;if(a=0)P2=table0table2a-0X01; /是第一个数后面显示小数点delay(1);LED灯显示通过P1口连接,当P1口给低电平时,灯亮。3.2 A/D模数转换电路四:系统各部分电路的选择和设计4.1系统的工作原理本简易数字电压表的主要功能是通过将模拟量的输入通过AD转换方式,并通过数码管显示的控制方案,并附带了单片机和PC机之间通讯接口(烧写程序用的串口,与PC机实现通信实际也是经过串口来进行数据的通信)。系统结构包括单片机最小控制系统部分、驱动电路、数码管显示电路。模拟量输入STC90C52AD单片机最小控制系统AD转换数码管显示4.2 STC90C52AD单片机简介对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。所以,我们选用51系列单片机STC90C52AD。STC90C52AD是中国宏晶公司生产的低功耗,高性能8位单片机,片内含8KB的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了 Flash 程序存储器,既可在线编程(ISP),也可用传统方法进行编程,因此,低价位STC90C52AD单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。该单片机还内部带有8路10位的AD模数转换电路,省去本系统运用AD采集数据二需要外接专门的AD转换芯片的麻烦,是得系统设计更为简单。单片机STC90C52AD具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。利用单片机STC90C52AD设计一个数字电压表,能够测量05V之间的直流电压值,三位数码显示。STC90C52AD单片机是新一代的超强抗干扰/高速/低功耗的单片机,指令代码完全兼容系统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率12MHZ以下时,复位脚可直接接地。本次试验应用了该单片机的A/D转换模块和显示模块。STC90C52AD具有如下特点:(1)增强型6时钟/机器时钟,12时钟/机器时钟 8051 CPU;(2)工作电压:5.5V-3.8V/3.6V-2.4V;(3)工作频率范围:0-40MHZ,相当于普通8051的0-80MHZ;(4)片上集成 256+4096字节RAM;(5)通用I/O口,复位后为:P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口)P0口是开端输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;(6)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3-5秒即可完成一片;(7) EEPROM功能和看门狗电路;(8)内部集成MAX810专用复位电路,时钟频率12MHZ以下时,复位脚可直接接地;(9)通用异步串行口(UART),还可用定时器软件实现多个UART;(10)工作温度范围:0-75/-40-+85;(11)封装: LQFP-44,PDIP-40,PLCC-44。4.3 STC90C52AD单片机的引脚功能以及最小控制系统图4.2 单片机控制系统单片机芯片STC90C52AD为40引脚双列直插式封装。其各个引脚功能介绍如下,芯片STC90C52AD的引脚排列和逻辑符号如图4-2 所示。各引脚分别为:VCC:供电电压GND:接地P0口P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。要是P0口输出高电平,必须外接上拉电阻。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入”1”后,电位被内部上拉为高可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。另外P1口作为AD的模拟信号输入口,次功能需通过设置单片机的特殊功能寄存器来选择,如下所示四个寄存器:sfr P1_ADC_EN=0X97;sfr ADC_CONTR=0XC5;sfr ADC_DATA=0XC6;sfr ADC_LOW2=0XC7;P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流当P2口被写”1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址”1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入”1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。RST:复位输入端。当振荡器复位时,要保持RST两个机器周期的高电平时间。PSEN外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)复位电路已经外部振荡电路的设计单片机的复位电路如上图所示。该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过R8电阻给复位输入端口一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C2构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。外部晶振电路为单片机系统提供时钟。五 系统软件设计5.1 编程语言选择51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,C 语言很好的结构性和模块化更容易阅读和维护,用C 编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题这样就减少了开发和调试的时间,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。5.2 主程序的设计结束开始模拟量输入单片机内部的AD转换部分动态显示结果5.3 主要程序#include#include#include#define uint unsigned int /宏定义#define uchar unsigned char#define ulong unsigned longvoid delay(uint z) /延时函数uint x,y;for(x=100;x0;x-)for(y=z;y0;y-);void display(ulong i) /数码管显示函数uint a=0,b=0;uchar table010=0X21,0X7D,0X13,0X19,0X4D, 0X89,0X81,0X3D,0X01,0X09; /09段码 uchar table13=0XFE,0XFD,0XFB;/三个数码管的位码 uchar table23=0,0,0;table20=i/100;table21=i%100/10;table22=i%10;for(b=0;b50;b+)for(a=0;a3;a+)P0=table1a;P2=table0table2a;if(a=0)P2=table0table2a-0X01; /是第一个数后面显示小数点delay(1);/ADC转换函数float ADC_transform()uint AD_finished=0; /转换结束标志float DATA=0;P1=0X01;/P1.0口为AD转换用,先设置为1P1_ADC_EN=0x01;/P1.0口作为AD使用,自动断开内部上拉ADC_CONTR=0X02;/1次AD转换需要178个时钟,P1.0口作为AD的输入口 /清零转换结束标志位ADC_DATA=0;/清零数据寄存器delay(1); /使输入电压达到稳定ADC_CONTR=0X28; /开始转换AD_finished=0;while(AD_finished=0)AD_finished=(ADC_CONTR&0X10);ADC_CONTR&=0XF7;/令ADC_START=0,关闭ADDATA=ADC_DATA*4+ADC_LOW2;return(DATA);/主函数 void main()float voltage;ulong result;while(1)voltage=ADC_transform();result=voltage*5/1024*100;display(result);5.4 数码管显示电路的仿真图六 课程设计总结本次课程设计在大家的共同努力下以很高的效率完成。本次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄石市中储粮2025秋招面试典型题目及答案
- 宁德市中储粮2025秋招网申填写模板含开放题范文
- 临汾市中石油2025秋招笔试模拟题含答案炼油设备技术岗
- 大唐电力德阳市2025秋招面试专业追问及参考电气工程岗
- 中国广电常州市2025秋招笔试行测题库及答案互联网运营
- 大唐电力苏州市2025秋招面试专业追问及参考计算机与信息岗位
- 中国移动许昌市2025秋招笔试模拟题及答案
- 2025年宠物饲养考试题及答案
- 中国联通湖南地区2025秋招市场与服务类专业追问清单及参考回答
- 芜湖市中石油2025秋招面试半结构化模拟题及答案油品分析质检岗
- 教师岗位聘任申请书模板合集
- 2025年贵州省毕节市辅警招聘考试题库及答案
- 巴中市恩阳区2025年专项招聘卫生专业技术人员的(50人)考试参考题库及答案解析
- 2025-2026学年人教版(2024)小学体育与健康二年级全一册《防溺水知危险》教学设计
- 出海作业安全培训课件
- 9.2 排鱼求数 课件 北京版数学三年级上册
- 监理现场管理知识培训课件
- GJB3206B-2022技术状态管理
- 2025秋人教版(2024)二年级上册数学教学计划
- 桥梁河床断面测量课件
- 中药质量检测技术
评论
0/150
提交评论