版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一部分设计任务与调研…………………2第二部分设计说明…………3第三部分设计成果…………18第四部分结束语……………26第五部分致谢………………27第六部分参考文献…………28第一部分设计任务与调研1.设计的主要任务⑴要求电压表能测量0—5V之间的直流电压值,测量结果用四位共阴极LED数码显示。⑵能显示电压值的小数点后两位,当电压超出量程时报警电路报警。⑵软件用C语言编写,硬件可用实验箱或Protues仿真软件实现完整的功能演示。
⑷尽量使用较少的元器件。2.技术要求(1)设计单片机最小系统(包括复位按钮、晶振电路等)。(2)采用51单片机进行控制,显示采用共阴极四位一体LED数码管,设计硬件电路,绘制实现本设计内容的硬件电路原理图和系统的组成框图。(3)给出ADC0809(或ADC0808)的功能说明与使用方法。(4)编写本课程设计内容的软件设计,包含程序流程图和对程序注释。(5)用Keil仿真调试源程序。(6)在Proteus仿真系统上搭建设计平台。3.设计的思路、方法。(1)根据设计要求,选择AT89C51单片机为核心控制器件。
(2)A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。
(3)电压显示采用4位一体的LED数码管。
(4)LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。
第二部分设计说明1.设计方案第一种方案:数码显示器件按显示方法不同,显示器有很多种,他们是字形重叠式显示器、分段式显示器、点阵式显示器。分段式显示器有七段和八段显示之分。数码管实际就是做成了具体显示形式的发光二极管,可以显示某些预先设置的图像,显示成本低于发光二极管点阵,但是显示内容基本不可变。第二种方案:液晶是一种液态晶体,它是有机化合物,在电场作用下会产生电光效应,其特点是工作电压低、微功耗、易于和CMOS数字集成电路配合使用。这种显示器不能用直流驱动,因为直流电场会使液晶发生电化学分解反应,工作寿命短,因此必须采用交流驱动。它的结构是由一个公共电极和七个电极组成的七段字形。1602采用并口传输,速度比12864串口快1602内部集成有显示芯片,可以识别英文字母、阿拉伯数字和日语片假名,如果想做时钟还是可以的,但是可能格子有点浪费了,总共有两行每行10个,如果输入有误上行会全满,下行会全空。上行起始位置80H,下行40H。需要先输地址后输数据。直接0x30+数据,就能显示数据了。故最后在显示模块的设计中,开始想到了常用的LED显示,但是考虑的后续硬件实现的复杂性(超过10以上的LED实物连接将十分复杂),于是在同学的建议下选取了方便但是没有接触过液晶显示,因此也导致了一定程度的难度。2.核心控制的方案选择方案一:AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。方案二:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。经过以上方案比较分析可知AT的芯片要专门的编程器,STC的支持串行下载,也就是说不用买编成器喽,可以节约点喽,且AT89C51的数据存储空间为1*4=4KB,而STC89C52的存储空间为2*4=8KB,STC的芯片优于AT的。对比之下方案二要优于方案一,但要求使用51,所以这里我们采用方案一实行。3.总设计框图液晶显示电路液晶显示电路复位电路51单复位电路51单片机模块按键输入电路按键输入电路ADC0809数模转换晶振电路ADC0809数模转换晶振电路电压采集电路电压采集电路基于单片机的高精度电压表结构框图4.主要电路模块单片机作为电子秤的控制处理中心,在整个系统中起着至关重要的作用。运用所学知识对单片机进行比较、筛选,决定使用高性能、大内存、高性价比和具有通用性的AT89C51作为主控芯片。AT89C51是一种带4K字节FLASH存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51具有多样的特性,如下图2-1所示。表2-1AT89C51主要特性与MCS-51兼容·4K字节可编程FLASH存储器寿命:1000写/擦循环·数据保留时间:10年128×8位内部RAM全静态工作:0Hz-24MHz32可编程I/O线三级程序存储器锁定两个16位定时器/计数器5个中断源可编程串行通道片内振荡器和时钟电路低功耗空闲和掉电模式AT89C51单片机具有40个引脚,引脚图如图2-1所示。图2-1AT89C51单片机引脚图A/D转换芯片选择1.双通道(如ADC0809)ADC0809是美国国家半导体公司生产的一种8通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。2.逐次比较型(如TLC0831)逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。3.压频变换型(如AD650)压频变换型(Voltage-FrequencyConverter)是通过间接转换方式实现模数转换的。其原理是首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。从理论上讲这种A/D的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。其优点是分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。5.单片机主控电路设计单片机最小原理图如图2-2所示。图2-2基于单片机的最小系统图AT89C51单片机各部件功能的运行都以时钟控制信号为基准,有条不紊、一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。晶体振荡器的作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。AT89C51内部有一个用于构成振荡器的高增益反相放大器,她的输入端为芯片引脚XTAL1,输出端为引脚XTAL2.这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器。电路中的电容C7和C8的典型值通常选择为30pF。该电容的大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常是在1.2~12MHZ。晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。但反过来,运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高,即要求线间的寄生电容要小。晶体和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠的工作。为了提高温度稳定性,应采用温度稳定性能好的电容。复位是单片机的初始操作,只需给AT89C51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使AT89C51复位。当AT89C51进行复位时。PC初始化为0000H,使AT89C51单片机从程序存储器的0000H单元开始执行程序。除了进入系统的正常初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需按复位键即RST脚高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动程序。AT89C51的复位是由外部的复位电路实现的。复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。按钮复位又分为电平和脉冲两种方式。按键手动电平复位是通过RST端经电阻与电源Vcc接通来实现,该主控电路就是采用这种复位方式。单片机的31脚(EA/Vpp)接高电平时,表示允许单片机读片内程序存储器中的程序。外接晶体引脚晶振连接的内部、外部方式图6.模数转换
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0809的内部逻辑结构由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图2-3ADC0809芯片7.软件设计的组成本系统的程序采用C语言编程,所以采用KeiluVision4编程。⒈系统概述KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。下面详细介绍KeilC51开发系统各部分功能和使用。⒉KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)[9]。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,有以下注意事项:(1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。(2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。(3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。2.使用KeilC51的优点主要有以下两点:(1)KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。(2)与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。8.软件总体设计该系统由延时子函数、LCD1602写命令子函数、LCD1602写数据子函数、LCD1602初始化子函数、LCD1602写时间子函数、采样数据分离,显示子函数、ADC0809开始转换数据子函数、定时器0中断子函数、主函数和数据定义这几部分组成。图2-4该程序由一个主程序及五个子程序所组成,子程序中包括:中断程序、显示程序、数据处理程序及延时程序。如图2-5所示主程序主程序中断程序数据处理程序显示程序延时程序图2-5软件结构图中断程序是处理中断信号,当中断信号没有来得时候,那么会去处理其它指令,而当中断信号到来,它会暂时搁下现在正在处理的指令,而去处理中断指令;数据处理程序是将所需的数据转换成数码管显示的字型码送给显示程序显示;显示程序是将最终的放大倍数通过数码管显示出来。2.9软件流程图知道了软件的总体结构,下面一步便是完成软件流程图的设计,根据流程图便可以编写程序了。本次的程序采用C语言编写,图2-6为软件主程序流程图。初始化初始化将测量值转换为十进制拆为非压缩BCD码调用显示子程序图2-6主程序流程图显示程序和定时程序图2-7显示流程图图2-8定时流程图
第三部分设计成果1.软件的调试软件调试过程有结合KeilC51软件进行调试。本次课题共有一个主程序两个子程序。程序编写遵循自顶向下的设计、模块化编程和结构化编程。调试过程要遵循先独立后联机、先分块后组合、先单步后连续。在KeilC51软件上确认程序无误再结合硬件进行整体调试,确保系统实现预期目标。在KeilC51软件上将程序保存为HEX格式。图3-1保存为HEX格式通过stc-isp-v3.8软件将程序烧进单片机开发板上的AT89C51芯片。图3-2stc-isp-v3.8界面将AT89C51单片机插入硬件系统进行调试,逐渐实现预期目标。软件测试需要遵循,先整体,再分步,再整体的原则。也就是首先要对整体进行编写测试,如果有问题,则一步一步执行,一步一步检查。比如:显示程序,一步一步进行排查。最后再联系起来总体调试,这样提高了检查效率,增加了成功率。2.原理图及代码图3-3proteus模拟图图3-4原理图代码:#include<reg51.h>#include"LCD1602.h"#include"ADC0808.h"voiddisplay(void){ uchar*str; str=dispbuf; zfc(2,3,str);}voidmain(void){lcd_csh(); //液晶初始化; zfc(1,0,"TEL);while(1) { qidong(); display(); delay(20); }}typedefunsignedcharuchar;typedefunsignedintuint;sbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2; voiddelay(uintz) //nms延时; { uintx,y; for(y=0;y<z;y++) for(x=120;x>0;x--); }//读状态是否忙 voidlcd_wait(void) { RS=0; RW=1; E=1; delay(2); E=0;}//写状态voidlcd_order(ucharorder,uchart){ if(t==1) lcd_wait(); //t=1,检测忙;t=0,不检测; RS=0; RW=0; P0=order; E=0; delay(1); E=1; delay(1); E=0;}//写数据voidlcd_data(ucharxiedata){ lcd_wait(); RS=1; RW=0; P0=xiedata; E=0; delay(1); E=1; delay(1); E=0;}//初始化voidlcd_csh(void){ delay(15); lcd_order(0x38,0); delay(5); lcd_order(0x38,0); delay(5); lcd_order(0x38,1); lcd_order(0x08,1); lcd_order(0x01,1); lcd_order(0x06,1); lcd_order(0x0c,1);}//显示控制 从第1或2行,第i位(i=0为第一位)开始输入字符串以及字符数组voidzfc(uinthang,uchari,uchar*zf)//hang=1为液晶第一行,hang=2为液晶第二行{ uchark; //显示字符串以及字符数组 if(hang==1) k=0x80+i;elseif(hang==2) k=0xb0+16+i; while(*zf!='\0')//为了便于对字符数组进行操作,数组最后位加一位'\0'. { lcd_order(k++,1); lcd_data(*zf); zf++; }}uchardispbuf[8]={0},getdata;longtemp; ucharj=200;sbitST=P3^0;sbitOE=P3^1; sbitEOC=P3^2;voidqidong(void){ ST=0; OE=0; ST=1; ST=0; while(j--);if(EOC==1){ OE=1; getdata=P1;//三态门打开,读出数据; OE=0; temp=getdata; temp=temp*10000; //先放大10000倍,然后再除以11.5909; temp=temp/11.5909; dispbuf[0]=temp/100000+'0'; dispbuf[1]=temp%100000/10000+'0'; dispbuf[2]=temp%10000/1000+'0'; dispbuf[3]='.'; dispbuf[4]=temp%1000/100+'0'; dispbuf[5]=temp%100/10+'0'; dispbuf[6]=temp%10+'0'; dispbuf[7]='v'; ST=1; ST=0; }}
第四部分结束语经过一段时间的努力,毕业设计基于单片机的数字电压表基本完成。但设计中的不足之处仍然存在。在电路中用Proteus软件实现了仿真,在这过程中,使我对电路设计和单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关注三年级孩子的个性化发展:班主任工作计划
- 【名师一号】2020-2021学年高中英语(人教版)必修一双基限时练6
- 【先学后教新思路】2020高考物理一轮复习-教案5-电学设计性实验的处理
- 2025年八年级统编版语文寒假复习 专题03 文言文阅读(考点剖析+对点训练)
- 2021高考化学考前冲刺40天练习:专题3-氧化还原反应1
- 江苏省扬州市江都区2024-2025学年九年级上学期1月期末历史试题(含答案)
- 二年级蜗牛爬井详细解题思路
- 八年级下英语单词
- 2024-2025学年内蒙古呼伦贝尔市扎兰屯市九年级(上)期末英语试卷(含答案)
- 【创新设计】2021高考化学(江苏专用)二轮专题提升练:第4讲-物质结构和元素周期律(含新题及解析)
- 朗诵社团活动教案
- 宜宾市翠屏区2022-2023学年七年级上学期期末地理试题
- 七年级历史下册教学工作计划
- 汽车智能座舱交互体验测试评价规程
- 热工基础课后答案超详细版(张学学)
- 食品工艺学(鲁东大学)智慧树知到期末考试答案2024年
- 工地食堂经营方案及计划书
- 2024年汽车驾驶员高级证考试题库及答案
- 正畸计划书模板
- 空中交通管制基础
- 供应商竞价比价表
评论
0/150
提交评论