毕业设计论文-基于单片机的数控开关电源设计内容摘要:

字符那样用字符模块即可显示,要想显示汉字必须用图形模块。 本课设所选择的 LCD 是 AMPIRE12864 的汉字图形型液晶显示模块,可显示汉字及图形,图形液晶显示显示器接如图 8所示。 智能仪表综合课程设计 17 ADC0804A/D转换器 与单片机的接口电路 ADC0804 引脚图如下: 引脚功能及应用特性如下: CS 、 RD 、 WR (引脚 3):是数字控制输入端,满足标准 TTL 逻辑电 平。 其中 CS 和 WR 用来控制 A/D 转换的启动信号。 CS 、 RD 用来读 A/D 转换的结 果,当它们同时为低电平时,输出数据锁存器 DB0~DB7 各端上出现 8 位并行二进制数 码。 CLKI(引脚 4)和 CLKR(引脚 19): ADC0801~0805 片内有时钟电路,只要在外 部 “CLKI” 和 “CLKR” 两端外接一对电阻电容即可产生 A/D 转换所要求的时钟,其 振荡频率为 fCLK≈1/。 其典型应用参数为: R=10KΩ , C=150PF,fCLK≈640KHZ , 转换速度为 100μ s。 若采用外部时钟,则外部 fCLK 可从 CLKI 端送入,此时不接 R、 C。 允许的时钟频率范围为 100KHZ~ 1460KHZ。 INTR (引脚 5): INTR 是转换结束信号输出端,输出跳转为低电平表示本次 转换已经完成,可作为微处理器的中断或查询信 号。 如果将 CS 和 WR 端与 INTR 端 相连,则 ADC0804 就处于自动循环转换状态。 图 10 ADC0804 引脚图 智能仪表综合课程设计 18 CS = 0 时,允许进行 A/D 转换。 WR 由低跳高时 A/D 转换开始, 8 位逐次比较 需 88=64 个时钟周期,再加上控制逻辑操作,一次转换需要 66~ 73 个时钟周期。 在典型应用 fCLK= 640KHZ 时,转换时间约为 103μ s~ 114μ s。 当 fCLK 超过640KHZ,转 换精度下降,超过极限值 1460KHZ 时便不能正常工作。 VIN (+)(引脚)和 VIN (-)(引脚 7):被转换的电压信号从 VIN (+ )和 VIN (-)输 入,允许此信号是差动的或不共地的电压信号。 如果输入电压 VIN的变化范围从 0V 到 Vmax,则芯片的 VIN (-)端接地,输入电压加到 VIN (+)引脚。 由于该芯片允许差动 输入,在共模输入电压允许的情况下,输入电压范围可以从非零伏开始,即 Vmin 至 Vmas。 此时芯片的 VIN (-)端应该接入等于 Vmin 的恒值电码坟上,而输入电压 VIN仍然 加到 VIN (+)引脚上。 AGND(引脚 8)和 DGND(引脚 10): A/D 转换器一般都有这两个引脚。 模拟地 AGND 和数字地 DGND 分 别设置引入端,使数字电路的地电流不影响模拟信号回路, 以防止寄生耦合造成的干扰。 VREF/ 2(引脚 9):参考电压 VREF /2 可以由外部电路供给,从 “V REF /2” 端直接送 入, VREF /2 端电压值应是输入电压范围的二分之一。 所以输入电压的范围可以通过 调整 VREF /2 引脚处的电压加以改变,转换器的零点无需调整。 ADC0804 转换器的工作时序如图 10 所示。 智能仪表综合课程设计 19 图 11 AD转换器的设计接口电路图 : 图中, ADC0804 数据输出线与 AT89C51 的数据总线直接相连, AT89C51 的 RD 、 WR 和 INT1 直接连到 ADC0804,由于用 线来产生片选信号,故无需外加 地址译码器。 当 AT89C51 向 ADC0804 发 WR (启动转换 )、 RD (读取结果 )信号时, 只要虚拟一个系统不占用的数据存储器地址即可。 图 12 A/D 转换电路 智能仪表综合课程设计 20 系统总体电路图 图 13 完整图 智能仪表综合课程设计 21 5 设计语言及软件介绍 C 语言介绍 C 语言是 1972 年由美国的 Dennis Ritchie 设计发明的,并首次在 UNIX 操作系统的 DEC PDP11 计算机上使用。 它由早期的 编程语言 BCPL(Basic Combined Programming Language)发展演变而来,在 1970 年, ATamp。 T 贝尔实验室 的 Ken Thompson 根据 BCPL 语言设计出较先进的并取名为 B 的语言,最后导致了 C 语言的问世。 而 B 语言 之前还有 A语言,取名自世界上第一位女程序员 Ada( 艾达 )。 KEIL 软件介绍 Keil C51 是 美国 Keil Software 公司出品的 51 系列兼容 单片机 C 语言软件开发系统,与汇编相比, C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil 提供了包括 C 编译器 、宏汇编、连接器、 库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个 集成开发环境( uVision)将这些部分组合在一起。 运行 Keil 软件需要 WIN9 NT、 WIN20WINXP 等操作系统。 如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 智能仪表综合课程设计 22 6 系统软件设计 概述 开关电源主要由开关 管、反馈误差放大器, PMW 产生一,可以用单片机产生 PWM波控制开关管的工作状态,而开关管的开关频率即单片机的 PWM 频率来产生不同的输出电压,将输出电压反馈并进行误差放大后再输给单片机,单片机 AD采样,根据电压大小相应改变输出 PWM频率与占空比,从而改变开关管开关频率产生对应电压,实现对输出电压的实施监控与跟踪。 单片机的 PWM 主要可通过其定时器实现,设置相关定时器便可产生一定频率与一定占空比的方波信号。 系统程序设计模块 程序 框图 主程序 //************************************************************************************************* //* * 智能仪表综合课程设计 23 //* ****************************** 头 文 件 及 宏 定 义************************** * //* * //************************************************************************************************* include include define uchar unsigned char define uint unsigned int define SCANPORT P2 define TIME1H 80 define TIME1L 80 //定时器 1 溢出时间 // sbit wr=P3^1。 sbit rd=P3^0。 sbit P27=P2^7。 unsigned long int shuchu=500。 //默认的开机电压 // uint zhuhuandata。 unsigned long int ch=0。 uchar i=0。 //按键标记 // uchar uca_LineScan[3]={0xEF,0xDF,0xBF}。 void chuli()。 //函数定义 // uchar getkey()。 //函数定义 // //************************************************************************************************* //* * //* ******************************** 将 键 值 累 加 并 送 显 示****************************** * //* * //************************************************************************************************* void qiuhe(uchar t) { if(i==1) { ch=t。 vShowOneChar(6,89,uca[t])。 } if(i==2) { ch=ch*10+t。 vShowOneChar(6,103,uca[t])。 智能仪表综合课程设计 24 } if(i==3) { ch=ch*10+t。 vShowOneChar(6,111,uca[t])。 } } //************************************************************************************************* //* * //* ******************************** 按 键 功 能 函 数****************************** * //* * //************************************************************************************************* void key_chuli(uchar x) { uchar t。 switch(x) { case 42: t=0。 i++。 qiuhe(t)。 if(i==3) { vShowOneChin(2,49,uca_que)。 vShowOneChin(2,64,uca_ding)。 vShowOneChin(4,59,uca_wenhao)。 } break。 //39。 039。 case 31: t=1。 i++。 qiuhe(t)。 if(i==3) { vShowOneChin(2,49,uca_que)。 vShowOneChin(2,64,uca_ding)。 vShowOneChin(4,59,uca_wenhao)。 } break。 //39。 139。 case 32: t=2。 i++。 智能仪表综合课程设计 25 qiuhe(t)。 if(i==3) { vShowOneChin(2,49,uca_que)。 vShowOneChin(2,64,uca_ding)。 vShowOneChin(4,59,uca_wenhao)。 } break。 //39。 239。 case 33: t=3。 i++。 qiuhe(t)。 if(i==3) { vShowOneChin(2,49,uca_que)。 vShowOneChin(2,64,uca_di。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。