基于单片机实现智能电源的设计内容摘要:

比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。 比如加一条线就可以构成20键的键盘,而直接端口线则只能多出1键。 由些可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘要比直接法复杂一些,识别也要复杂一些。 列线通过电阻接正电源作为输出端,而列线所接的I/O端口则作为输入。 当按键没有按下时,所有输出端都是高电平,代表无键按下。 此时行线输出是低电平,一旦有键按下时,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了,键盘按键功能如下表1。 表1 键盘按键功能键号功能键号功能键号功能键号功能S11S55S99S13个位S22S66S10S14十分位S33S77S11S15百分位S44S88S12S16千分位 数字控制部分 单片机控制的基本系统数控部分 核心采用ATC98C51单片机编程产生PWM信号控制逆变变压器初级线圈的电流的流通情况在它的次级产生感生电流。 数控部分核心图。 元件的选取元件名电路中的标号原件值电阻R1 R2 R15 R33 R2310K 10K 100K R33:R23=2:1电容C1 C2 C3 C833pf 33pf 10pf 1200uf变压器TR2N=7芯片AT89C51整流桥 二极管G2SB82, D2,D3D2,D3为IN5822 AT89C51单片机简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。 AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除100次。 该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。 AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[10]。 ①主要特性:1)与MCS51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年2)全静态工作:0Hz24Hz3)三级程序存储器锁定4)1288位内部RAM5)32可编程I/O线6)两个16位定时器/计数器7)5个中断源 8)可编程串行通道9)低功耗的闲置和掉电模式10)片内振荡器和时钟电路②管脚说明: AT89C51的引脚图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)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在FLASH编程期间,此引脚用于输入编程脉冲。 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。 如想禁止ALE的输出可在SFR8EH地址上置0。 此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。 但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。 注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。 在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 ③振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件,XTAL2应不接。 有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 ④芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。 在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。 在闲置模式下,CPU停止工作。 但RAM,定时器,计数器,串口和中断系统仍在工作。 在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止[10]。 A/D转换 A/D转换电路这一部分采用的是常规的转换方法,即是才用模数转换芯片,其中在不同的精度场合要求不同位数的芯片,。 A/D转换电路由上面的A/D转换电路可以知道由红线标出的(IN7)是采样信号输入A/D转换的输入端,ADC0808的IN0、INININ7接的是模拟量输入我们在这次的设计选用的是IN7,ADD A、ADD B、ADD C接的是地址线,由于模拟量输入选用的是IN7所以在转换时这三个口应当接高电平。 ALE是地址锁存允许,START是芯片的启动引脚其上脉冲的下降沿启动一次A/D转换,在这里由于单片机还要有其他的工作我们在这里就将ALE、(/WR)共同决定(均为‘0’时ADC0808开始工作),EOC是转换结束信号,我们可以利用这个信号和单片机通信来调用后续的处理程序。 OE是输出允许端,OUT0、OUTOUT7是数字信号的输出端。 当我们需要读取数字信号的时间我们使OE口为高电平即刻从OUT0、OUTOUT7读取数据了((/RD)均为‘0’)。 在图中V+ref、Vref为参考电压的正负引脚,我们采用的参考电压是+5V就是V+ref接+5V、Vref接地,注意这个也关系到前面的采样电压的值的大小,因此我们要前后相互顾及即是要求V1小于+5V。 CLK接时钟信号我们在这里选用500KHZ由U2(74ls90)分频单片机的ALE信号可得(CLK=(12M/6)/4=500K)。 . 性能实现的引脚电平表引脚相关联的引脚需要的电平实现的功能ALE、STARTQ6=0=0锁存地址启动A/D转换ADD A ADD B、ADD C地址锁存74LS373的QQQ5Q3=Q4=Q5=1选择通道IN7OEQ6=0=0输出数字信号到ADC的数字输出口CLK74LS90的Q3提供ADC0808的工作时钟逐次逼近型A/D转换器ADC0808的基本原理:①转换开始前先将所有寄存器清零。 ②开始转换以后,时钟脉冲首先将寄存器最高位置成1,使输出数字为100…0。 ③这个数码被D/A转换器转换成相应的模拟电压uo,送到比较器中与ui进行比较。 1)若ui>uo,说明数字过大了,故将最高位的1清除;2)若ui<uo,说明数字还不够大,应将这一位保留。 ④然后,再按同样的方式将次高位置成1,并且经过比较以后确定这个1是否应该保留。 这样逐位比较下去,一直到最低位为止。 ⑤比较完毕后,寄存器中的状态就是所要求的数字量输出。 逐次逼近型ADC的工作原理很像用天平称重的过程。 只不过使用的砝码一个比一个小一半。 ⑥分辨率=mv ADC0808芯片引脚介绍 ADC0808引脚图IN0~IN7:为模拟量的输入口,我们选取IN3口为入口,外接可变电阻,通过改变阻值来控制模拟量的输入。 A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。 这里我们将A,B接高电平,C为低电平。 ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。 D0~D7:八位数据输出线,A/D转换结果由这8根线传送。 OE:允许输出信号。 当OE=1时,即为高电平,允许输出锁存器输出数据。 START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。 EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。 CLK:时钟输入信号,选用频率500KHZ [10]。 显示电路的设计 显示电路为了实现输出电压的实时监控,输出电压采样测量经过单片机的处理后并将输出电压用LED电子屏幕显示,用户可以从显示器上看见两个电压值:其一为单片机设置的电压值,即期望值。 其二为输出电压的实测值。 正常工作时两者相差很小。 一旦出现异常状况,用户可以看出期望值不符,从而采取相应的措施。 本次设计的显示电路如下图所示: 显示电路显示的原理:这里的显示主要牵涉到8255A芯片,要关系到8255A各个口的地址,由图可得A口的地址是00 ,(MOV R0,00H,MOVX @R0,A),紧接着由P0口送出需要点亮的等的代码由8255A的PB口输出(MOV R0,01H,MOVX @R0,A),A中是每一次要传送的代码,这样就达到了显示的目的了,(此处的显示器是共阴极的);虽然灯是依次点燃的但人的视觉暂留时间是24秒所以不会察觉。 8255A的结构 8255A的引脚图8255A由以下几部分组成:①三个数据端口A,B,C ②这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。 1)A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。 2)B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。 3)C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O③A组和B组的控制电路 这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。 A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。 ④数据总线缓冲器 8位的双向的三态缓冲器。 作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。 ⑤读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。 它接收片选信号CS 及系统读信号RD、写信号WR、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。 8255A的引脚信号 引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。 ①面向CPU的引脚信号及功能 D0D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式; CS:片选,输入,用来决定芯片是否被选中;RD:读信号,输入,控制8255A将数据或状态信息送给CPU; WR:写信号,输入,控制CPU将数据或控制信息送到8255A; A1,AO:内部口地址的选择,输入。 这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。 8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。