八路电压循回检测系统_第1页
八路电压循回检测系统_第2页
八路电压循回检测系统_第3页
八路电压循回检测系统_第4页
八路电压循回检测系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

吉林工程技术师范学院课程设计论文单片机应用设计课程设计论文 八路电压循回检测系统院系:信息工程学院专业: 通信工程 班级: 0942 姓名: 闫彪 学号: 25 指导教师: 2011年 12 月 23日 目录第一章 绪论31.1 课程设计的目的及意义31.2 单片机的应用及前景3第二章 系统总体方案42.1 设计要求42.2 硬件系统设计42.2.1 总体方案设计42.2.2 系统总图如下42.3 元件介绍52.3.1 AT89C51 单片机52.3.2 ADC0808数模转换简介62.3.3 74LS595介绍7第三章 软件编程93.1 仿真程序93.2 仿真结果113.3 测试程序11第四章 Proteus和Keil软件介绍154.1 Proteus简介154.1.1 Proteus主界面164.1.2 电路仿真164.2 Keil 介绍174.2.1 Keil软件简介:174.2.2 Keil 软件的使用方法18第五章 总结与展望21第六章 致谢22参考文献23附录24附录二25第一章 绪论1.1 课程设计的目的及意义 1. 单片机原理及应用是一门专业基础课,是一门实践性很强的课程,单片机课程设计要求将所学的理论知识通过实践加强理解和认识,提高学生们的单片机接口电路的设计能力和动手能力。初步掌握简单单片机应用的系统设计、制作、调试的方法。提高动手实践能力、提高科学的思维能力。 2.使学生具备作为电子与信息技术生产、服务和管理领域工作额的高素质,同时具备高级专门技术人才所应具备的电子设计自动化的基础知识、基本技能。 3.通过单片机控制课程设计,学生能够掌握智能化控制系统及电子产品开发的一般过程,其中包括系统整体设计、硬件电路调试、软件编程调试、结果数据分析等多方面的内容。 1.2 单片机的应用及前景 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 关键词:GSM GS100 AT89C51 Voltage circuit testing 电压巡回检测Single-chip microcomputer 单片机第2章 系统总体方案2.1 设计要求 1.用AT89C51与AD0C808构成8路巡回检测系统。 2.采样周期为1秒,即间隔1秒对个通道轮流采集一个数据,每个通道均采用1024个数据。采集的数据可存放在外部RAM中,数据存放的次序应于通道号一致 3.A/D转换结束的检测方式,可采用延时、查询和中断任意一种方式。 4.数字量由单片机转换成十进制数后送到LED显示器显示。2.2 硬件系统设计 2.2.1 总体方案设计显示器数据存储器单片机检测系统 2.2.2 系统总图如下 图2-1(系统总图)2.3 元件介绍2.3.1 AT89C51 单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1、 主要特性l 与MCS-51 兼容l 4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年l 全静态工作:0Hz-24Hzl 三级程序存储器锁定l 128*8位内部RAMl 32可编程I/O线l 两个16位定时器/计数器l 5个中断源 l 可编程串行通道l 低功耗的闲置和掉电模式l 片内振荡器和时钟电路 图2-2(AD89C51引脚图) 2、管脚说明VCC:供电电压。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口作为第八位地址接收。P2口: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”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。2.3.2 ADC0808数模转换简介 ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。 图2-3(ADC0808管脚图)1. 内部结构 ADC0808是CMOS单片型逐次逼近式AD转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。 2.引脚功能ADC0808芯片有28条引脚,如图所示。各引脚功能如下:15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路2.3.3 74LS595介绍 图2-4(74LS595管脚图)引脚功能:O1O7(17脚):八路并行输出端,可以直接控制数码管的8个段。QH(9脚):级联输出端,接下一个的SERSER(14脚):串行数据输入端/SRCLR(10脚):低电平时将移位寄存器的数据清零,通常将他接VCCSRCLK(11脚):上升沿时数据寄存器的数据移位,(脉冲宽度通常选微秒级的)RCLK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器。/G(13脚):高电平时禁止输出(高阻态),可以用一引脚控制达到闪烁和熄灭功能,也可直接接低电平。第3章 软件编程3.1 仿真程序11#include#include #include #define ad_con P2 #define addata P0 #define disdata P1#define uchar unsigned char#define uint unsigned intuchar number=0x00;sbit disx=disdata7;sbit ALE=P23;sbit START=P24;sbit OE=P25;sbit EOC=P37;sbit KEY1=P35;sbit KEY2=P36;sbit FLAG=PSW7;void tongdao()ucharcode dis_711=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;uchar code scan_con4=0xfe,0xfd,0xfb,0xf7;uchar data ad_data8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uint data dis5=0x00,0x00,0x00,0x00,0x00;/=延时子函数/void tongdao()float l;uchar k,i;int g;do if(KEY2=0)delay(5);if(KEY2=0)while(!KEY2);number+;if(number=8)number=0;dis3=number;i=ad_datanumber;l=i*1.0/255*500;g=l;dis0=g%10;g=g/10;dis1=g%10;dis2=g/10;for(k=0;k4;k+)isdata=dis_7disk;if(k=2)disx=0;P3=scan_conk;delay(5);P3=0xff;while(KEY1=1); void scan()float l;uchar k,n,m,i;int h,g;dis3=0x00;for(n=0;n8;n+) i=ad_datan;l=i*1.0/255*500;g=(int)l;dis0=g%10;g=g/10;dis1=g%10;dis2=g/10;for(h=0;h30;h+) for(k=0;k4;k+) if(KEY2=0)tongdao();disdata=dis_7disk;if(k=2)disx=0;P3=scan_conk;delay(5);P3=0xff;dis3+;if(dis3=8)dis3=0;/=AD 转换子函数/test()uchar m;uchar s=0x00;ad_con=s;for(m=0;m8;m+)ALE=1;_nop_();_nop_();ALE=0;START=1;_nop_();_nop_();START=0;_nop_();_nop_();_nop_();_nop_();_nop_();while(EOC=0);OE=1;ad_datam=addata;OE=0;s+;ad_con=s;ad_con=0x00;/=主函数/main()P0=0XFF;P2=0X00;P1=0XFF;P3=0XFF;while(1)test();scan();3.2 仿真结果 图3-1(仿真结果)3.3 测试程序1.#includeunsigned char temp;unsigned char dispBuffer14=0x00,0x01,0x02,0x03;unsigned char dispcode10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit oclk=P32;/=/ void delay1ms(unsigned int ms)/延时1毫秒(不够精确的) unsigned int i,j; for(i=0;ims;i+) for(j=0;j120;j+); /=/void main()unsigned char w; TMOD=0x00;while(1) for (w=4; w8; w+)SBUF=dispcodew;while(TI=0);/delay1ms(100);TI=0;oclk=0;delay1ms(1); oclk=1;delay1ms(1);2.#include#includeunsigned char temp;unsigned int tempdata;unsigned char dispcode10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit oclk=P32;unsigned char TempBuffer15;sbit start=P10;sbit oe=P11;sbit clk=P12;sbit ale=P13;sbit eoc=P14;/=/ void delay1ms(unsigned int ms)/延时1毫秒(不够精确的) unsigned int i,j;26 for(i=0;ims;i+) for(j=0;j120;j+); /=/void adcconver()ale=1;_nop_();ale=0;_nop_();start=1;_nop_();start=0;_nop_(); while(eoc=0);oe=1;temp=P0;oe=0;/=/ 测量电压最大值为5Vvoid valconver()TempBuffer11=temp / 51;TempBuffer14=temp % 51;tempdata=TempBuffer14 * 10;TempBuffer12=tempdata / 51;TempBuffer14=tempdata % 51;tempdata=TempBuffer14 * 10;TempBuffer13=tempdata / 51;/*TempBuffer11=temp/100;TempBuffer14=temp%100;TempBuffer12=TempBuffer14/10;TempBuffer13=TempBuffer14%10; */=/void main()unsigned char w; TempBuffer10=0X00;TMOD=0x02;TH0=0XFF;TL0=0XFF; TR0=1; ET0=1;EA=1;while(1) P2=0X00; adcconver(); valconver(); for (w=0; w4; w+)SBUF=dispcodeTempBuffer1w;while(TI=0);/delay1ms(100);TI=0;oclk=0;delay1ms(1); oclk=1;delay1ms(1);/=/void timerupt() interrupt 3clk=clk;/=/第4章 Proteus和Keil软件介绍4.1 Proteus简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: 1原理布图 2PCB自动或人工布线 3SPICE电路仿真 革命性的特点 1互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。4.1.1 Proteus主界面 图4-1(Proteus界面) 选择元件:P按钮 图4-2(查找器件)4.1.2 电路仿真1. 打开原理图 图4-3(打开原理图)2. 在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX.双击U1 图4-4(添加主程序)点击运行按钮,运行程序 图4-5(程序运行结果)4.2 Keil 介绍4.2.1 Keil软件简介: Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成强大的软件仿真调试工具也会令你事半功Keil 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,汇编语言和 C 语言的程序设计,界面友好,易学易用。 4.2.2 Keil 软件的使用方法 (1)进入Keil后,屏幕如下图所示。几秒钟后出现编辑界 图4-6(Keil C51后的编辑界面)(2)新建工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项 图4-7(新建工程) 然后选择你要保存的路径,输入工程文件的名字,比如保存到E盘的YB文件夹里,工程文件的名字为YB如下图所示,然后点击保存. 图4-8(项目文件存储位置) 这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定. 图4-9(选择单片机型号)完成上一步骤后,屏幕如下图所示 图4-10到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。(2) 添加程序 图4-11(添加C程序)生成.Hex文件 图4-12单击确定 图4-13(编译生成.Hex文件)再点击编译按钮即可生成.Hex文件 第五章 总结与展望 首先,在本次课程设计中,我感觉到了设计的快乐,并且学到了许多关于单片机的知识,在实际安装调试的过程中,我遇到了许多困难,当经过老师的指导我们都完成了本次课设,也通过这次的课程设计让我对单片机产生了浓厚的兴趣,使我知道单片机在我们生活当中是多么的重要,尽量把所学到的知识用到生活中去。 其次,通过本次单片机课程设计,让我收获很多。我实实在在的了解到了单片机是一门应用性和实践性很强的学科,并且对单片机的最小系统也有了更深层的掌握。除此之外,通过这次课程设计我也熟悉了PROTUES软件和Keil软件。 最后,这次课程设计提高了我对综合知识整理和提纯的能力,把所学的知识进一步的了解和记忆,为以后的工作和学习打下基础。在试验的过程中,我遇到了很多问题,大家在一起研究,有时会因为一个问题而争论不休,但当问题解决的时候又觉得非常有成就感,似乎把之前所付出的辛苦都忘在了脑后。我学会了团结互助,学会了团队的力量,也历练了自己,提高了自己自身的修养与素质。在试验中也得到了工作的经验,相信自己以后可以把每一件事都做好。第6章 致谢 本次课程设计要感谢罗薇、吉李满老师,从课设开始到结束,老师都一直在指导我们,我们在这个过程和中遇到了很多的问题,感谢老师给我们的讲解,让我们真正的学到了知识,要不是老师们的帮助,我们不可能顺利的完成本次课程设计,再次向罗薇老师、吉李满老师表示感谢!参考文献1 张毅刚,单片机原理及应用,高等教育出版社,2006年12月;2 李广弟等。单片机基础M.北京航空航天出版社,2001.3 王东峰等。单片机C语言应用100例M.电子工业出版社,2009.4 陈海宴.51单片机原理及应用M.北京航空航天大学出版社,2010.5 李平等.单片机入门与开发M.机械工业出版社,2008.附录 附录二所用的c语言程序:#include#include #include #define ad_con P2 #define addata P0 #define disdata P1#define uchar unsigned char#define uint unsigned intuchar number=0x00;sbit disx=disdata7;sbit ALE=P23;sbit START=P24;sbit OE=P25;sbit EOC=P37;sbit KEY1=P35;sbit KEY2=P36;sbit FLAG=PSW7;void tongdao()ucharcode dis_711=0xc0,0xf9,0xa4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论