基于单片机数控直流电源设计_毕业论文(编辑修改稿)内容摘要:
tconv=10us,转换完毕, EOC上升。 CS下降,转换结果的 MSB位 B11输出到 Dout供读数。 MSB位 D7送到 Din,在 CS下降之处, tSU时间处由 CLK上升将 Din数据移入输入寄存器。 ,将 AD结果的 B10位输出到 Dout。 上电时,第一周期读取的 Dout数据无效,应舍去。 74HC573 74HC573 概述 74HC573 是一款高速 CMOS 器件, 74HC573 引脚兼容低功耗肖特基 TTL( LSTTL)系列。 74HC573 包含八路 D 型透明锁存器,每个锁存器具有独立的 D 型输 入,以及适用于面向总线的应用的三态输出。 所有锁存器共用一个锁存使能( LE)端和一个输出使能( OE)端。 当 LE 为高时,数据从 Dn 输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的 D 输入每次的变化而改变。 当 LE 为低时,锁存器将存储 D 输入上的信息一段就绪时间,直到 LE 的下降沿来临。 当 OE为低时, 8 个锁存器的内容可被正常输出;当 OE为高时,输出进入高阻态。 OE端的操作不会影响锁存器的状态。 74HC573 与以下型号逻辑功能相同: 74HC563,但输出为反相 74HC373,但引脚布局不同 74HC571 的特点: 特点: 三态总线驱动输出 置数全并行存取 缓冲控制输入 使能输入有改善抗扰度的滞后作用 管脚图如图所示: UA741芯片 uA741通用高增益运算通用放大器 , 双列直插 8脚或圆筒 8脚封装。 工作电压 177。 22V,差分电压 177。 30V,输入电压 177。 18V,允许功耗 OP07(超低失调精密运放) 一样。 管脚图如图所示: AT89S51 芯片的引脚图如图所示: AT89S51具有如下特点: 40个引脚, 4k Bytes Flash片内程序存储器, 128 bytes的随机存取数据存储器( RAM), 32个外部双向输入 /输出( I/O)口, 5个中断优先级 2层中断嵌套中断, 2个 16位可编程定时计数器 ,2个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器。 此 外, AT89S51设计和配置了振荡频率可为 0Hz并可通过软件设置省电模式。 空闲模式下, CPU暂停工作,而 RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。 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)这是由于上拉的缘故。 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:来自反向振 荡器的输出。 测试电路 ICL7107是一块应用非常广泛的集成电路。 它包含 3 1/2位数字 A/D 转换器,可直接驱动 LED 数码管,内部设有参考电压、独立模拟开关、逻辑控制、显示驱动、自动调零功能等。 参考电路: 第四章 系统软件设计 软件要实现的功能是:键盘对单片机输入数据,单片机对获得的数据进行处理,送到数模转换器,再送入数码管显示,实现对电压的控制。 1. 主控程序 主控程序首先进行系统的初始化,然后显示电路中的输出电压,初始应为0V。 按下功能转换键进入预置电压环节,等待键盘输入。 根据键盘的不同输入,按下确定键后转入相应的应用程序。 执行后,数码管显示电路中的电压。 直到被下一次 设置电压打断。 2. 过流保护程序 过流保护由中断实现,通过 AD 转换检测电路中的电流,若电流超过额定电流的 倍时蜂鸣器发出警报并在 5 秒后初始化电路。 若电流超过额定电流的 倍时立即初始化原电路。 初始化函数 进入键盘扫描函数,并根据所按键的不同运行不同的子函数 进入检验函数,判断电路中的电流是否超过额定电流,若超过则作出相应的反应. 进入大循环 3. 键盘显示程序 刚上电时,数码管显示的是电路的输出电压。 当第一次按下键一(即 s1)时,进入设置步进初值的模式,数码管显示设置的 初始步进值(用 s2 和 s3 分别控制步进初值的增减),按下 s4 为确定键,此时数码管显示为电路输出电压。 当数码管显示输出电压时,若连续按下两次 s1 则进入常用电压设置,用 s2 和 s3分别控制常用电压的增减,其中常用电压有 3V,5V,6V,9V,12V。 按下 s4 为确定键,数码管显示为电路输出电压。 当数码管显示为电路输出电压,连续三次按下 s1则进入步步函数,此时电路的输出电压以原电路的输出电压为基础步步增大或减小,步进值为。 增加到 13V 时开始减小,并在减小到 0V 时渐次增大。 当再次按下 s1 键时停止步步函数。 在按下确 定键后再按一次 s4 则为锁定,此时再按 s1, s2, s3 键均无效,知道再次按下 s4 键解锁。 第八章 心得体会 附录一: 完整的系统源代码: include define uchar unsigned char 判断,若电流大于额定电压的 倍,立刻进行初始化 判断,若电流大于额定电压的 倍,进入中断,同时蜂鸣器发出报警,并在 5 秒后进行初始化。 define uint unsigned int /* 变量解释 : num0 输出电压除以 AD芯片( TLC2543)的读取电压的比值 num1 num1的值为放大比例,即输出电流除以 DA芯片( DAC0832)的输出电压 *100(即显示的值 )的比值 max 当电路中电流为最大时, AD输出的电流 */ define num0 1 define num1 1 define max 1 /* 变量解释 : flag 判断是否锁定键盘 flag1 常用电压的设定 flag0 判断 DA值为 bujin,还是常用电压 ,还或是 bubu函数 s1num s1按键的值 s4num s4按键的值 a 判断 bubu程序是加还是减 */ uchar s1num,s4num,flag,flag1,flag0, qian,bai,shi,ge,a。 /* 变量解释 : shu 输出电压的显示值 yibu 自动步进的 DA值 bujin 步进的设定值 */ uint shu,yibu,bujin。 uchar code table1[]={ //normal number 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}。 uchar code table2[]={ //+39。 .39。 number 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xdf}。 uchar code table3[]={ //常用电压 0x12c,0x1f4,0x258,0x384,0x4b0}。 sbit SCL=P1^7。 //I2C的数据 /地址传输端 sbit SDA=P1^6。 //I2C的时钟端 sbit dula=P3^2。 //数码管的段选,用来选择数码管显示的数字 sbit wela=P3^7。 //数码管的位选,用来选择显示 的数码管 sbit csda=P1^4。 //DAC0832的片选信号端 sbit wr=P1^5。 //外部写控制 sbit s1=P3^0。 //按键 1,即功能切换键 sbit s2=P3^1。 //按键 2,即增加键 sbit s3=P3^5。 //按键 3,即减小键 sbit s4=P3^6。 //按键 4,即锁定解锁键 sbit ADEOC=P2^4。 //AD转换结束端,在最后的 I/O CLOCK下降沿之后, //EOC从高电平变为低电平并保持到 转换完成和数据准备传输为止 sbit ADCLOCK=P2^3。 //输入输出时钟端 sbit ADIN=P2^2。 //串行数据输入端 sbit ADOUT=P2^1。 //AD转换结果的串行输出端 sbit adcs=P2^0。 //AD的片选端 sbit di=P2^7。 //蜂鸣器 void delay()。 //延时一微秒左右 void delayms(uint z)。 //延时单位为毫秒 void init()。 //初始化函数 void keyscan()。 //键盘扫描函数 /*I2C函数声明 */ void start()。 //开始 I2C通讯 void stop()。 //停止 I2C通讯 void respons()。 //应答 void write_byte(uchar date)。 //写数据 uchar read_byt。基于单片机数控直流电源设计_毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。