版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 四川信息职业技术学院毕业设计说明书(论文) 摘 要22.1直流电压源的方案论证42.1.1方案一42.1.2 方案二52.2 方案比较63.1 单片机的选择73.1.1 时钟电路和复位电路103.2 DA转换模块的介绍113.2.1 D/A转换电路133.3 显示电路133.4 控制电路143.5电源电路15第四章 软件设计174.1 主程序模块174.2 显示程序模块184.3 D/A转换程序模块224.4 控制程序模块24第5章系统的仿真与调试285.2 protenus软件的仿真285.3 调试与运行29结论30参考文献31附录1电路原理图32附录2源程序33附录3元件明细表1摘 要本
2、设计以单片机为核心控制芯片,设计了一个简易直流电压源功能的方案。为了实现输出精确的电压,本设计采用数模转换器、变位器和运算放大器等元器件构成稳压电源,实现了输出一定范围内的电压,而且电压在一定范围内可调整,具有较高的精度和稳定性,该设计采用了独立式按键,实现输出电压的方便设定,具有设定值的微调(步进量0.1V),粗调(步进量1V)两种调整功能,为了更详细的显示出电压调整,本设计显示部分采用了液晶显示器来显示输出电压值,用直接方式与单片机连接,与传统的直流电压源相比操作简单,电压精度高以及其输出电压的大小由字符和数字准确显示的特点,让人直观、易懂、不会太单调,而且本设计自行设计了电源为系统供电。
3、关键词:单片机、直流电压源、液晶显示第 2 页 共 43 页 四川信息职业技术学院毕业设计说明书(论文)第一章 绪 论随着时代的发展,数字电子技术已经普及到我们生活、工作、科研等各领域,本文将介绍一种简易的直流电压源,本设计由电源电路、显示电路、控制电路、数模转换电路四部分组成。电压源是最常用的仪器设备,在科研以及试验中都是必不可少的。目前所使用的直流可调电源中,大多数直流电压源几乎都为旋组开关调节、电压调节精度不高且体积大、功能简单、难控制、可靠性低、干扰大、复杂度高、而且经常跳变,使用麻烦,如果电压值在一个很小的范围内时,调节的难度就较大,对输出就有很大的影响。利用直流电压源,可达到每步0
4、.1V的精度,输出电压范围+0V至+13.9V,针对以上问题,本设计设计了一种以单片机为核心的高精度直流电压源设计,该电压源采用数字调节、输出精度高,特别适用于各种有较高精度要求的场合,其设计方法是由通过DA,控制驱动模块输出,同时采用变位器进行调整,输出电压通过电阻给运放,与设定值进行比较,如有偏差则调整输出。工作工程中,单片机输出驱动LCD显示。通过独立式按键可设置和调整电压值。准确的说是电源电压提供各个芯片电源、LCD、放大器所需电压,显示电路用于显示电源输出电压的大小,同时分析了数字技术和模拟技术相互转换的概念。采用的是直接访问方式,与传统的稳压电源相比具有操作方便,电源精度性高以及可
5、以更加直观的显示输出电压值,而传统的数控直流电压源通常采用电位器和波段开关来实现电压调整,并由电压表指示电压值的大小。因此,电压的调整精度不够高,读数欠直观,电位器也易磨损,而本设计较好地解决以上传统稳压电源的不足,该设计具有设计简单、操作简单、直观、应用广泛、精度较高等特点。第 42 页 共 43 页第二章 方 案 论 证2.1直流电压源的方案论证目前直流电压源已广泛适用,可以运用我们所学的单片机、数模电来实现目标其方案比较多,主要有以下几种方案。2.1.1方案一 采用常用的单片机芯片作为控制器,单片机的接口和数模转换器的数据口直接相连,数模转换器输出的是电流形式的模拟量,因此需要通过两级运
6、算放大器将电流装换为电压,以使输出电压。其硬件框图如图2.1所示: 控制电路显示电路单片机最小系统电源电压D/A转换换DA转换电压调整电压调整输出图2.1 方案一硬件框图2.1.2 方案二 此方案适用的是一套十进制计数器,一方面完成电压的译码显示,一方面其作为EPROM的地址输入,而由EPROM的输出经过DA变换后控制误差放大的基准电压来实现输出步进,十进制数器通过起码后数码管显示输出电压值为了使系统工作正常,本方案只使用了一套计数器,回避了保证双计数器的问题,但由于控制数据烧录在EPROM中,使系统设计灵活性降低,其硬件框图如图2.3所示:整流滤波电路调整管过流保护误差放大输出十进制计数器电
7、压预置 步进减步进加译码显示EPROMD/A转换图2.2 方案二硬件框图2.2 方案比较方案二中使用的芯片很多,造成控制电路内部接口信号繁琐,中间相互关联多,抗干扰能力差,还采用线性调压电源,以改变其基准电压的方式使输出步进增加或减少,这不能不考虑整流滤波后的纹波对输出的影响,在方案一中采用了单片机完成核心功能,单片机作为一个智能可编程器件,更于系统功能的扩展,同时,方案一中使用的运算放大器放大电压,由于运算放大器具有很大的电源电压抑制化,可以大大减少输出端的纹波电压。总之,方案一的优点是具有精度高,是由方便,硬件电路简单等特点,它使用了单片机,使得进一步扩展功能较为方便;方案二的优点是电路结
8、构简单,其缺点是使用比较复杂,精度不够高。考虑到各种因素,本设计采用方案一第三章 硬件电路设计 本设计由电源电路、显示电路、数模转换电路、控制电路等几部分组成,选用的单片机以及它的最小系统来实现硬件电路的核心部分,数模转换器以及集成运算放大器来实现电路的转换部分,电源由三端稳压器经过整流、滤波给电路的各部分供电,由液晶显示构成显示电路,控制电路由独立式按键构成,下面简单的分别进行各电路及芯片的介绍。3.1 单片机的选择单片机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常单片机由单块集成电路芯片构成,内部包含有计算机的基本
9、功能部件:中央处理器、存储器和I/O接口电路等。因此单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机应用面广、使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。下面大致介绍一下单片机的主要应用领域和特点。目前我国生产很多型号的单片机,在此我们采用型号为AT89C51的单片机。因为AT89C51是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,片
10、内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。单片机AT89C51的引脚图如图3.1所示图3.1单片机引脚图主要功能特性:兼容MCS-51指令系统4k可反复擦写(>1000次)Flash ROM32个双向I
11、/O口可编程UARL通道两个16位可编程定时/计数器全静态操作0-24MHz1个串行中断128x8bit内部RAM两个外部中断源共6个中断源可直接驱动LED3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能AT89C51单片机的管脚功能:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,可用作输入,P1口被外部下拉为低电平
12、时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,可作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口可用于外部程序存储器或16位地址外部数据存储器进行存取,P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口是8个带内部上拉电阻的双向I/O口,作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1
13、 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE:系统扩展时,PO口是8位数据线和低8位地址线复用引脚,用于把PO口输出的低8位地址锁存起来,以实现低8位数据和地址的隔离,由于引脚以晶振1/6固定频率输出正脉冲,因此它可作为外部时钟和外部定时脉冲使用。 /PSEN:为低电平时。
14、可实现对外部ROM单元的读操作。/EA/VPP:当/EA保持低电平时,对ROM的读操作限定在外部程序存储器,当/EA端保持高电平时,对ROM的读操作是从内部程序存储器开始的。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.1 时钟电路和复位电路时钟电路:单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。本系统设计采用内部振荡方
15、式。复位电路:为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般电路正常工作需要供电电源为5V±5%,即4.755.25V。RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,上电复位是直接将RST端通过电阻接高电平来实现单片机的复位如图3.3所示。图3.3 复位、时钟电路3.2 DA转换模块的介绍 典型D/A转换器芯片DAC0832,D/A转换器输入的是数字量,经经转换后输出的是模拟量,DAC0832是一个8位D/A转换器,“8位”是指输入数字量的位数
16、。它决定了D/A转换器的分辨率,分辨率是D/A转换器对输入量变化敏感程度的描述,一般来说,数字量的位数越多,分辨率也就越高,转换器对输入量变化敏感程度也就越高;由单电源供电,在+5到+15V范围内均可正常工作;基准电压的范围为+10V;电流建立的时间为1us;COMS工艺,低功耗(仅为20mv),与单片机直接相连。DAC0832芯片为20引脚、双列直插式封装,其引脚排列图如图3.2所示。1 202 193 184 175 166 157 148 139 1210 112345678910CSWR1AGNDDI3DI2DI1DI0VrefRfbDGNDVccILEWR2XFERDI4DI5DI6
17、DI7Iout2Iout1图3.2 DAC0832 引脚DAC0832转换器的引脚功能:电源类:Vcc 芯片电源电压 +5V至+15V。VREF 参考电压 10V至+10V。RFB 反馈电阻引出脚,此端可接运算放大器输出端。AGND 模拟信号。DGND 数字信号。控制类:ILE 输入锁存允许信号,高电平有效。CS 片选信号,低电平有效,当ILE、CS、WR1同时有效时,LE=1输入寄存器的输出随输入而变化,WR1为上升沿,LE=0 输入数据锁存到输入寄存器,数据进入D/A转换器。DI7-DIO 转换数据输入。Iout2 电流输出2,连接运放同向输出端。Iout1 电流输出1,连接运放反相输出端
18、,当输入数字全“1”时,输出电流最大,全“0”时,输出电流为0.3.2.1 D/A转换电路 本设计采用的是DAC0832实现的数据数模转换,P0口和DAC0832的数据口直接相连,DA的CS与P3.7连接,XFER和WR2接地,WR1和单片机的WR相连,让DA工作在单缓冲方式下,DA的8脚接参考电压,DA的基准电压为+10V,DAC0832是电流输出,为了取得电压输出,所以本设计在DAC0832的输出端连接了运算放大器OPAMP,将DA的输出电流转换成电压,通过改变P0口的数据便可改变0832的输出电压,如P0=0X00时,DAC0832的输出电压应为0。.其硬件框图如图3.4所示:DI0 V
19、CCDI1 ILE DI2 AGNDDI3 DGNDDI4 /WR2DI5 REBDI6 /XFERDI7 VREF/CS IOUT2/WR1 IOUT11 23456789vccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.7P3.6vccGNDBAT110VRP1RV250KR4100RV1500 OUTDAC0832OP1P图3.4D/A转换电路3.3 显示电路 设计要求显示当前电压值,因此可以采用液晶显示或数码管显示两种方法,考虑到数码管显示比较单调,因此采用常用的液晶显示,液晶显示模块具有体积小、功耗低、显示丰富等特点,所以本设计中采用了162L液晶显示模块,
20、LCD技术和半导体技术结合使改显示模块具有高可靠性和低功耗的特点。而且此模块内部有字符产生存储器和数据存储器,该显示模块可直接与单片机相连接,采用直接访问方式,所以所有的显示功能由控制器用指令实现。由单一的+5V电源供电,数据传送方式有4位和8位两种选择内有显示92个ASII字符和92个特殊字符的字库。因此本设计用162L液晶显示,第一行显示“输出电压”,第二行显示“预置电压(当前电压)”,其硬件电路图如图3.5所示: D7 D6 D5 D4 D3 D2 D1 D0 E RW RS VEE VDD VSSP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7VccGNDP3.5P3.
21、4P3.1 LCD图3.5 显示电路3.4 控制电路本设计的控制电路是由按键控制的,按键是由硬件和软件构成的,硬件是指按键的结构及其主机的连接方式;软件是指对操作的识别与分析、即按键管理的程序。按键按其工作原理又可分为编码式按键和非编码式按键,这两类按键主要区别是识别按键符及给出相应键码的方法。编码式按键主要是用硬件来实现对键的识别;非编码式按键主要是由软件来实现键盘的定义与识别。非编码式按键按照与主机的连接方式不同,可分为独立式键盘和矩阵式键盘。独立式按键:独立式按键中,每个按键占用一根I/O口线,每个按键电平相对独立。I/O口通过按键与地相连,无键按下时,引脚端为高电平,有键按下时,引脚电
22、平被拉低。外部可接上拉电阻也可不接上拉电阻。矩阵式按键:行列式键盘采用行列电阻结构,当按键较多时所占用的I/O口线相对较少,按键规模较大,其优点越明显。所以,当按键数口大于8时,一般采用矩阵式键盘结构。然而本设计只需用4个按键口数,所以选用的是独立式按键。其硬件电路图如图3.6所示:P1.0P1.1P1.2P1.3GND图3.6 控制电路3.5电源电路本设计电源电路采用的是固定电压输出电路,输出正、负电压电路,经过整流、滤波所得到的直流电压较平滑,但是输出的直流电压不稳定,所以在滤波电路之后加接稳压电路,由三端稳压器7805和7815为芯片,液晶显示器,放大器等各部分电路提供电源。其硬件电路如
23、图3.5所示+。 +5VC12 C80.1uf 10ufC13 C9 -5V0.1uf 10ufGNDGND+ C4 2200uf C10 BR1 0.1uf C11 0.1uf C5 2200ufV1 VO GNDU6 7815U7 7815 GNDV1 V0+C6 C1410uf 0.1ufC7 C1510uf 0.1ufV1 V0 GND GNDV1 V0+U8 7805U9 7805+AC 220V图3.5 电源电路第四章 软件设计 本设计的软件设计分为主程序模块、显示程序模块、D/A转换程序模块、控制程序模块等模块构成的,主程序主要完成的是子程序的调用,显示模块显示设置的电压,转换模
24、块主要是将数字量转换成模拟量,电压的设定由控制模块完成下面用流程图以及程序将每个模块进行简单的介绍。4.1 主程序模块主程序主要完成硬件初始化,子程序调用和程序间的切换,由于本设计要求步进电压的加减、电压的显示、转换三种方式切换功能,所以主程序除了要进行硬件部分的初始化以外还要进行各个程序之间的调用和切换。主程序流程图如图4.1所示:开始初始化程序循环调显示程序调D/A输出程序调键扫程序图4-1主程序流程图程序: void main() keynum=0; /ADC_SCL=0; /ADC_OE=0; ge=0; shifen=0; Init(); while(1) /ADC_SCL=ADC_
25、SCL; keyscan(); /按键的扫描 keyscan4(); volt=ge*10+(shifen); DAC0830_OUT(volt); 4.2 显示程序模块本设计显示模块主要完成的是电压值的显示,有电压调整的显示以及输出电压的显示。所以本设计不仅可以完全显示步进电压调整的过程还显示调整完后确定的输出电压值。其流程图如图4.2所示: 开始 写数据、指令到LCD162L初始化写电压到LCD162L暂存显示的电压值调显示子程序结束图4.2 显示模块流程图通过按键改变电压值?YN 程序:void write_com(uchar com) /写指令到1602 RS=0; EN=0; RW=
26、0; P2=com; delay(1); EN=1; delay(1); EN=0;void write_date(uchar date) /写数据到1602 RS=1; EN=0; RW=0; P2=date; delay(1); EN=1; delay(1); EN=0;void Init() /初始化 uchar num; EN=0; write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80); for(num=0;num<16;num+)write_date(table1num);
27、delay(5);write_com(0x80+0x40);for(num=0;num<16;num+)write_date(table2num);delay(5);void write_voltage(uchar add,uchar dat) /写电压到1602 write_com(0x80+0x40+add); write_date(0x30+dat/10); write_date(0x30+dat%10); void write_voltage2(uchar add,uchar dat) /写电压到1602 write_com(0x80+0x40+add); write_date(
28、0x30+dat); void write_voltage1(uchar add,uchar dat) /写电压到1602 write_com(0x80+add); write_date(0x30+dat/10); write_date(0x30+dat%10); void write_voltage3(uchar add,uchar dat) /写电压到1602 write_com(0x80+add); write_date(0x30+dat); 4.3 D/A转换程序模块本设计的D/A转换模块由DAC0832直接与单片机连接,将数字量转换成模拟量,然而DAC0832输出的是电流形式的模拟量
29、,因此要经过两级运算放大将电流转换成电压。其流程图如图4.3所示:开始初始化确定输出数字量初值零输出数字量进行D/A转换延时加输出数字量图4.3 D/A转换模块流程图输出值=13.9?YN 程序:/void ADC0808_STA() /ADC0808开始信号/ /ADC_STA=0; / delay1(); /ADC_STA=1;/void ADC0808_RD() /P0=0xff; /ADC_OE=1; /volt1=P0; /ADC_OE=0; /ge1=volt1/21; /a=volt1%21; /shifen1=(a-2)/2; write_voltage1(11,ge); wr
30、ite_voltage3(14,shifen);void DAC0830_OUT(uchar dadata) /写电压数据到DAC0832 DAC_CS=0; P0=dadata; DAC_WR=0; delay(1); DAC_WR=1; DAC_CS=1; 4.4 控制程序模块 本设计控制模块由独立式按键控制的,由四个按键控制电压的预置,加,减,确定预置电压值。按键的加、减键控制的是步进电压0.1V、1V的加减。其流程图如图4.4所示。开始初始化图4.4 控制模块流程图调用显示程序结束有键按下?NY 程序:void keyscan() /键盘扫描 if(key1=0) /delay(10)
31、; if(key1=0) keynum+; while(!key1); if(keynum=1) write_com(0x80+0x40+13); write_com(0x0e); if(keynum=2) write_com(0x80+0x40+10); write_com(0x0e); if(keynum=3) keynum=0; write_com(0x0c); while(key1=0); if(keynum!=0) if(key2=0) /delay(300); if(key2=0) if(keynum=1) shifen+; if(shifen>=10) shifen=0;
32、BJ=0; delay(200); BJ=1; ge+; if(ge>=14) ge=13; BJ=0; delay(200); BJ=1; write_voltage2(13,shifen); write_voltage(10,ge); if(keynum=2) ge+; if(ge>=14) ge=13; BJ=0; delay(200); BJ=1; write_voltage(10,ge); while(key2=0); if(key3=0) if(key3=0) if(keynum=1) shifen-; if(shifen=-1) if(ge>0) shifen=
33、9; BJ=0; delay(200); BJ=1; ge-;else shifen=0; if(ge=-1) ge=0; BJ=0; delay(200); BJ=1; write_voltage2(13,shifen); write_voltage(10,ge); if(keynum=2) ge-; if(ge=-1) ge=0; BJ=0; delay(200); BJ=1; write_voltage(10,ge); while(key3=0); void keyscan4() if(key4=0) / delay(10); if(key4=0) while(!key4); /ADC0
34、808_STA(); /delay(10); ADC0808_RD(); while(key4=0); 第5章系统的仿真与调试5.1 在keil中调用proteus进行MCS外围器件的仿真(1)在proteus安装目录下 VDM51.dll文件复制到Keil安装目录的C51BIN目录中。(2)修改keil安装目录下 Tools.ini文件,在C51字段入TDRV5=BINVDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存。(3)打开proteus,画出相应电路在proteus的tools菜单中选中use remote debug m
35、onitor。 (4)在keil中编写MCU的程序。(5)进入KEIL的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver 在进入seting。(6)在keil中进行debug,同时在proteus中查看直观的结果。:5.2 protenus软件的仿真绘制直流电压源的软件仿真图步骤分一下四步:(1)查找所需要的元器件;(2)根据电路图进行连线;(3)是用来写线所对应的坐标;(4)装载keil生成和HEX文件进行仿真。通过以上步骤,来实现基于单片机的直流电压源设计的仿
36、真,将电压用粗调(步进1V)调整4V,再用电压的微调(步进0.1V)调整0.1V,使液晶显示器上显示的电压为4.1V,观察输出电压值,如仿真图5-2所示。图5.2 直流电压源proteus仿真图5.3 调试与运行单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。把编写好的程序放入仿真软件中,结合硬件电路进行调试与运行。(1)在仿真软件中按下确定按钮,从而达到仿真的目的;(2)LCD显示器显示当前电压00.0初始化;(3)按照本次实际任务要求,逐个调试功能是否能实现。结论经过近二个月的努力,在老师和同学的商讨
37、和帮助下,我较好的完成了设计任务,通过此次毕业设计,我重新认识到了自学的重要性,以及学以致用的道理。我在图书馆查阅了大量的资料,同时也认识到了图书馆的重要作用。通过此次的基于单片机的直流电压源的设计,让我重新拾起了以前所学习的电子知识,及我觉得此次设计让我更加巩固了所学的知识并在设计的过程中学会了与时俱进,克服了编程的枯燥感,让我受益匪浅。在学习单片机这门课程的时候,我们应该好好你的记笔记,课下好好的做练习题才能把C程序设计灵活的运用到单片机程序的设计上,在单片机这门课程的学习上,我们还应该知道一种常用的仿真软件proteus软件,可以让你我们更为清晰的掌握STC89C51/52系列的实际应用
38、上的设计。在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,以丰富自己的知识。也使我加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正。参考文献1张立科编著 单片机典型模块设计实例导航 北京人民邮电出版社,20042李金利编著 单片机原理及应用技术 北京高等教育出版社,20043董晓红编著 单片机原理及接口技术 西安电子工业出版社,20074王振红编著 数字电路设计与应用实践教程 北京机械工业出版社,20035张靖武编著 单片机系统的proteus设计及仿真 北京清华大学出版社,20036潭浩强编著 C程序设计北京:清
39、华大学出版社,20047 马忠梅编著 单片机的C语言应用程序设计 北京航空航天大学出版社,19988 刘建清编著 从零开始学单片机C语言 清华大学出版社,20069 张永楓编著 单片机应用实训教程 清华大学出版社,2008附录1电路原理图附录2源程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit key1=P10; /“设置” /端口定义sbit key2=P11;/“+”sbit key3=P12;/“-”sbit key4=P13; /“确认输出”sbit RS=P34;sbit
40、 EN=P35; /LCD1602控制sbit BJ=P33;sbit RW=P31;sbit DAC_CS=P37;sbit DAC_WR=P36; /DAC0832控制sbit ADC_STA=P14;sbit ADC_OE=P15;sbit ADC_SCL=P16;uchar code table1="9_OUT-XS_V:00.0V"uchar code table2="DACSET_V:00.0V"uchar ge,shifen,keynum,volt,volt1,ge1,shifen1,a;void delay(uint z) /延时函数 u
41、int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void delay1();void write_com(uchar com) /写指令到1602 RS=0; EN=0; RW=0; P2=com; delay(1); EN=1; delay(1); EN=0;void write_date(uchar date) /写数据到1602 RS=1; EN=0; RW=0; P2=date; delay(1); EN=1; delay(1); EN=0;void Init() /初始化 uchar num; EN=0; write_com(0x38
42、);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80); for(num=0;num<16;num+)write_date(table1num);delay(5);write_com(0x80+0x40);for(num=0;num<16;num+)write_date(table2num);delay(5);void write_voltage(uchar add,uchar dat) /写电压到1602 write_com(0x80+0x40+add); write_date(0x30+dat/10);
43、 write_date(0x30+dat%10); void write_voltage2(uchar add,uchar dat) /写电压到1602 write_com(0x80+0x40+add); write_date(0x30+dat); void write_voltage1(uchar add,uchar dat) /写电压到1602 write_com(0x80+add); write_date(0x30+dat/10); write_date(0x30+dat%10); void write_voltage3(uchar add,uchar dat) /写电压到1602 write_com(0x80+add); write_date(0x30+dat); /void ADC0808_STA() /ADC0808开始信号/ /ADC_STA=0; / delay1(); /ADC_STA=1;/void ADC0808_RD() /P0=0xff; /ADC_OE=1; /volt1=P0; /ADC_OE=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字素养背景下数字资源批判性应用能力评价方法与工具研究教学研究课题报告
- 阳泉聚会活动策划方案(3篇)
- 施工方案实例论文(3篇)
- 夜场秒杀活动策划方案(3篇)
- 邮政策划活动方案(3篇)
- 2026年锡矿(半导体光伏)项目投资计划书
- 养生汤锅活动策划方案(3篇)
- 2025年能源行业绿色技术发展报告
- 人工智能视角下学生个性化学习系统界面设计的关键技术研究教学研究课题报告
- 2025年建筑行业绿色建材应用报告与智慧城市建设创新报告
- GB/Z 45463-2025热喷涂涂层孔隙率的测定
- 宫外孕补偿协议书模板
- 电梯使用单位日管控、周排查、月调度电梯安全检查记录表
- 外科牵引护理操作规范
- 物流运输管理制度
- 2025年停车场车辆看管协议范本
- 数学-安徽省天一大联考2024-2025学年2025届高三上学期期末检测试题和答案
- DB32-T 4444-2023 单位消防安全管理规范
- 金融纠纷调解制度
- 自愿放弃劳动合同书
- 2024年地下储气库行业现状分析:全球地下储气库数量增至679座
评论
0/150
提交评论