毕业设计论文-基于单片机的数控开关电源设计内容摘要:
字符那样用字符模块即可显示,要想显示汉字必须用图形模块。 本课设所选择的 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。毕业设计论文-基于单片机的数控开关电源设计
相关推荐
单位为 g/mm;减光率是利用光束穿过烟雾时光强度产生衰减量的百分数来表示烟雾的浓度。 温度 火灾是一种失去控制的燃烧反应,在其孕育、发生、发展的不同阶段,都伴随着热量的产生和温度的升高。 在火灾的初始阶段,一方面有大量的烟雾产生,另一方面由于物质在燃烧过程中释放出热量,使得周围环境的温度上升,但 是由于普通可燃物质在此阶段燃烧速度缓慢,周围温度的升高速度是比较缓慢的,在火灾的发展阶段
试件影响小, 对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。 ( 4)商品化,使用方便,便于实现远距离、自动化测量 [5]。 通过对压力传感器与 电阻应变式传感器 比较分析 ,最终选择了第 二 种方案。 题目要求称重范围0~ 5Kg,满量程量误差不大于 ,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重 5Kg。
和实用性上来说,超声波测距在 现代 工业生产 应用中 是 最优方案 的 选择。 随着超声波技术的发展,高端的超声波测距模块在精度上已经达到 mm 级别, 而超声波测距 带温度补偿的功能 又可以大大的 消除 温度的影响,使测量更精确,更稳定。 超声波测距器 比较低廉的成本价格以及比较高的安全性能,也成为了人们选择它的不二理由。 表 12 给出了上述三种不同测距方式的比较。 表 12
P 1 12P 1 23P 1 34P 1 45P 1 56P 1 67P 1 78P 0 039P 0 138P 0 237P 0 336P 0 435P 0 534P 0 633P 0 732P 2 021P 2 122P 2 223P 2 324P 2 425P 2 526P 2 627P 2 728P S E N29A L E / P30T X D11R X D10U1A T 8 9 C
2 光标复位 指令码 02H, 光标返回到地址 00H位置 ; 指令 3 光标和显示模式设置 14 I/D位 → 光标移动方向,高电平右移,低电平左移; S 位 → 屏幕上所有文字是否左移或者右移,高电平有效,低电平无效; 指令 4 显示开关控制 D 位 → 控制整体显示的开与关,高电平表示开显示,低电 平表示关显示; C 位 → 控制光标的开与关,高电平表示有光标,低电平表示无光标; B 位
表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据 /命令选择 12 D5 数据 5 R/W 读 /写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 7 第 1 脚: