收藏 分销(赏)

八路电压循回检验系统.doc

上传人:精*** 文档编号:3033781 上传时间:2024-06-13 格式:DOC 页数:28 大小:1,023.03KB 下载积分:10 金币
下载 相关 举报
八路电压循回检验系统.doc_第1页
第1页 / 共28页
八路电压循回检验系统.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
单片机应用设计课程设计论文 ——八路电压循回检测系统 院系:信息工程学院 专业: 通信工程 班级: 0942 姓名: 闫彪 学号: 25 指引教师: 12 月 23日 目录 第一章 绪论 3 1.1 课程设计目及意义 3 1.2 单片机应用及前景 3 第二章 系统总体方案 4 2.1 设计规定 4 2.2 硬件系统设计 4 2.2.1 总体方案设计 4 2.2.2 系统总图如下 4 2.3 元件简介 5 2.3.1 AT89C51 单片机 5 2.3.2 ADC0808数模转换简介 6 2.3.3 74LS595简介 7 第三章 软件编程 9 3.1 仿真程序 9 3.2 仿真成果 11 3.3 测试程序 11 第四章 Proteus和Keil软件简介 15 4.1 Proteus简介 15 4.1.1 Proteus主界面 16 4.1.2 电路仿真 16 4.2 Keil 简介 17 4.2.1 Keil软件简介: 17 4.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.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字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)低电压,高性能CMOS8位微解决器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器单片机。单片机可擦除只读存储器可以重复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业原则MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMELAT89C51是一种高效微控制器,AT89C2051是它一种精简版本。AT89C单片机为诸多嵌入式控制系统提供了一种灵活性高且价廉方案。 1、 重要特性 l 与MCS-51 兼容 l 4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保存时间: l 全静态工作:0Hz-24Hz l 三级程序存储器锁定 l 128*8位内部RAM l 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单片型逐次逼近式A/D转换器,它有8路模仿开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。 2.引脚功能 ADC0808芯片有28条引脚,如图所示。各引脚功能如下: 1~5和26~28(IN0~IN7):8路模仿量输入端。    8、14、15和17~21:8位数字量输出端。   22(ALE):地址锁存容许信号,输入,高电平有效。   6(START): A/D转换启动脉冲输入端,输入一种正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。    7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一种高电平(转换期间始终为低电平)。    9(OE):数据输出容许信号,输入,高电平有效。当A/D转换结束时,此端输入一种高电平,才干打开输出三态门,输出数字量。    10(CLK):时钟脉冲输入端。规定期钟频率不高于640KHZ。    12(VREF(+))和16(VREF(-)):参照电压输入端   11(Vcc):主电源输入端。    13(GND):地。    23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模仿输入中一路 2.3.3 74LS595简介 图2-4(74LS595管脚图) 引脚功能: O1~O7(1~7脚): 八路并行输出端,可以直接控制数码管8个段。 QH(9脚):级联输出端,接下一种SER SER(14脚):串行数据输入端 /SRCLR(10脚):低电平时将移位寄存器数据清零,普通将她接VCC SRCLK(11脚):上升沿时数据寄存器数据移位,(脉冲宽度普通选微秒级) RCLK(12脚):上升沿时移位寄存器数据进入数据存储寄存器。 /G(13脚):高电平时禁止输出(高阻态),可以用一引脚控制达到闪烁和熄灭功能,也可直接接低电平。 第三章 软件编程 3.1 仿真程序 #include<reg52.h> #include<stdio.h>  #include<intrins.h>  #define ad_con P2  #define addata P0  #define disdata P1  #define uchar unsigned char #define uint unsigned int uchar number=0x00; sbit disx=disdata^7; sbit ALE=P2^3; sbit START=P2^4; sbit OE=P2^5; sbit EOC=P3^7;  sbit KEY1=P3^5; sbit KEY2=P3^6; sbit FLAG=PSW^7; void tongdao() ucharcode dis_7[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; uint data dis[5]={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;}    } dis[3]=number; i=ad_data[number]; l=i*1.0/255*500; g=l; dis[0]=g%10; g=g/10; dis[1]=g%10; dis[2]=g/10; for(k=0;k<4;k++) {isdata=dis_7[dis[k]];  if(k==2){disx=0;}  P3=scan_con[k];  delay(5);  P3=0xff;}  }while(KEY1==1);  }  void scan()  { float l; uchar k,n,m,i; int h,g; dis[3]=0x00; for(n=0;n<8;n++) { i=ad_data[n]; l=i*1.0/255*500; g=(int)l; dis[0]=g%10; g=g/10; dis[1]=g%10; dis[2]=g/10; for(h=0;h<30;h++) {for(k=0;k<4;k++) {  if(KEY2==0) {tongdao();} disdata=dis_7[dis[k]]; if(k==2){disx=0;} P3=scan_con[k]; delay(5); P3=0xff;}} dis[3]++; if(dis[3]==8){dis[3]=0;} } } //=AD 转换子函数=// test() {uchar m; uchar s=0x00; ad_con=s; for(m=0;m<8;m++) {ALE=1; _nop_();_nop_(); ALE=0; START=1; _nop_();_nop_(); START=0; _nop_();_nop_(); _nop_();_nop_();_nop_(); while(EOC==0); OE=1; ad_data[m]=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.#include<reg51.h> unsigned char temp; unsigned char dispBuffer1[4]={0x00,0x01,0x02,0x03}; unsigned char dispcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit oclk=P3^2; //===============// void delay1ms(unsigned int ms)//延时1毫秒(不够精准) {unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<120;j++); } //==============// void main() { unsigned char w; TMOD=0x00; while(1) { for (w=4;w<8;w++) { SBUF=dispcode[w]; while(TI==0); // delay1ms(100); TI=0; } oclk=0; delay1ms(1); oclk=1; delay1ms(1); } } 2.#include<reg52.h> #include<intrins.h> unsigned char temp; unsigned int tempdata; unsigned char dispcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit oclk=P3^2; unsigned char TempBuffer1[5]; sbit start=P1^0; sbit oe=P1^1; sbit clk=P1^2; sbit ale=P1^3; sbit eoc=P1^4; //===============// void delay1ms(unsigned int ms)//延时1毫秒(不够精准) {unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<120;j++); } //==============// void adcconver() { ale=1; _nop_(); ale=0; _nop_(); start=1; _nop_(); start=0; _nop_(); while(eoc==0); oe=1; temp=P0; oe=0; } //===============// 测量电压最大值为5V void valconver() { TempBuffer1[1]=temp / 51; TempBuffer1[4]=temp % 51; tempdata=TempBuffer1[4] * 10; TempBuffer1[2]=tempdata / 51; TempBuffer1[4]=tempdata % 51; tempdata=TempBuffer1[4] * 10; TempBuffer1[3]=tempdata / 51; /*TempBuffer1[1]=temp/100; TempBuffer1[4]=temp%100; TempBuffer1[2]=TempBuffer1[4]/10; TempBuffer1[3]=TempBuffer1[4]%10; */ } //=============// void main() { unsigned char w; TempBuffer1[0]=0X00; TMOD=0x02; TH0=0XFF; TL0=0XFF; TR0=1; ET0=1; EA=1; while(1) { P2=0X00; adcconver(); valconver(); for (w=0;w<4;w++) { SBUF=dispcode[TempBuffer1[w]]; while(TI==0); // delay1ms(100); TI=0; } oclk=0; delay1ms(1); oclk=1; delay1ms(1); } } //===============// void timerupt() interrupt 3 { clk=~clk; } //===/ 第四章 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等,即将增长Cortex和DSP系列解决器,并持续增长其她系列解决器模型。在编译方面,它也支持IAR、Keil和MPLAB等各种编译器 Proteus软件具备其他EDA工具软件(例:multisim)功能。这些功能是:   1.原理布图   2.PCB自动或人工布线   3.SPICE电路仿真   革命性特点   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、WIN、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软件。 最后,这次课程设计提高了我对综合知识整顿和提纯能力,把所学知识进一步理解和记忆,为后来工作和学习打下基本。在实验过程中,我遇到了诸多问题,人们在一起研究,有时会由于一种问题而争论不休,但当问题解决时候又觉得非常有成就感,似乎把之前所付出辛苦都忘在了脑后。我学会了团结互助,学会了团队力量,也历练了自己,提高了自己自身修养与素质。在实验中也得到了工作经验,相信自己后来可以把每一件事都做好。 第六章 道谢 本次课程设计要感谢罗薇、吉李满教师,从课设开始到结束,教师都始终在指引咱们,咱们在这个过程和中遇到了诸多问题,感谢教师给咱们解说,让咱们真正学到了知识,要不是教师们协助,咱们不也许顺利完毕本次课程设计,再次向罗薇教师、吉李满教师表达感谢! 参照文献 [1] 张毅刚,《单片机原理及应用》,高等教诲出版社,12月; [2] 李广弟等。单片机基本[M].北京航空航天出版社,. [3] 王东峰等。单片机C语言应用100例[M].电子工业出版社,. [4] 陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,. [5] 李平等.单片机入门与开发[M].机械工业出版社,. 附录— 附录二 所用c语言程序: #include<reg52.h> #include<stdio.h>  #include<intrins.h>  #define ad_con P2  #define addata P0  #define disdata P1  #define uchar unsigned char #define uint unsigned int uchar number=0x00; sbit disx=disdata^7; sbit ALE=P2^3; sbit START=P2^4; sbit OE=P2^5; sbit EOC=P3^7;  sbit KEY1=P3^5; sbit KEY2=P3^6; sbit FLAG=PSW^7; void tongdao() ucharcode dis_7[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; uint data dis[5]={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;}    } dis[3]=number; i=ad_data[number]; l=i*1.0/255*500; g=l; dis[0]=g%10; g=g/10; dis[1]=g%10; dis[2]=g/10; for(k=0;k<4;k++) {isdata=dis_7[dis[k]];  if(k==2){disx=0;}  P3=scan_con[k];  delay(5);  P3=0xff;}  }while(KEY1==1);  }  void scan()  { float l; uchar k,n,m,i; int h,g; dis[3]=0x00; for(n=0;n<8;n++) { i=ad_data[n]; l=i*1.0/255*500; g=(int)l; dis[0]=g%10; g=g/10; dis[1]=g%10; dis[2]=g/10; for(h=0;h<30;h++) {for(k=0;k<4;k++) {  if(KEY2==0) {tongdao();} disdata=dis_7[dis[k]]; if(k==2){disx=0;} P3=scan_con[k]; delay(5); P3=0xff;}} dis[3]++; if(dis[3]==8){dis[3]=0;} } } //=AD 转换子函数=// test() {uchar m; uchar s=0x00; ad_con=s; for(m=0;m<8;m++) {ALE=1; _nop_();_nop_(); ALE=0; START=1; _nop_();_nop_(); START=0; _nop_();_nop_(); _nop_();_nop_();_nop_(); while(EOC==0); OE=1; ad_data[m]=addata; OE=0; s++; ad_con=s;} ad_con=0x00;} //=主函数=// main() {P0=0XFF; P2=0X00; P1=0XFF; P3=0XFF; while(1) {test(); scan();}
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服