数控直流稳压电源设计.doc_第1页
数控直流稳压电源设计.doc_第2页
数控直流稳压电源设计.doc_第3页
数控直流稳压电源设计.doc_第4页
数控直流稳压电源设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

智控直流稳压电源学 院:电子与信息学院 专 业:信息工程 目 录目录 2要求 3摘要 4abstract . 4第一章 总论 51.1 作品介绍. 51.2方案论证及比较. 6 稳压部分方案的选择 6变压器的选择.7 稳压电路元件的选择.8 运放的选择.8 调整管的选择.8 分压电阻的选择.8主控芯片的选择.8系统供电的选择.8 lm324供电方式的选择.9 运放电源的选择.9 控制部分的电源选择.9键盘设计的选择.9显示模块的选择.10第二章 硬件电路模块详细设计.102.1主电源部分的总体设计.102.2整流滤波电路的设计.102.3控制部分的整体设计.11矩阵键盘详细设计.11红外遥控的详细设计.12掉电保护的详细设计. 12显示电路的详细设计.13声光报警的详细设计.13pwm电路.14第三章 系统软件设计. 153.1矩阵键盘及键盘锁定. 153.2红外编码.16红外信号传送原理.16红外编码方式.16单片机实现红外线解码.173.3掉电保护.183.4显示模块.193.5 声光报警.203.6 pwm.213.7 中断流程图.223.8 主程序流程.23第四章 系统测试.244.1步进输出电压的测量 .244.2设定输出电压测试.254.3带负载后输出电压测试.254.4掉电保护测量. 264.5红外遥控测试. 274.6按键及1602显示测试. 27附录1参考文献和资料.282总原理图.283作品照片.294源代码.30数控直流稳压电源一、 设计任务设计并制作一个直流可调稳压电源。二、 设计要求1、基本要求:1) 当输入交流电压为220v10%时,输出电压在3-13v可调;2) 额定电流为0.5a,且纹波不大于10mv;3) 使用按键设定电压,同时具有常用电平快速切换功能(3v、5v、6v、9v、12v),设定后按键可锁定,防止误触;4) 显示设定电压和测量电压,显示精度为0.01v。2、扩展要求:1) 输出电压在0-13v连续可调;2) 额定电流为1a,且纹波不大于1mv;3) 掉电后可记忆上次的设定值;4) 两级过流保护功能,当电流超过额定值的20%达5秒时,电路作断开操作;当电流超过额定值的50%时,电路立即断开。具有光提示(如led);5) 其他创新。摘要: 本系统由整流滤波的串联型稳压电路模块、avr单片机控制模块、选择模式的按键模块、红外遥控模块、掉电保护模块、过流保护模块、电压电流显示模块,共7个模块组成。 利用avr的定时计数器输出占空比可以改变的pwm信号,通过改变占空比来调节运放的同相输入端的参考电压,输出不同的电压。 掉电保护接到单片机的外部中断int0,使系统在掉电前能够将数据保存好,增加了系统的稳定性。在调节模式上我们采取按键控制和远程遥控控制。红外接在单片机外部中断的int1,按键则采取快速扫描的办法,从而使输出电压工作在以下模式:设定3v、设定5v、设定6v、设定9v、设定12v、步进0.01v、递减0.01v、步进0.1v、递减0.01v、步进0.5v、递减0.5v。为了防止误触,还添加了锁定按键。在过流保护上,我们完全采用软件控制,直接控制参考电压,从而控制输出电压,节省了硬件。在显示上我们采取常用的1602液晶显示,同时显示电流和电压。 本系统功能齐全,不但完成了所有的基本功能和发挥功能,还添加了新的功能,并且具有友好的人机界面,使用方便。abstract: this system consists of five units : serial voltage regulator,avr mcu unit , key uint for mode choices , ir mode unit , power-down protection unit,over-current protection unit, display unit . here we apply avr mcus pwm signal , whose duty-cycle can be changed. output voltage will be controled by changing the duty-cycle. power-down protection is connected to the ports int0,which can make the system protect the data in good. it can improve the stability of the system. we have taken in regulating the mode button on the remote control and remote control .ir is connected to the ports int1, key is to take a quick scan approach ,which can change the motors working situation. so the fans can works under the following elevle modes: set 3v mode , set 5v mode , set 6v mode , set 9v mode , set 12v mode , step 0.01v , decreasing 0.01v ,step 0.1v , decreasing 0.1v ,step 0.5v , decreasing 0.5v .besides, in order to prevent inadvertently, also added a lock button. in the over-current protection, we have full use of software control, direct control of the reference voltage to control the output voltage, less hardware. in the show, we take common lcd 1602, also shows current and voltage. this system fully functional, not only completed all the basic features and function, but also adds new features, and has a friendly interface, easy to use.第一章 总论11 作品介绍本系统由整流滤波的串联型稳压电路模块、avr单片机控制模块、选择模式的按键模块、红外遥控模块、掉电保护模块、过流保护模块、电压电流显示模块,共7个模块组成。其中每个模块内部又由一些更具体的功能单元或微控制部分组成。系统的主要特色有:1、 功能模式化: 模式1:设定3v 模式2:设定5v 模式3:设定6v 模式4:设定9v 模式5:设定12v 模式6:步进0.01v 模式7:递减0.01v 模式8:步进0. 1v 模式9:递减0.1v 模式10:步进0.5v 模式11:递减0.5v 模式12:锁定 另外,加上红外功能和1602显示界面,使系统更人性化。将各种功能模式化,有机统一起来2、 avr单片机协调和控制各个模块单元:3、 丰富友好的人机交界面: 1602显示当前的电流和电压值 过流时蜂鸣器和发光二极管报警4、 高效的软件算法: 功能模式化,程序函数化、模块化 每个功能用相应的函数来实现,形成自上而下的结构,增加可读性和可移植性5、 充分考虑系统的稳定性 单片机部分参照almega提供的emc手册 电源接大滤波电容、小瓷片电容滤掉高频 红外部分接上防干扰电容6、 良好的pcb工艺: 良好的元件布局:数字模块和模拟模块分离 变压器电源部分模块远离单片机 良好的布线:单点着地减少模块间的干扰大线宽提高稳定性减少布线的环路面积12方案论证与比较 下面就总体方案和子系统方案进行论证与比较,从而得出可靠的方案。1.2.1稳压部分方案的选择: 方案一:采用lm317,其输出电压至少为1.25v,所以采用外接偏压电路,使采用输出电压从零调起。(1) 采用恒流源,通过电阻产生负的偏置电压。通过二极管d,使q1的基极电压为-0.7v,从而通过调节r5来改变射级电流,继而改变集电极电流,从而使r4上有从上到下的电流流过,通过r3、r4、r5的配合,使lm317的调整端电位为-1.25v,则输出即可从零起调。 (2)通过运放的的负反馈产生的电流来产生负的偏置电压。 利用单片机的pwm产生方波,通过调节占空比,经过整流滤波来输出不同的电压值给同相输入端,从而使反相输入端的电压值也不同。则通过r18、r19的电流也不同,通过逐渐调节此电流,使输出电压也逐渐变化。方案二:采用串联型稳压电路,通过pwm的方波来控制输出电压。 利用单片机产生pwm方波,通过调节占空比使输出电压逐渐变化,从而使lm324的同相输入端电压不断变化,所以其反相输入端的电压也逐渐变化。利用分压原理,其输出的电压也是逐渐变化的,并且满足线性关系。方案比较:方案一(1):所用元件少,价格低廉,稳定性也比较好,但是其调节比较困难,电阻之间的协调比较麻烦,而且不利于与软件结合。 方案一(2):很好地利用了软件控制方法,但是lm317的温漂难以抑制,而且其输出与同相输入端的电压不成比例,不利于智能控制。 方案二:采用功能强大的avr单片机atmega16对电路进行智能控制,与软件很好地结合起来。采用串联型稳压电路,当电阻选定以后能够很好地抑制温漂,并且减少误差。而且其输出与运放的同乡输入端的电压成正比,易于按键控制。 通过对比,很明显方案二无论是在稳定性上还是准确度上还是智能性上都优于方案一,故选择方案二。1.2.2变压器的选择 题目要求额定电流为1a,故变压器的输出电流至少要为1a,考虑到要留有余量,应大于1a。而稳压输出电压的最大值要求是13v,故其变压器电压应大于12v,再结合运放的供电,我们选择15v的变压器。为了系统的散热,我们加了一个风扇上去,其会消耗一定的电压。所以其额定功率至少要为二十几瓦,但是市场上没有15v、二十几瓦的变压器,所以我们选择15v/40w的变压器。1.2.3 稳压电路元件的选择 (1)运放的选择 lm324的电源电压范围宽,静态功耗小,共模抑制比高,价格低廉,是各方面性能都比较好的一种运放,所以我们选用lm324. (2)调整管的选择方案一:9013 方案二:8050 方案二:tip41 方案比较:9013属于低功率三极管,最大电流比较小,一般为0.1a,放大倍数约为150倍。8050三极管为中功率三极管,最大工作电流1.2a,放大倍数一般为几十倍。tip41是大功率三极管,最大输出电流大于1.5a,但是其驱动需要一个比较大的电流,故我们接两个调整管。第一个为9013,其用来放大电流并驱动tip41,第二个为tip41。 (3)分压电阻的选择 分压电阻既要起到分压的作用,又要不影响后面的电流和电压输出,故采用大的电阻。但是电阻如果过大,比如兆级的电阻,其稳定性不好,会有很大的波动,这会给后面的ad转换显示带来很大的误差。故我们选用510k和150k的电阻来分压。1.2.4 主控芯片的选择 方案一:采用at89s52单片机作为主控芯片。优点:at89s52作为一种比较成熟的单片机型号,广范应用于各领域技术比较熟练,价格相对便宜。缺点:其内部集成资源偏少,功能不够强大,中断源和定时器较少,且没有pwm可调占空比波形输出。方案二:采用amega16单片机作为主控芯片。优点:avr是51的升级版。amega16单片机功能强、高速度是其主要的优点,内部集成了较多的中断源和定时器资源及eeprom的优点,多种模式的pwm波形输出,很好地满足了本系统设计的要求。缺点:价格较at89s52单片机高。考虑到以上两种方案的优缺点,因本系统对单片机内部硬件资源的要求比较高,需要采用高速和功能强大的单片机型号。经比较,我们采用了方案二。1.2.5 系统供电的选择 我们选择输出电压为15v的变压器,其整流滤波后的电压为21v,已经足够后面的电路使用。 (1)lm324供电方式的选择 方案一:单电源供电。 方案二:双电源供电。 方案比较:方案一比较节省硬件,但是为了保持输出的准确性,我们应该保持供电电压的稳定性,而且此系统的负载较多,接过多负载单电源可能无法带动,而且影响lm324的稳定性。方案二虽然多用了硬件,但是在准确性和稳定性上都大大地提高了。从性价比上来看,很显然选择方案二。 (2)运放电源的选择。 lm324的内部电路图如图所示: 可以看出输出端与vcc之间连接着一个三极管和电阻,故其输出电压一定会小于vcc,因为要求最大值为13v,所以稳压芯片的稳压值应大于13v,而稳压芯片各方面的性能上都很好,所以负电源我们选择7912。从lm324的datasheet上可以看出,其供电的正负电源的压差应小于32v,所以正电源可以用7815。但是在接上7815之后,其输出最大只有12.6v,不能满足要求,故要提高正电源的电压。为此,我们将整流滤波后的电压接到正电源上。但是这个电压太大了,我们经过一个1k电阻的降压,将其降到了16.5v,满足了题目的要求,使输出达到了13v。 (3)控制部分的电源选择 方案一:采用稳压管加电阻来提供电压。 方案二:采用稳压芯片来提供电压。 方案比较:方案一电路简单、价格低廉,但是稳定性不好。而方案二则稳定性很好。为了保证显示电压的准确, ad转换的参考电压应该保持稳定,所以给主控芯片的电压也应该保持稳定,故选用方案二。avr单片机的电源电压一般为4.65v,所以我们选择78051.2.6 键盘设计的选择 方案一: 利用i/o口接成独立的按键,每个按键都对应一个i/o口。 方案二:利用pb口,接成4*3的矩阵键盘。 方案比较:方案一电路简单明了,操作方便,编程容易。但是其有一个致命的缺点就是占用了过多的i/o口,从而使系统的i/o口不够用。而方案二虽然在虽然编程相对难一些,但是其利用的硬件i/o口却少了很多,节约了资源。故选用方案二。1.2.7显示模块的选择 方案一:七段数码管 方案二:lcd1602 方案比较:方案一价格低廉,每显示四位需要用到8个i/o口。题目要求要能显示瞬时值和设定值,则至少需要两个四位数码管,这样会占用16个i/o口,而且还要外接一些电路,如595等,连接麻烦。而方案二的lcd1602则可以可以显示16*2个字符,却只占用11个i/o口,电路连接简单,不需外围电路,故选用方案二。第二章 硬件电路模块详细设计2.1 主电源部分12v交流输出220v交流输入 主电源部分经过变压器降压、整流滤波、稳压芯片、串联型稳压电路组成。17v直流输出风扇lm3245v输出 780579157815变压器整流滤波输出013v主电源部分的整机电路图。各个元件参数的选取:整流二极管:经变压器降压后的电压为15v,其最大反峰电压为21v,故整流二级管的耐压值应大于21v,in4001的耐压值为25v,故可以选用。滤波电容:理论上是滤波电容越大,纹波越小,但是电容越大,其价格越高。但是此电路对纹波要求较高,而且按要求电容的耐压值应大于21v,考虑到性价比我们在7815的滤波上选取4700uf/35v的电容,在7915的滤波上选取1000uf/25v的电容。保护电路:系统在断电的瞬间7805上会产生一个反峰电压,为了保护7805,在其输出与输入之间接上一个in401,当产生反峰值时,输出与输入的压降会被钳制在0.7v,能起到保护作用。2.2 控制部分 控制部分的硬件电路以mega16为核心,由矩阵键盘、红外、掉电保护、显示电路、声光报警、pwm等电路组成。 mega16pwm输出pd5lcd1602pc pd0、1 蜂鸣器pd4 红外int1掉电保护int0过流测量的adpa47过流报警灯pb7电压输出的ad 矩阵键盘pa03pb0pb6 2.2.1 矩阵键盘详细设计电路图如下: 在本系统中,针对多模式的调节要求,我们采用了矩阵键盘,仅用7个i/o口就控制了12个键盘。通过合适的编码,是操作界面更加人性化,操作过程更加简单。2.2.2 红外遥控的详细设计红外接收头很容易受到干扰,在其vcc和gnd引脚两端并接22u以上电容,可以很好地防止干扰,本电路中选用47u电容,另外,在红外接收头的vcc与电源的vcc间串接一个300 ohm左右的电阻,可以减少电源不稳定性的影响。其电路图如下: 2.2.3 掉电保护 mega16里面有一个512k的eeprom,可以用来在掉电情况下保护数据。它是作为一个独立的数据空间而存在的,可以按字节读写。eeprom 的寿命至少为100,000 次擦除周期。eeprom 的访问由地址寄存器、数据寄存器和控制寄存器决定。掉电保护电路图如下: 通过配置avr的熔丝位,设置bod掉电检测的电压为2.7v,并也允许bod检测。因此当avr的工作电压vcc降到2.7v以下时,avr就停止工作。电源电压监控芯片ht7044a的检测电压门限为4.4v,用于检测系统电源的电压。当电源电压大于4.4v时,ht7044a输出高电平,整个系统工作正常,当电源电压降到4.4v一下时,ht7044a输出低电平,作为avr外部中断int0的申请,从而进入中断,将重要数据写到eeprom中去。其中电容c13在电路正常工作时充电到vcc,在系统电源断电后,c13所存储的电能就释放出来,供给芯片工作,从而使芯片有足够长的时间将数据写到eeprom里面去。写入eeprom一个字节的时间为8ms,我们要存入的25个字节,那么写入的时间至少为200ms,所以我们采用2200u的大电容来延长放电时间。2.2.4 显示电路 显示电路的硬件比较简单,没什么外围电路,直接将lcd1602的引脚与mega16的相应引脚相连就行了。 2.2.5声光报警电路根据almega 16的技术文档资料,单片机的i/o口可以输入的灌电流最大为20ma,输出的拉电流最大为40ma,因此,可以直接驱动led灯,但要接上相应的限流电阻。 此系统的过流保护是通过软件来控制,只有声光报警涉及到硬件,此硬件比较简单,包含蜂鸣器和led,在ad中判断之后,决定是否触发此电路。mega16的输出电流能力不是很大,故通过一个pnp管进行放大,再结合软件来驱动蜂鸣器。当i/o口设为输出高电平时,其能输出20ma电流,发光二极管的正向压降在1.6v左右,所以限流电阻电阻r=(vcc-1.6)/0.02=160欧,故取限流电阻为220欧。其电路如图所示。 2.2.6 pwm电路 mega16里有包含有三个功能强大的定时/计数器,其中利用定时/计数器1能够产生不同频率、不同占空比的方波。本系统中采用输出不同占空比的方波,经过滤波后输出给lm324当参考电压。 pd5输出的是占空比不同的方波,为了提高精度,我们采用了10位的快速pwm,频率f=12m/1024=11.7k.所以要滤掉这个频率的信号比较容易,理论上是滤波回路的rc越大,其滤波效果越好。但是当rc越大时,其时间常数也就越大,也就是说系统的反应变慢了。所以在对滤波不产生大影响的情况下,应尽量减小时间常数。我们选用两阶的rc滤波电路,其截止频率f=,计算得15.9hz,显然其已经能够起到很好的滤波作用。其时间常数=rl=0.01s,反应速度也已经够了。 = =p第三章 软件设计部分软件设计部分与硬件对应,由矩阵键盘、红外、掉电保护、显示电路、声光报警、pwm等电路组成。3.1 矩阵键盘及键盘锁定扫描键盘用7 个 io 解决了检测 12个按键的问题,原理很简单:pb0pb3通常称为 pb的低四位,pb4pb6称为高三位。 扫描键盘时,先使高三位置为弱上拉高电平,低四位为低电平,此时按键按下时,高三位对应 io 被拉低,检测到一个信号;然后翻转,令高三位低电平,低四位为若上拉高电平,由于这个过程很快,按键仍然被按下,于是低四位检测低电平信号; 最后,通过高三位和低四位被拉低的 io 信息,就能够判断哪一颗按键被按下,这样就实现了 7个 io口检测 12个按键。键盘锁定方面,我们用了一个全局变量 lock存放键盘是否锁定的信息,每次取键值前先判断lock是否锁定开始扫描键盘有键接下?返回键值退出yn是否锁定?ny3.2红外编码1. 红外信号传送原理 红外接收头共3个引脚,分别是vdd,地和信号引脚。当接收到38khz频率的红外线时,信号引脚为低电平。没有收到38khz信号信号时,为高电平。红外发射头也是个引脚:vdd,地和信号引脚。信号引脚为高电平时,对外发射38khz红外线。 “1”和“0”的区分取决于脉冲之间的时间,称之为脉冲位置调制方式(ppm)。2. 红外编码方式红外遥控所采用的编码芯片为tc9012。由该芯片编码的一帧数据中含有32 位码,包含两次8 位用户码,8 位数据码和8 位数据码的反码及最后位的同步位。引导码由4.5ms 的载波和4.5ms 的载波关断波形所构成,以作为用户码、数据码以及他们的反码的先导。同步位(sy)是标志最后一位编码是“0”或“1”的标识位,它只有0.56ms的有载波信号构成。发射码的格式如下图所示: 3. 单片机实现红外线解码 由上述的原理分析可知,用单片机的计时器可以测量脉冲的宽度。配合以外部中断程序,即可以捕捉到8位的数据码。外部中断程序 接收第一个脉冲否引导码?是保存32位脉冲宽度数据脉冲宽度数据转换成4位16进制数脉冲宽度数据转换成4位16进制数根据第三位数据,改变输出的电压值e值中断程序返回3.3 掉电保护掉电后可记忆上次的设定值,我们用了一个中断,若发现掉电,则进入中断,在eeprom中保存当前的电压值,当插电后先读取eeprom的电压值,再输出此电压流程图如下:开始读取eeprom中上一次断电的电压,并输出是否断电?进入中断yn储存当前电压,写eeprom进入下面的模块3.4 显示模块我们采用了1602液晶显示屏,用数组存放要显示的内容,可在第一行显示当前电压、当前电流及在第二行显示当前选择的电压档具体包括写指令函数,写数据函数,数据转换函数等/1602显示函数群uchar table6;/1602显示的数组void write_com(uchar com)void write_dat(uchar dat)void get(uint v)void ledshow(uint v)uchar table14=3,5,6,9,12;void ledshow1(uint key1)流程图如下:开始转换数据写指令,写数据显示3.5 声光报警我们按扩展要求,两级过流保护功能,当电流超过额定值的20%达5秒时,电路作断开操作;当电流超过额定值的50%时,电路立即断开。具有声光提示读取两个ad的电压值,相减后除以测量电阻的值,如果发现电流大于1.2a则报警后把输出电压清零,如果发现电流大于1.5a则立即输出断电pb7点亮led灯用于光报警,声报警我们用定时器/计数器1的10位快速pwm的ocr1b输出pwm的方波,(见3.6),驱动蜂鸣器发出警告声效开始流程图如下:y输出电流是否超过1.5a输出电压清零n输出电流是否超过1.2ay声光报警n结束3.6 pwm输出avr单片机有两个8位定时/计数器(t/c0和t/2)和一个16位的定时/计数器(t/c1),每个计数器都能通过ocn脚输出pwm信号,共有三种模式:ctc模式、快速pwm模式和相位可调pwm模式。每种种模式都有各自的特点,由于考虑到本电路要用到占空比可调的pwm信号,所以选用了10位快速pwm模式,精度较高,在这里选用了定时/计数器1 快速pwm模式的时序图如下图所示: 在快速pwm模式下,当t/c1计数值与寄存器ocr1a的预设值匹配时,ocr1脚清零,计数值达到top值的时候,ocr1置位,通过改变ocr1a的值就能改变pwm信号的占空比。具体分为 pwm初始化和pwm电压设置函数void pwm_init()void set_v(float value)/以1mv为单位,如1.151v为11513.7主程序流程开始系统初始化开中断读eepromn是否有按键?y键是否锁定?y保持当前电压n用pwm设置电压y过流保护是否过流?nad读取当前电压、电流值显示当前电压、电流值及工作模式3.8 中断流程图:检测到红外信号检测到断电中断返回结束(此时已断电)写eeprom设置电压取红外数据键值int1外部中断读取当前电压值int0外部中断源程序:#include#include/缩写宏定义#define uchar unsigned char#define uint unsigned int/ 定义接口的高、低电平1602的端口#define show1602 portc#define pwm_d ocr1a#define pwm_out pd5/pb为键盘所在端口#define key_ddr ddrb#define key_port portb#define key_pin pinb/全局变量的定义uint jma4;uchar jiewei33;uchar flag;uint dianliu;char key=0; / 全局变量key,保存键值,无按键为0,方便不同函数进行访问char key1=0; void system_init()/系统初始化 ddrc=0xff;/1602的端口pc0-pc7 /ddrb=0xff;/键盘pb0-pb6,pb7为led灯 ddrd|=bit(0)|bit(1)|bit(7);/1602的端口pd0,pd1,pd6void zhongduan_init() /中断初始化ddrd&=bit(3); portd|=bit(3); gicr|=0x80;/ 允许int0 mcucr|=0x08; / int0下降沿触发 gifr=0xc0;/ 清除int0中断标志位 gicr|=0x40;/ 允许int0 mcucr|=0x01; / int0下降沿触发 sreg|=bit(7); ddrd|=bit(6); portd|=bit(6);/延时函数群void delay_us(unsigned int t) / 微秒级延时函数 while(t-) / 执行一周大约1us asm(nop); / 嵌入汇编,表示空操作, asm(nop); / 不执行任何指令,消耗时间, asm(nop); / 起到延时的作用 asm(nop); asm(nop); asm(nop); asm(nop);void delay_ms(unsigned int t) / 毫秒级延时函数 while(t-) delay_us(1000); / 执行时间大约1ms/延时函数群完毕/1602显示函数群uchar table6;/1602显示的数组void write_com(uchar com) /写入控制到1602 portd&=bit(1); portd&=bit(0); show1602=com; portd|=bit(7); delay_ms(1); portd&=bit(7);void write_dat(uchar dat) /写入数据到1602 portd|=bit(1); portd&=bit(0); show1602=dat; portd|=bit(7); delay_ms(1); portd&=bit(7);void get(uint v) /将v变为可以在1602上显示的数组 uchar i;uint j=10000; for(i=0;i5;i+) if(i!=2) tablei=0x30+(v/j)%10; j=j/10; else tablei=0x2e;table5=0x56;void ledshow(uint v) /显示数据v uchar i; uchar j; uint k; show1602=0xff; ddrd|=bit(0)|bit(1)|bit(7); portd&=bit(7); write_com(0x38); delay_ms(1); write_com(0x02); delay_ms(1); write_com(0x0c); delay_ms(1); write_com(0x06); delay_ms(1); write_com(0x80); delay_ms(1); get(v); for(i=0;i6;i+) write_dat(tablei); delay_ms(1); write_com(0x80+0x09); delay_ms(1); get(dianliu); for(i=0;i6;i+) write_dat(tablei); delay_ms(1); uint table15=3000,5000,6000,9000,12000;void ledshow1() uchar i; uchar j; uint k; show1602=0xff; ddrd|=bit(0)|bit(1)|bit(7); portd&=bit(7); write_com(0x38); delay_ms(1); write_com(0x02); delay_ms(1); write_com(0x0c); delay_ms(1); write_com(0x06); delay_ms(1); write_com(0x80+0x40); delay_ms(1); get(table1key1-1); for(i=0;i6;i+) write_dat(tablei); delay_ms(1); /1602函数群完毕/ad函数群void adc_init() /ad初始化 admux =0x40; /0100 0000参考电压是avcc,右对齐,单端adc0输入 adcsra=0xc6; /1100 0110 使能,开始转换,64分频 while(adcsra & bit(adsc); /等待第一次转换结束,adsc清零uint getad_out() uint data1,data2,data3,data4,data; admux=0x40; /0100 0000参考电压是avcc,右对齐,单端adc7输入 adcsra|=bit(adsc); /开始转换 while(adcsra&bit(adsc); /等待转换结束,ads

温馨提示

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

评论

0/150

提交评论