




免费预览已结束,剩余43页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
新型单片式数字电压表序 言随着我国国民经济的快速增长,产业结构也随之不断调整。先进的科学技术的出现为我国工业的快速发展提供了基础。近些年来,以计算机技术,通讯技术、消费电子技术为主的电子信息技术的高速发展和国际互联网络(internet)的广泛应用已经改变了人们的生活方式,世界各国都在为发展以计算机技术,通讯技术、消费电子技术为主要内容的信息产业制定宏伟的发展规划,以期望在21世纪的政治、经济和技术竞争中处于主动有利的地位。信息技术对其他各产业的贡献越来越大,信息产业正逐渐成为其他产业的支柱。信息产业的发展程度、信息流通、畅通与否已成为评价各个国家的经济发展水平的一个重要标准。在人类步入全球信息化社会的进程中,全球性电子信息技术正在发挥着巨大的作用。数字电压表(digital voltmeter)简称dvm,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,有精度高、抗干扰能力强,可扩展性强、集成方便,还可与pc进行实时通信。目前,由内部自带ad转换的单片机构成的数字电压表1,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由dvm扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍带a/d转换器的单片机构成的基于单片机的数字电压表的工作原理11,stc系列单片机的应用,此电路分三档测量,分别为10v档,100v档,1000v档23,并且误差小于3%,具有液晶显示的功能,液晶选用lcd1602。第 1章 总体电路设计1.1总体电路设计1.1.1方案论证方案一:利用fpga作为主要核心器件,模拟电压值经过档位切换到不同的衰减电路后得到规定的数值2,然后通过a/d转换器将其送入fpga中进行数据处理,只要通过改变内部的程序,就可以实现通道的利用。然后再把得到的数据送入数码管led或液晶lcd中进行显示4。但是此方案费用需求大,不适合此时采用。 方案二: 模拟电压值经过档位切换到不同的衰减电路后得到不同的电压值3,经隔离干扰后送到a/d转换芯片中进行a/d转换,然后送到不带ad转换的单片机中进行数据处理。处理后的数据送到数码管led或液晶lcd中进行显示5。方案三:模拟电压值经过档位切换到不同的分压电路衰减后2,得到单片机规定的电压输入值后送入带a/d转换功能的stc系列单片机中进行a/d转换并且进行数据处理11。处理后的数据送到数码管led或液晶lcd中进行显示。并且自己制作下载器。可以成功的下载程序。1.1.2方案选择经过比较以及思考,我选择了方案三,利用模拟电压值经过档位切换到不同的分压电路衰减后,得到规定值送到带a/d转换器的stc(stc12c5410ad)系列单片机中进行a/d转换并且进行数据处理。单片机选用的是带十位ad转换的stc系列单片机12,经过单片机处理后的数据送到液晶lcd(lcd1602)中进行显示。自己制作max232下载器,把程序下载进入芯片中,进行调试,调试过程方便,而且费用最低,最经济。1.2电路总体框图 以单片机为核心,外围电路总体框图如下图1-1所示。图1-1 单片式数字电压表框图第 2 章 主要器件介绍2.1 stc单片机介绍2.1.1 stc12c5410ad系列单片机介绍 stc12c5410ad系列以及stc12c2052ad系列单片机是宏晶科技生产的单时钟/机器周期(1t)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快812倍,内部集成max810专用复位电路。4路pwm,8路高速10位a/d转换,针对电机控制,强干扰场合。stc12c2052ad系列只有2路pwm,8路高速8位a/d转换11。1. 增强型 8051 cpu,1t,单时钟/机器周期,指令代码完全兼容传统8051。2. 工作电压: stc12c5410ad系列工作电压:5.5v3.8v(5v单片机)/3.8v2.4v(3v单片机)。 stc12c2052ad系列工作电压:5.5v3.8v(5v单片机)/3.8v2.4v(3v单片机)。3. 工作频率范围:035mhz,相当于普通8051的 0420mhz。实际工作频 率可达48mhz。4. 用户应用程序空间12k/10k/8k/6k/2k/1k字节。5. 片上集成512字节ram(stc12c5410ad系列),stc12c52ad系列单片机为256字节ram。6. 通用i/o口(27/23/15个),复位后为: 准双向口/弱上拉(普通8051传统i/0口)。 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏。 每个i/o口驱动能力均可达到20ma,但整个芯片最大不得超过55ma7isp(在系统可编程)iap(在应用可编程),无需专用编程器,无需专用的仿真器。 可通过串口(p3.0/p3.1)直接下载用户程序,数秒即可完成一片。8. eeprom功能9. 看门狗10.内部集成max810专用复位电路(外部晶振20m以下时,可省外部复位电路)。11.时钟源:外部高精度晶体/时钟,内部r/c振荡器。 用户在下载用户程序时,可选择是使用内部r/c振荡器还是外部精度晶体/时钟。 常温下内部r/c振荡器频率为5.2mhz6.8mhz。 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,应认为是4mhz8mhz。12.共2个16位定时器/计数器,但可用pca模块再产生4个定时器(2052系列只有两路pca)。13.外部中断2路,下降沿中断或低电平触发中断,power down模式可由外部中断唤醒。14.pwm(4路)/pca(可编程计数器阵列,4路),5410系列是4路,2052系列只有两路 也可用来当4路d/a使用。也可用来再实现4个定时器。也可用来再实现4个外部中断(上升沿中断/下降沿中断均可分别或同时支持)。15.a/d转换,10位精度adc,共8路。stc12c5452ad系列只有8位精度。16.通用全双工异步串行口(uart),由于stc12系列是高速的8051,也可再用定时器软件实现多串口。17.spi同步通信口,主模式/从模式。18.工作温度范围:075度/-40+85度。19.封装:sop32/28/20,skdip28,pdip20,tssop20(超小封状6.4mm/6.4mm,定货)sop32有27个i/o口,sop28/skdip28有23个i/o口,sop20/tssop20/pdip20有15个i/o口,i/0口不够时,可用74hc165/74hc164串行扩展i/o口,或用双cpu,三线通信,还多了串口。图2-1 stc12c5410ad单片机的原理图2.1.2 stc12c5410ad单片机a/d转换介绍 stc12c5410ad系列带a/d转换的单片机的a/d转换口在p1口(p1.7p1.0),有8路10位高速a/d转换器,stc12c2052ad系列是8位精度的a/d,速度均可达到100khz(10万次/秒)。8路电压输入型a/d,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后p1口为弱上拉型i/o口,用户可以通过软件设置将8路中的任何一路设置为a/d转换,不需作为a/d使用的口可继续作为i/o口作用。需作为a/d使用的口需先将其设置为开漏模式或高阻输入,在p1m0、p1m1 寄存器中对相应的位进行设置。表2-1 p1m1 p1m0寄存器模式设置p1m07:0地址:91hp1m17:0地址:92hi/o口模式(p1.x 如做a/d使用,需先将其设置成开漏或高阻输入)00准双向口(传统8051 i/o口模式)灌电流可达20ma,拉电流为230ua01推挽输出(强上拉输出,可达20ma,尽量少用)10仅为输入(高阻),如果该i/o口需作为a/d使用,可选此模式11开漏(open drain),如果该i/o口需作为a/d使用,可选此模式表2-2 ad转换寄存器mnemonicaddname76543210resetvalueadc_contrc5ha/d转换控制寄存器adc_powerspeed1speed0adc_flagadc_startchs2chs1chs00xx00000adc_datac6ha/d转换结果寄存器,高8位_xxxxxxxxadc_low2beha/d转换结果寄存器,低2位_xxxxxxxx表2-3 adc_contr 特殊功能寄存器:a/d转换控制特殊功能寄存器a/d转换控制寄存器adc_powerspeed1speed0adc_flagadc_startchs2chs1chs00xx00000表2-4 chs2/chs1/chs0:模拟输入通道选择,chs2/chs1/chs0chs2chs1chs0analog channel select模拟输入通道选择000选择 p1.0 作为 a/d输入来用001选择 p1.1 作为 a/d输入来用010选择 p1.2 作为 a/d输入来用011选择 p1.3 作为 a/d输入来用100选择 p1.4 作为 a/d输入来用101选择 p1.5 作为 a/d输入来用110选择 p1.6 作为 a/d输入来用111选择 p1.7 作为 a/d输入来用adc_start:模数转换器(adc)转换启动控制位,设置“1”时,开始转换,转换结束后为0。adc_flag:模数转换器转换结束标志位,当a/d转换完成后,adc_flag=1,要由软件清0。表2-5 speed1,speed:模数转换器转换速度控制位speed1speed0a/d转换所需时间11210个时钟周期转换一次,cpu工作频率20mhza/d转换速度约100khz10420个时钟周期转换一次01630个时钟周期转换一次00840个时钟周期转换一次adc_power: adc电源控制位 0:关闭adc电源;1:打开a/d转换器电源,建议进入空闲模式前,将adc电源关闭,adc_power=0。启动a/d转换前一定要确认ad电源已打开,ad转换结束后关闭ad电源可降低功耗,也可不关闭建议启动a/d转换后,在a/d转换结束之前,比改变任何i/o口的状态,有利于高精度a/d转换表2-6 adc_data/adc_low2 特殊功能寄存器: a/d转换结果特殊功能寄存器adc_datac6ha/d转换结果寄存器,全部8位有效,为10位a/d转换结果的高8位xxxxxxxxadc_low2beha/d转换结果寄存器,只有低2位有效,为10位a/d转换结果的低2位xxxxxxxxxxxxxx 模拟/数字转换结果计算公式如下:结果(adc_data7:0,adc_low21:0)= vin为模拟输入通道输入电压,vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。取adc_data的8位为adc转换的高8位,取adc_low2的低2位为adc转换的低2位,则为10位精度。如果舍弃adc_low2的低2位,只用adc_data寄存器的8位,则a/d转换结果为8位精度。 结果 adc_data7:0=stc12c5410ad系列单片机的参考电压源是输入工作电压vcc,所以一般不用外接参考电压源。如7805的输出电压是5v,但实际电压可能是4.88v到4.96v,用户需要精度比较高的话,可在出厂时将实际测出的工作电压值记录在单片机内部的eeprom里面,以供计算。在本设计中,考虑现实条件,我们使用了7805作为电压源,给单片机提供5v电压。2.1.3 stc12c5410ad单片机口p口介绍表2-7 p3口设定p3m07:0p3m17:0i/0口模式00准双向口(传统8051 i/o口模式),灌电流可达20ma,拉电流为230ua,由于制造误差,实际为250ua150ua01推挽输出(强上拉输出,可达20ma,要加限流电阻)10仅为输入(高阻)11开漏(open drain),内部上拉电阻断开,要外加表2-8 p2口设定p2.7,p2.6,p2.5,p2.4,p2.3,p2.2,p2.1,p2.0p2m07:0p2m17:0i/o口模式00准双向口(传统8051 i/o口模式)灌电流可达20ma,拉电流为230ua,由于制造误差,实际为250ua150ua01推挽输出(强上拉输出,可达20ma,要加限流电阻)10仅为输入(高阻)11开漏(open drain),内部上拉电阻断开,要外加表2-9 p1口设定 p1m07:0p1m17:0i/o口模式(p1.x 如做a/d使用,需先将其设置成开漏或高阻输入)00准双向口(传统8051 i/o口模式)灌电流可达20ma,拉电流为230ua,由于制造误差,实际为250ua150ua01推挽输出(强上拉输出,可达20ma,要加限流电阻)10仅为输入(高阻),如果该i/o口需作为a/d使用,可选此模式11开漏(open drain),如果该i/o口需作为a/d使用,可选此模式注意: 虽然每个i/o口在弱上拉时都能承受20ma的灌电流(还是要加限流电阻,如1k,560欧等),在强推挽输出时都能输出20ma的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过55ma。即从mcuvcc流入的电流不超过55ma,从mcu-gnd流入/流出都不能超过55ma。2.2 lcd1602液晶介绍2.2.1 lcd1602液晶的知识液晶显示器简称lcd显示器,它是利用液晶经过处理后改变光线的传输方向的特性实现显示原理的。液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富、无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点,在单片机应用中得到了日益广泛的应用。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果910。字符型的液晶显示模块是一种专门用于显示字母、数字、符号等点阵式液晶显示模块,它是由若干个5*7或5*11等点阵符位组成的,每一个点阵字符位都可以显示一个字符。点阵字符位之间有一定点距的间隔,这样就起到了字符间距和行距的作用。要使用点阵式lcd液晶显示器,必须有相应的lcd控制器、驱动器来对lcd显示器进行扫描、驱动,以及一定空间的rom和ram来存储写入的命令和显示字符的点阵。现在往往将lcd控制器、驱动器、ram、rom和lcd显示器连接在一起,称为液晶显示模块lcm。使用时只要向lcm送入相应的命令和数据就可以实现显示所须的信息。目前市场上常用的有16字1行,16字2行,20字2行和40字2行等的字符液晶显示模块。这些lcm虽然显示字数各个不相同,但是都有相同的输入输出界面。本设计中所用的液晶显示模块的显示容量为162字符型液晶显示模块;芯片工作电压:4.55.5v;工作电流:2.0ma(5.0v);模块最佳工作电压:5.0v;字符尺寸: 2.954.35(wh)mm。1602lcd分为带背光和不带背光两种,基控制器大部分为hd44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,1602lcd采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表三所示:第1脚:vss 电源地。第2脚:vdd接5v正电源。第3脚:vl液晶显示偏压信号,为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个电位器调整对比度。第4脚:rs为寄存器选择,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读/写选择端,高电平时进行读操作,低电平时进行写操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:bla背光源正极。第16脚:blk背光源负极。2.2.2 lcd1602的实物图图2-2 lcd1602的实物图2.2.3 lcd1602的内部结构以及显示原理液晶显示模块rt1602c的内部结构可以分成三部分:一为lcd控制器,二为lcd驱动器,三为lcd显示装置。图2-3 液晶显示模块rt1602c的内部结构控制器采用hd44780,驱动器采用hd44100。hd44780是集控制器、驱动器于一体,专用于字符显示控制驱动集成电路。hd44100是作扩展显示字符位的。hd44780是字符型液晶显示控制器的代表电路。hd44780集成电路的特点:(1)可选择5*7或5*10点字符。(2) hd44780不仅可作为控制器,而且还具有驱动16*40点阵液晶像素的能力,并且hd44780的驱动能力还可通过外接驱动器扩展360列驱动。hd44780可控制的字符高达每行80个字,也就是5*80=400点,hd44780内藏有16路行驱动器和40路列驱动器,所以hd44780本身就具有驱动16*40点阵lcd的能力(即单行16个字符或两行8个字符)。如果在外部加一hd44100外扩展40路/列驱动,则可驱动16*2lcd。(3)hd44780的显示缓冲区ddram、字符发生存储器(rom)及用户自定义的字符发生器cgram全部内藏在芯片内。hd44780有80个字节的显示缓冲区,分两行,地址分别为00h27h,40h67h,它们实际显示位置的排列顺序跟lcd的型号有关,液晶显示模块rt1602c的显示地址与实际显示位置的关系如图2-4所示。图 2-4 rt1602c的显示地址与实际显示位置的关系图hd44780内藏的字符发生存储器(rom)已经存储了160个不同的点阵字符图形,如表2-10所示。表2-10 1602的标准字库upper4bit0000001000110100010101100111101010111100110111101111lower4bitcgramxxxx0000 (1)0ppp0001 (2)!1aqaq。q0010 (3)“2brbr0011 (4)#3cscs0100 (5)$4dtdt、0101 (6)%5eueu0110 (7)&6fvfv0111 (8)7gwgwg1000 (1)(8hxhx_1001 (2)9iyiyy1010 (3)*:jzjzj千1011 (4)+;kk万1100 (5),nn_n1111 (8)/?o_o这些字符有阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。如数字“1”的代码是00110001b(31h),又如大写的英文字母“a”的代码是01000001b(41h),可以看出英文字母的代码与ascii编码相同。要显示“1”时,只需将ascii码31h存入ddram指定的位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,我们就能看到数字“1”了。(4) d44780具有8位数据和4位数据传输两种方式,可与4/8位cpu相连。(5) d44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。hd44780的工作原理:(1) 示数据存储器ddramddram用来存放要lcd显示的数据,只要将标准的ascii码送入ddram,内部控制电路会自动将数据传送到显示器上。(2) 符发生器cgromhd44780内藏的字符发生存储器(cgram),存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。(3) 字符发生器cgramcgram是供使用者储存自行设计的特殊造型的造型码ram,cgram共有512bit(64字节)。一个5*7点矩阵字型占用8*8bit,所以cgram最多可存8个造型。(4)指令寄存器ir指令寄存器ir负责储存单片机要写给lcm的指令码。当单片机要发送一个命令到ir时,必须要控制lcm的rs、r/w及e这三个引脚,当rs及r/w引脚信号为0,e引脚信号由1变为0时,就会把在d0d7引脚上的数据送如ir。(5)数据寄存器dr数据寄存器dr负责储存单片机要写到cgram或ddram的数据,或储存单片机要从cgram或ddram读出的数据,因此dr可视为一个数据缓冲区,它也是由lcm的rs、r/w及e这三个引脚来控制。当rs及r/w引脚信号为1,e引脚信号为1时,lcm会将dr内的数据由d0d7输出。以供单片机读取;当rs引脚信号为1,e引脚信号由1变为0时,就会把在d0d7引脚上的数据存如dr。(6)忙碌标志信号bf(忙标志)bf的功能是告诉单片机,lcm内部是否正忙着处理数据。当bf=1时,表示lcm内部正在处理数据,不能接受单片机送来的指令和数据。lcm设置bf的原因为单片机处理一个指令的时间很短,只需几微秒的时间,而lcm需要40us-1.64ms的时间,所以单片机要写数据或指令到lcm之前,必须先查看bf是否为0。(7)地址计数器acac的工作是负责计数写到cgram、doram数据的地址,或从ddram、cgram读出数据的地址。使用地址设定指令写到ir后,则地址数据会经过指令解码器,再存入ac。当单片机从ddram或cgram存取资料时,ac依照单片机对lcm的操作而自动修改它的地址计数值。表2-11 hd44780接口部信号逻辑功能组合表rsr/wed7-d0功能00下降沿输入态写指令代码01高电平输出态读忙标志和ac码10下降沿输入态写数据11高电平输出态读数据用单片机来控制lcm,方式十分简单,lcm其内部可以看成两组寄存器,一个为指令寄存器ir,一个为数据寄存器dr,由rs引脚来控制。所有对指令寄存器或数据寄存器的存取均需要检查lcm内部的忙标志bf,此标志用来告知正在工作,并不允许接受任何的控制命令。而此位的检查可以令rs=0,用读取d7来加以判断,当d7为0时,才可以写入指令或数据寄存器。lcm控制指令有11组,以下分别介绍。表2-12 清屏rsr/wd7d6d5d4d3d2d1d00000000001指令代码为01h,将ddram数据全部填入“空白”的ascii代码20h,执行此指令将清除显示器的内容,同时光标移到左上角。表2-13 光标归位rsr/wd7d6d5d4d3d2d1d0000000001x指令代码为02h,地址计数器ac被清0,ddram数据不变,光标移到左上角。x表示可以为0也可以为1。表2-14 输入方式设置rsr/wd7d6d5d4d3d2d1d000000001i/ds当i/d=1时,光标从左向右移动;i/o=0时,光标从右往左移动。当s=1时,内容移动,s=0时,内容不移动。表2-15 显示开关控制rsr/wd7d6d5d4d3d2d1d00000001dcb指令代码为08h0fh。该指令控制字符、光标以及闪烁开与关,有3个状态位d、c、b,这3个状态位分别控制着字符、光标和闪烁的显示状态。d是字符显示状态位。当d=1时为开显示,d=0时为光标移动。光标为底线形式(5*1点阵),光标的位置由地址指针计数器ac确定,并随其变动移动。当ac值超出了字符的显示范围,光标将随之消失。b是光标闪烁显示状态位。当b=1时;b=0时,光标不闪烁。表2-16 光标、字符位移rsr/wd7d6d5d4d3d2d1d0000001s/cr/lxx执行该指令将产生字符或光标向左回向右滚动一个字符位。如果定时间隔地执行该指令,将产生字符或光标的平滑滚动。表2-17功能 设置rsr/wd7d6d5d4d3d2d1d000001dlnf00设置数据位数,当dl=1时数据位为8位,dl=0时数据位为4位。设置显示行数,当n=1时双行显示,n=0时单行显示。设置字形大小,当f=1时5*10点阵,f=0时为5*7点阵。表2-18 cgram地址设置rsr/wd7d6d5d4d3d2d1d00001a5a4a3a2a1a0设置用户自定义cgram的地址,对用户自定义cgram访问时,要先设定cgram的地址,地址范畴为063。表2-19 ddram地址设置rsr/wd7d6d5d4d3d2d1d0001a6a5a4a3a2a1a0该指令将7位的ddram地址写入地址指针计数器ac内,随后,单片机对数据的操作是对ddram饿读/写操作。表2-20读bf及ac值rsr/wd7d6d5d4d3d2d1d001bfac6ac5ac4ac3ac2ac1ac0读忙标志及地址计数器ac命令。当bf=1时表示忙,这时不能接受命令和数据:bf=0时表示不忙。低7位为读出的ac的地址,值为0127。表2-21写ddram或cgram命令rsr/wd7d6d5d4d3d2d1d010写入的数据 向ddram或cgram当前位置中写入数据。对ddram或cgram写入数据之前须设定ddram或cgram的地址。表2-22 读ddram或cgram命令rsr/wd7d6d5d4d3d2d1d011读出的数据 从ddram或cgram当前位置中读出数据。当ddram或cgram读出数据时,先须设定ddram或cgram的地址。第 3 章 硬件电路设计3.1输入电路的设计3.1.1单片机电源电路的设计为使系统能够稳定工作,必须有可靠电源,在此基础上综合考虑降低成本、硬件调试简单和设计维修方便等因素,本设计采用变压器整流的形式给单片机提供5v的电源,由变压器整流的形式的电源电路结构简单,成本较低,输出功率可以在选择变压器的时候确定,只要变压器的功率合适,完全可以使整个电路稳定工作。而且此方案经济实用,方便携带。电源方案的具体电路如图3-1所示12。图3-1 单片机5v电源的设计框图3.1.2衰减电路的设计衰减电路的作用是把不同量程的被测的电压规范到单片机a/d转换所要求的输入的电压值。单片机规定的输入电压的最大值为5v电压,所以输入到单片机中的电压值为0-5v,在现实生活中,最简单的衰减电路就是用电阻进行分压,通过选取不同的电阻值使输入电压衰减后得到0-5v的电压值送入单片机中,本仪表设计是测量0-1000v的电压,灵敏度高所以可以不用加前置放大器,只需要加衰减器,如图3-2所示电路图是由1.8m、180k、10k、和10k电阻分别构成1/2、1/20、1/200的衰减器。衰减输入电路可由拨档开关来选择不同的衰减率,从而切换档位。拨档开关选择的是双向三联的开关,即拨档开关打到那一档,那一档就导通,选用双向的开关是为了可以让单片机同时控制档位值的大小13。图3-2 输入衰减电路设计3.1.3 换档电路的设计本仪表设计是0-1000v电压测量,为了使电压测量值显示更加精确,使电路测量一共分为三档,分别是0-10v档,10-100v档,100-1000v档。当测量10v以下的电压时,拨档开关打在0-10v档,当测量10-100v档时,拨档开关打在10-100v档,当测量100v以上1000v以下的电压时,拨档开关打在100-1000v档。通过程序让单片机自动识别出哪个档位,以便得到更加精确的数值。如图3-3的硬件连接图。图3-3 换档电路的设计3.2 stc12c5410ad单片机外围电路连接3.2.1 单片机复位电路的连接stc12c5410ad系列单片机的复位引脚rst是史密特触发输入脚,内部有一个上拉低电阻(值为80k300k)。当振荡器起振后,在rst引脚上输入2个机器周期以上的高电平,器件便进入复位状态,此时p1、p2、p3口输出高电平,rst上输入返回低电平以后,便退出复位状态开始工作67。这里采用的是人工开关复位电路,应用系统除上电复位以外,还需人工复位,将一个按钮开关并联于上电复位电路,在系统运行时,按一下开关,就在rst端出现一段时间高电平,如图3-4所示:图3-4 单片机复位电路3.2.2单片机时钟电路的连接stc12c5410ad等cmos型单片机内部有一个可控的反相放大器,引脚xtal1、xtal2为反相放大器的输入端和输出端,在xtal1、xtal2上外接晶振(或陶瓷谐振器)和电容便组成振荡器78。电容c1、c2的典型值为30pfpf(晶振)或40pf10pf(陶瓷谐振器)。振荡器频率主要取决于晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。振荡器的工作受(pcon.1)控制,复位以后pd=0振荡器工作,可由软件置“1”pd,使振荡器停止振荡,从而使整个单片机停止工作,以达到节电目的。cmos型单片机也可以从外部输入始终,接线如图3-5所示:图3-5 单片机时钟电路3.2.3单片机与液晶电路的连接图图3-6为液晶lcd1602和stc12c5410ad单片机的连接图,单片机的p2口和液晶的db0-db7相连接,并且电源和地需接通。图3-6单片机与液晶连接图第 4章 软件程序设计4.1软件设计要点4.1.1软件需求的分析软件设计就是把软件需求变换成软件的具体方案(即模块结构)的过程。结构化模块设计根据上述软件需求分析,到出软件模块,得到软件模块结构,包括模块之间的接口定义。软件设计的成果是软件设计说明书,它主要包括两部分内容:一是模块结构图(指出系统由哪些模块组成,模块间的调用关系),二是模块的功能说明(指出每个模块的输入、输出及模块的功能)。4.1.2 软件设计软件编制是在软件设计和硬件资源合理分配(主要包括rom、ram、定时器/计数器、中断源、i/o口等)的基础上,由程序设计语言把模块结构转换成计算机能接受的形式即具体的程序编制。4.1.3软件编制软件测试是保证软件质量的关键,它是对需求分析、设计和编码的最后复审。软件测试、纠错和软件可靠性三者密不可分。测试是企图发现错误,纠错是诊断已发现的错误,并且改正这些错误。可靠性是衡量测试与纠错结果的基准。一系列全面的测试是软件可靠性的唯一保证。4.1.4软件测试软件测试是保证软件质量的关键,它是对需求分析、设计和编码的最后复审。软件测试、纠错和软件可靠性三者密不可分。测试是企图发现错误,纠错是诊断已发现的错误,并且改正这些错误。可靠性是衡量测试与纠错结果的基准。一系列全面的测试是软件可靠性的唯一保证。4.2 本系统软件设计4.2.1 软件程序采用c语言编程,因为c语言具有以下特点:1.简洁紧凑、灵活方便c语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。c语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2.运算符丰富c的运算符包含的范围很广泛,共有种34个运算符。c语言把括号、赋值、强制类型转换等都作为运算符处理。从而使c的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3.数据结构丰富c的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外c语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4.c是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5.c语法限制不太严格,程序设计自由度大虽然c语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。6.c语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7.c语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低1020%。8.c语言适用范围大,可移植性好c语言有一个突出的优点就是适合于多种操作系统,如dos、unix,也适用于多种机型。同样也适用于嵌入式系统编程。4.2.2 程序总体框图程序框图说明了整个系统工作的一种流程,具体子程序分液晶显示和ad转换子程序,图4-1是程序总体流程图。图4-1 程序总体流程图4.2.3 子程序框图a/d转换是一个把量程内的模拟量转换为数字量的过程,经过转换后的数据就可以进行数据分析处理。此设计中就是把输出的电压经过分压后送入单片机自带的a/d运算器进行数据分析处理的。如图4-2所示:4-2 ad转换子程序液晶显示子程序,通过对液晶中rs,rw,e等的设置,使液晶可以显示程序所需要的结果,如图4-3所示:图4-3 液晶显示子程序框图第5章 系统调试5.1 软件调试5.1.1 keil uvision2 ide 介绍keil uvision2 ide是美国keil software公司出品的51系列单片机c语言集成开发系统,与汇编语言相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c语言来开发,体会将会更加深刻。keil uvision2 ide开发系统提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点是,只要看一下编译后生成的汇编代码,就能体会到keil uvision2 ide生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。另外,keil uvision2 ide也能识别汇编程序。5.1.2 程序编译流程打开keil uvision2 ide,选择单片机下载型号。选择89c52单片机型号设置时钟,选择生成hex文件加载程序,编译程序并且运行成功5.2 总体调试521 max232下载器制作图5-1为max232下载器的连接图图5-1 max232下载器522 stc-isp-v3.5 介绍stc12c4052ad系列单片机具有在系统编程(isp)特性,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些尚未定型的产品可以一边生产,一边完善。由于可以在用户的目标系统上将程序直接下载进单片机看运行结果的对错,故无须仿真器。图5-2 为stc-isp-v3.5 下载原理框图介绍:图5-2 stc-isp-v3.5 下载原理框图介绍setp1/步骤1:选择你所使用的单片机型号,如stc12c2052,stc1c4052ad等setp2/步骤2:打开文件,要烧录用户程序,必须调入用户的程序代码(* .bin,*.hex)setp3/步骤3:选择串行口,你所使用的电脑串口,如串行口1com1,串行口2com2,setp4/步骤4:选择下次冷启动后,时钟源为“内部r/c振荡器”还是“外部晶体或时钟”。setp5/步骤5:选择“download/下载”按钮下载用户的程序进单片机内部,可重复执行setp/步骤5,也可以选择“re-download/重复下载”按钮。下载时注意看提示,主要看是否给单片机上电复位,下载速度比一般通用编程器快。一定要先选择“download/下载”按钮,然后再给单片机上点复位(先彻底断电),而不要先上电。图5-3为stc单片机下载程序框图。图5-3 stc-isp-v3.5 下载框图第6章 调试结果6.1 调试过程6.1.1 硬件调试原理本系统用调压器提供电压,可提供0-300v交流电,因为调压器输出是交流电,而本系统是测量直流电,所以需经过整流和滤波把它变为直流电。通过扼流圈以及电容滤波,通过整流桥把交流电转变为直流电,再通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东阳市2025年小升初复习数学模拟试卷含解析
- 2025年黑龙江省齐齐哈尔市物理试题高考冲刺卷(七)含解析
- 株洲师范高等专科学校《多媒体出版》2023-2024学年第二学期期末试卷
- 安徽省定远县2024-2025学年初三一模(期末)英语试题含答案
- 重庆青年职业技术学院《网络管理与开发》2023-2024学年第二学期期末试卷
- 广东省东莞市重点中学2025届高考信息卷数学试题含解析
- 江苏省南京市江北新区2025届初三第二次物理试题模拟考试含解析
- 天津市静海县名校2024-2025学年高中毕业班第二次模拟(英语试题文)试卷含答案
- 2025年内蒙古海拉尔区市级名校初三第四次联考英语试题含答案
- 虎林市2024-2025学年小升初考试数学试卷含解析
- 2025年中医针灸学主治医师-中医针灸学考试题(附答案)
- 老年人安全用药与护理
- 黑色三分钟生死一瞬间第9、10部
- 适老化住宅改造服务行业深度调研及发展战略咨询报告
- 2025年郑州黄河护理职业学院单招职业技能测试题库及答案1套
- 2025年上半年甘肃省农垦集团限责任公司人才招聘380人易考易错模拟试题(共500题)试卷后附参考答案
- GB/T 45236-2025化工园区危险品运输车辆停车场建设规范
- 中考语文文学批注-病句表达欠妥(含答案)
- 新地基基础-基桩静荷载试验考试复习题库(含答案)
- 《致敬英雄》课件
- 2025年河南经贸职业学院单招职业技能测试题库完整
评论
0/150
提交评论