基于单片机控制的开关电源设计

合集下载

基于单片机的开关电源并联供电系统的设计

基于单片机的开关电源并联供电系统的设计

图4 DC—D C模 块 变换 电 路 1
电流 的分配 主要 是采 用最 大 电流 型均 流控 制 法 , 即每个 模 块均 由一 个二 极 管接入 主 回路 , 电流大 的 模 块 作 为主模 块 , 电流小 的模 块作 为从 模块 , 交 替 变化 控 制 。当负 载 电 阻变 化 时 , 可 以保 持 输 出 电压稳 定, 均流 瞬态 响应 好 。电流检 测是 通 过对 采样 电 阻 R l l , 由I NA1 9 3差 分放 大 2 0倍 后送单 片 机 内部 AD
图 2 系统 设 计 框 图
2 . 2 系统 工作 电源及 D A转换 器
2 系统设计思路
2 . 1 系统设计 框 图及 工作原 理
如图 2 为系统设计框 图 , 输入 电压经 L M2 5 7 6 — 5 开关 电源 降 压 后 获 得 5 V 电 源。系 统 以 P I C 1 6 F 8 7 7 A单片机为核心 , 由两片 T L 4 9 4 、 电压 取样及外围电路分别组成两路的 D C - D C稳压模
系统 由 L C D液 晶 实 时 显 示 输 出 电 压 , I 1 、 I 2 电流及其 比例 ; 还 具有 过载 及短 路保 护功 能 。
1 系统设计 任务
设计并制作一个开关电源并联供 电系统 , 其 结构 如 图 1所 示 。基 本 功 能 为 : 输 入 电压 2 4 V, 输 出为 8 . 0 V; 调整 负载 电阻 , 可使 电流 I 1: I 2 一 按 l : 1 、 1 : 2或 1 : 3等 比例 自动分 配 。
收稿 日期 : 2 0 1 3 — 0 6 — 2 2 基金项 目: 福建省教育厅科技项 目( J K2 O 1 3 O 2 8 )

基于单片机控制的开关电源及其设计

基于单片机控制的开关电源及其设计

基于单片机控制的开关电源及其设计单片机控制的开关电源是一种高效率、高稳定性的电源系统,常用于电子设备中。

本文将介绍基于单片机控制的开关电源的原理、设计步骤以及相关注意事项。

一、原理1.1开关电源的工作原理开关电源的核心部分是一个开关管,它通过不断开闭来调整输出电压和电流。

当开关管关断时,电源输入端的电压会通过变压器产生瞬态电流,这个电流被蓄能电容器存储在电容中。

当开关管打开时,储存在电容中的能量被释放,通过滤波电感得到稳定的电压输出。

1.2单片机控制开关电源的工作原理在单片机控制的开关电源中,单片机通过控制开关管的开闭状态来调整输出电压和电流。

单片机能够实时监测电源的输入和输出情况,并根据设定的参数进行调整。

同时,单片机还可以实现一些保护功能,如过压、过流、过温等保护。

二、设计步骤2.1确定需求首先要确定开关电源的功率需求、输入电压范围和输出电压范围。

根据需求选择合适的开关管和变压器等元器件。

2.2定义控制策略根据开关电源的工作原理以及需求,确定单片机的控制策略。

可以采用PWM(脉宽调制)控制方法来控制开关管的开闭时间,以实现对输出电压的调节。

2.3确定单片机和外围电路选择合适的单片机控制器,并设计相应的外围电路,包括ADC(模拟数字转换)模块、PWM输出模块、电流传感器等。

2.4编写软件程序根据控制策略,编写单片机的控制程序,并完成软件的调试和优化。

2.5PCB设计与制造根据电路原理图设计PCB布局,并制造相关的电路板。

2.6装配与测试完成PCB板的焊接与装配,进行电源的测试和调试。

三、注意事项3.1安全性开关电源具有高电压、高电流的特点,因此在设计和使用过程中要注意安全性。

应采用合适的绝缘措施,保证电源与其他电路之间的隔离。

3.2效率和稳定性开关电源的效率和稳定性是设计过程中需要考虑的重要因素。

应合理选择元器件,控制开关管的导通和关断时间,以提高电源的效率和稳定性。

3.3EMC(电磁兼容)设计开关电源由于工作频率较高,容易产生电磁干扰。

基于单片机控制的开关电源及其设计

基于单片机控制的开关电源及其设计

2、基于单片机控制的开关电源的可选设计方案由单片机控制的开关电源, 从对电源输出的控制来说, 可以有三种控制方式, 因此, 可供选择的设计方案有三种:( 1) 单片机输出一个电压( 经D/AC 芯片或PWM方式) , 用作开关电源的基准电压。

这种方案仅仅就是用单片机代替了原来开关电源的基准电压, 可以用按键设定电源的输出电压值, 单片机并没有加入电源的反馈环, 电源电路并没有什么改动。

这种方式最简单。

( 2) 单片机与开关电源专用PWM芯片相结合。

此方案利用单片机扩展A/D 转换器, 不断检测电源的输出电压, 根据电源输出电压与设定值之差, 调整D/A 转换器的输出, 控制PWM芯片, 间接控制电源的工作。

这种方式单片机已加入到电源的反馈环中, 代替原来的比较放大环节, 单片机的程序要采用比较复杂的PID 算法。

( 3) 单片机直接控制型。

即单片机扩展A/DC, 不断检测电源的输出电压, 根据电源输出电压与设定值之差, 输出PWM波, 直接控制电源的工作。

这种方式单片机介入电源工作最多。

3、最优设计方案分析三种方案比较第一种方案: 单片机输出一个电压( 经D/AC芯片或PWM方式) , 用作开关电源的基准电压。

这种方案中, 仅仅就是用单片机代替了原来开关电源的基准电压, 没有什么实际性的意义。

第二种方案: 由单片机调整D/AC 的输出, 控制PWM芯片, 间接控制电源的工作。

这种方案中单片机可以只就是完成一些弹性的模拟给定, 后面则由开关电源专用PWM芯片完成一些工作。

在这种方案中,对单片机的要求不就是很高, 51 系列单片机已可胜任; 从成本上考虑,51 系列单片机与许多PWM控制芯片的价格低廉; 另外, 此方案充分解决了由单片机直接控制型的开关电源普遍存在的问题———由于单片机输出的的PWM脉冲频率低, 导致精度低, 不能满足要求的问题。

因此, 单片机与PWM芯片相结合, 就是一种完全可行的方案。

基于单片机控制的开关电源模块

基于单片机控制的开关电源模块
第2 l 卷 第9期
Vo 1 . 21 No. 9
电 子 设 计 工 程
El e c t r o ni c De s i g n En g i n e e r i n g
2 0 1 3年 5月
Ma v . 201 3
基亏单 片机控制 的开关 电源模块
吴 杰, 朱 向冰 , 郝文 良
t r a d i t i o n a l s w i t c h p o w e r m o d u l e . T h e p o w e r m o d u l e h a s t h e a d v a n t a g e s o f s m a l l s i z e , h i g h p r e c i s i o n , s i m p l e c i r c u i t , a d j u s t i n g
连 续 可 调 等 优 点
关 键 词 :单 片 机 :开 关 电 源模 块 ; 数 字控 制 ; P I D调 节 中 图分 类号 : T N 8 6 文献标识码 : A 文 章 编 号 :1 6 7 4 — 6 2 3 6 ( 2 0 1 3 ) 0 9 — 0 1 5 5 — 0 3
采 实现 的 首 先 介 绍 了该 电 源 模 块 的 工 作 原 理 及 整 体 设 计 方 案 , 其 次 介 绍 了部 分 关 键 电 路 的 硬 件 设 计 , 给出了
主 程序及 部 分 子程序 的流 程 图。与 传统 的 开关 电源相 比 , 该 电 源模 块 具 有 体 积 小 、 精度 高、 电路 简单 、 输 出 电 压
t h e h a r d wa r e d e s i g n o f p a r t o f t h e k e y c i r c u i t ,g i v e t h e ma i n p r o g r a m a n d p a t r o f p a t r o n p r o g r a m l f o w c h a t r . C o mp a r e d w i t h t h e

基于STC15W4K60S4单片机LED开关电源控制器的设计

基于STC15W4K60S4单片机LED开关电源控制器的设计
Th e PW M s i gna l i s t r an s mi t t e d b y S1 ℃1 5 \ ^ , 4 K60 S4 m i cr o co nt ol r l er . an d t h e s wi t c h c on t r ol o f t he L ED po wer su ppl y i s r e al —
1 L E D 开 关 电 源控 制 器 总 体 方 案 设 计
K e y wo  ̄s : S T C1 5 W4 K 6 0 S 4 , s wi t c h i n g p o we r s u p p l y c o n t r o l l e r , P W M, c o n s t a n t c u r r e n t
目前 , 随着 L E D 技 术 的广 泛 应 用 , 开关电源式 L E D 驱 动 器 显 示 出 了强 大 的 发展 潜力 。 利用 S T C1 5 W4 K 6 O S 4单 片 机 ’ 设 计
电路 简 单 、 故 障 率低 等 特 点 , 它 将 电池 的 电 能 转 换 为 恒 流 输 出 , 驱 动 高 亮 度 白光 L E D。 通 过 S T Cl 5 W4 K 6 0 S 4单 片机 发 送
P WM 信 号 . 实现 对 L E D 电 源 的开 关控 制 , 同 时此 电 源控 制 器 具 有 输 出电压 限压 保 护 和 报 警 功 能 。
刘 立 军 ( 辽 宁机 电职 业技 术 学院 , 辽 宁 丹东 1 1 8 0 0 9 )
摘要 : 介 绍 了一 种 基 于 S T Cl 5 W4 K 6 0 S 4单 片机 L E D 开 关 电 源控 制 器 的 设 计 。该 L E D 开 关 电 源控 制 器具 有 稳 定 可 靠 、

基于单片机控制的开关电源的设计

基于单片机控制的开关电源的设计

基于单片机控制的开关电源的设计开关电源是一种常见的电源供应器,其基本原理是通过开关器件(如MOSFET、IGBT等)的开关行为来实现电源的稳定输出。

在单片机控制下,可以实现更精确的电压和电流调节,从而提高功率转换效率和供电稳定性。

本文将详细介绍基于单片机控制的开关电源的设计。

首先,我们需要选择合适的单片机。

在选择单片机时,应考虑其性能、成本和易用性。

常用的单片机有PIC、AVR、STM32等,可以根据实际需求选择最适合的单片机类型。

接下来,进行开关电源的电路设计。

开关电源的基本电路包括输入滤波电路、整流电路、开关器件、输出滤波电路和反馈控制电路。

输入滤波电路的作用是滤除输入电源中的高频噪声,以保证电源的稳定性。

整流电路用于将交流输入转换为直流电压。

开关器件是开关电源的关键部分,通过控制开关器件的开关状态,可以实现电源的输出调节。

输出滤波电路用于滤波输出的脉动电压,以获得稳定的直流电压输出。

反馈控制电路用于监测输出电压,并通过单片机进行调节。

在设计过程中,要考虑电路的稳定性和效率。

一方面,电路应具有足够的稳定性以保证电源输出的精度和稳定性。

另一方面,电路应具有较高的功率转换效率,以减少功耗和热量产生。

根据设计要求,可以选择合适的电路元件,如电感、电容、二极管等,以提高电路的稳定性和效率。

在单片机控制下,可以实现电源的自动调节和保护功能。

通过单片机的输入输出引脚连接到开关器件的驱动电路,可以实现开关器件的开关控制。

通过单片机的AD转换功能,可以实时监测电源的输出电压,并通过PID控制算法进行调节,从而实现电源输出的精确控制。

此外,可以通过单片机的IO口连接各种传感器,如温度传感器和过流保护电路,实现对电源工作状态的实时监测和保护功能。

在程序设计方面,可以利用单片机的中断和定时器功能来实现电源的调节和保护。

通过中断,可以实现对输入电压的过压和欠压保护,以防止电源工作在不正常的电压范围内。

通过定时器,可以实现对输出电流的过流保护,以避免电源损坏或者对负载产生过大的影响。

基于单片机控制的开关电源及其设计

基于单片机控制的开关电源及其设计

基于单片机控制的开关电源及其设计
开关电源是一种广泛应用于电子设备中的电源,它具有高效率、稳定
性好、体积小等优点。

基于单片机控制的开关电源则是在传统开关电源的
基础上结合了单片机的控制功能,可以实现更精确、智能的控制。

首先,输入滤波模块用于滤除输入电源中的高频噪声,以保证后续电
路正常工作。

整流滤波模块则将输入电源的交流信号经过整流后变为直流
信号,并进行滤波以减小波动。

接下来,开关变换模块是整个开关电源的关键。

该模块中包含了主要
的开关电源拓扑结构,如Buck、Boost、Buck-Boost等。

通过开关元件的
开关动作,实现电源输入电压到输出电压的变换。

在设计中,需要考虑开
关频率、开关管的选择以及辅助器件的设计。

输出滤波和稳压控制模块用于进一步滤除开关变换模块输出电压中的
高频噪声,并稳定输出电压。

可以使用电容、电感等元件来实现滤波功能,并通过反馈控制实现稳压功能。

最后,单片机控制模块通过采集输入电压、输出电压等信号,实时监
控电源的工作状态,并根据需要进行调节。

比如,可以通过PWM信号控制
开关元件的开关频率,从而实现输出电压的调节。

同时,单片机还可以实
现过压、过流、过温等保护功能,提高开关电源的安全性和可靠性。

总结起来,基于单片机控制的开关电源通过单片机的控制功能,实现
了对开关电源的精确控制。

在设计中需要注重滤波和稳压控制模块的性能
选择和设计,同时合理选择开关变换模块的拓扑结构和开关元件,以确保
开关电源的效率和稳定性。

基于ATmega128单片机的自动投切开关电源设计

基于ATmega128单片机的自动投切开关电源设计

A T me g a l 2 8单 片机 为核 心 , 实 现 大 电 流 时 自动 由单 电 源供 电投 切 到 双 电 源 并联 均 流供 电 , 增 强 了开 关 电源 的 带 负载 能 力
和提 高 电 源 的供 电效 率 。 关键词 : 开关电源, 投切 , T L 4 9 4, AT me g a l 2 8
1 2 6
基于A T me g a l 2 8单 片机 的 自动 投切 开 关 电源 设 计
基于 A T m e g a l 2 8 单片机的 自动投切开关电源设计
王 建 ( 华南农业大学工程学院, 广东 广州 5 1 0 6 4 2 )
赖 奕佳 ( 深圳芯海科技有限公司, 广东 深圳 5 1 8 0 0 0 )
Abs t r ac t Th e N+I r e du n da n t f au l t t ol e r a n t a n d r e dun da n t p ower , a s we l as l mod ul ar p ower di s t r i bu t i on s y s t em t h e t ot al l o ad c ur —

1 . 1 D C — D C 变 换 器 电 路拓 扑 结 构
本设计 选 择 了 斩 波 电路 , 其 电路 原理 图 如 图 1
所 示 。选 择 升 压 轨 波 电路 作 为 D C— DC 变 换 的 主 拓 扑 结构 。 1 . 2 系 统性 能指 标 图1 升压斩 波电路原理
摘 要
电 源技 术 的发 展 方 向 之 一 是 并 联 运 行 分 布 电 源 系统 , 以便 通 过 N+ I冗 余 获 得 故 障 容 错 及 冗余 功 率 , 并 且 建 立 模 块 式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机控制的开关电源设计系部:电子与通信工程系*名:***专业班级:电信10D1学号:*********指导老师:**2012年9月21日声明本人所呈交的基于单片机控制的电源开关设计,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。

除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。

对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:日期:【摘要】开关电源体积小、效率高,被誉为高效节能电源,现己成为稳压电源的主导产品。

随着开关电源在计算机、通信、航空航天、仪器仪表及家用电器等方面的广泛应用, 人们对其需求量日益增长, 并且对电源的效率、体积、重量及可靠性等方面提出了更高的要求。

开关电源以其效率高、体积小、重量轻等优势在很多方面逐步取代了效率低、又笨又重的线性电源。

本文介绍了一款基于PWM技术的DC-DC开关稳压电源,用proteus仿真,输出纹波小,电压稳定可靠.[关键词]:开关电源,DC-DC,单片机,proteus[Abstract]: The small size of the switching power supply, high efficiency, known as energy-efficient power supply, has now become the leading products of the regulated power supply.With the wide application of switching power supplies in computers, communications, aerospace, instrumentation and household appliances, people growing their demand and higher power efficiency, size, weight, and reliabilityrequirements. Switching power supply for its high efficiency, small size, light weight advantages in many ways to gradually replace the inefficient, clunky, heavy linear power.This article describes a DC-DC switching power supply based on PWM technology, with proteus simulation output ripple voltage is stable and reliable.[Keywords]: switching power supplies, DC-DC, single-chip, proteus目录【摘要】 (3)一、引言 (4)二、总体设计 (5)(一)硬件总体设计 (5)(二)AT89C52单片机概述 (5)(三)开关电源系统硬件设计 (9)1. 开关电源电路设计 (10)2. 电压反馈电路 (10)3. 限流电路 (11)三、软件设计 (11)(一)总的软件设计思想 (11)(二)各部分的软件框图和程序 (12)1.主程序设计 (12)2.数据显示子程序 (13)3.键盘扫描子程序 (13)4.键值处理子程序流程图 (14)四、程序清单 (14)一、引言本设计中采用的是脉宽调制型, Pwm技术是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。

让信号保持为数字形式可将噪声影响降到最小。

在脉宽调制中因为频率不变,所以无论是对电路中的磁性元件及晶体管的测试和设计都很方便,而且对射频干扰的抑制也变得比较容易。

利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。

高度集成、功能强大的开关型稳压电源代表着开关电源发展的主流方向,其技术也日驱成熟。

二、总体设计本课题的主要思想是利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。

通过键盘预置电压,控制单片机进行脉宽调制,使输出电压在大范围内可调。

通过单片机软件控制,实现电源的智能保护,可以设定某个规定的电压或者电流,当超过该电压或者电流时,单片机关断开关管,电源不再工作,以便保护电源。

三、硬件设计(一)硬件总体设计本设计中拟采用脉宽调制型,先通过电压及功率变换设计出一个DC12V左右的电压源,再对12V的电压源,通过脉宽调制,实现步进0.1V、输出电流500 mA、LCD显示的直流电压。

利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。

硬件总体框图如图3-1所示。

图3-1硬件总体框图(二)AT89C52单片机概述1.AT89C52单片机组成图3-2 AT89C52单片机组成结构图AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.AT89C52单片机引脚结构(1)89C51外部引脚图:;引脚说明:(1)电源引脚Vcc(40脚):典型值+5V。

Vss(20脚):接低电平。

(2)外部晶振X1、X2分别与晶体两端相连接。

当采用外部时钟信号时,X2接振荡信号,X1接地。

(3)输入输出口引脚:P0口:I/O双向口。

作输入口时,应先软件置“ 1”。

P1口:I/O双向口。

作输入口时,应先软件置“ 1”。

P2口:I/O双向口。

作输入口时,应先软件置“ 1”。

P3口:I/O双向口。

作输入口时,应先软件置“ 1”。

(4)控制引脚RST(9引脚):复位输入。

当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作、计时完成后,RST引脚输出96个晶振周期的高电平。

DISROT默认状态下,复位高电平有效。

①ALE/PROG(30引脚):一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

②PSEN(29引脚):外部程序存储信号时外部程序存储器选通信号。

当AT89C51RC从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次。

③EA/VPP(31引脚):访问外部程序存储器控制信号,为使能从0000H到FFFFH的外部程序存储器读取指令,必须接END。

④XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。

⑤XTAL2(18引脚):振荡器反相放大器的输入端。

P1口作为LCD液晶屏的数据口,采用并口数据传输模式,P2口中的P2.0、P2.1、P2.2、作为控制信号输出口,分别接RS、R/W、E控制端,P2.3、P2.4分别接湿温度传感器的SCK和DATA,P2.5.、P2.6、P2.7接按键电路,P1口的P1.0、P1.1、P1.2分别接ADC0831的控制端,P1.4接报警的蜂鸣器。

3.AT89C52单片机的最小系统图3-4 AT89C52单片机组成结构图(1)复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。

典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。

一般教科书推荐C 取10u,R取10K。

原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。

至于如何具体定量计算,可以参考电路分析相关书籍。

(2)晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M。

(三)开关电源系统硬件设计1.开关电源电路设计图3-3开关电源电路如图3-3可看出,DC50V输入,经Q1,Q2,Q3,进行交流变换,输入给储能性元件L1,当输出电压有波动时,调整管Q4调整输入电压,反过来抑制输出电压的波动。

2.电压反馈电路电压反馈部分,当电压达到12V时,电流流经稳压二极管D4、三极管Q2 B,E极、电阻R8 使Q2导通,Q2导通将使三极管13003提前进入关断区,从而使输出电压稳定在12V左右。

3.限流电路当R11上流经的电流到达一定值,在R11上将产生压降,当压降超过0.7V,三极管Q3饱和导通.Q3集电极电压为0,自激式振荡回路终止,输出电流变小,当R11上的电流小到足够的值,R11两端的电压低于0.7V,Q3又截止,自激振荡回路又继续振荡。

图三、软件设计(一)总的软件设计思想系统的软件设计采用C语言,对单片机进行编程实现各项功能。

程序是采用keil c51软件编写的,可以使液晶显示屏对特定数字、英文字母以及汉字组成的句子进行显示,并通过按键对显示内容实现控制、转换等功能。

主程序主要起到一个导向和决策功能,决定液晶显示屏该显示什么内容,该如何显示。

液晶显示屏各种功能的实现主要通过调用具体的子程序。

(二)各部分的软件框图和程序1.主程序设计文字描述下例如(通电之后,系统开始工作,若是有键按下,就根据按键程序进行工作,并把结果显示到LCD液晶显示屏上,若是没有按键,定时时间一到,气体传感)2.数据显示子程序3.键盘扫描子程序4.键值处理子程序流程图四、程序清单//*************************************************************** **********************************//**//* ******************************头文件及宏定义************************** *//**//*************************************************************** **********************************#include<reg52.h>#include"includes.h"#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]);}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; //'0' 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; //'1' case 32: t=2;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'2' case 33: t=3;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'3' case 21: t=4;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'4' case 22: t=5;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'5' case 23: t=6;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'6' case 11: t=7;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'7' case 12: t=8;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'8' case 13: t=9;i++;qiuhe(t);if(i==3){vShowOneChin(2,49,uca_que);vShowOneChin(2,64,uca_ding);vShowOneChin(4,59,uca_wenhao);}break; //'9' case 41: if(i==3) //'ok'{ch=ch*256/512;shuchu=ch;ch=0;TH0=65200;TL0=65200;vShowOneChin(2,49,uca_0);vShowOneChin(2,64,uca_0);vShowOneChin(4,48,uca_SHU);vShowOneChin(4,64,uca_CHU);vShowOneChar(6,88,uca_HEN);vShowOneChar(6,104,uca_HEN);vShowOneChar(6,112,uca_HEN);}i=0;break;}}void vTimer0(void) interrupt 1 using 2{uchar a,d;unsigned long int c=0;uchar data tab[3];a=(((zhuhuandata&0xf0)>>4)*100/16);d=((zhuhuandata&0x0f)*100/256);c=(a+d)*5.12;tab[0]=c%10;tab[1]=c/10%10;tab[2]=c/100%10;vShowOneChar(2,89,uca[tab[2]]);vShowOneChar(2,103,uca[tab[1]]);vShowOneChar(2,111,uca[tab[0]]);TH0=TIME1H;TL0=TIME1L;}void main(void){SCANPORT=0x8F;ClearLCD(0x00);vShowOneChar(2,89,uca[5]);vShowOneChar(2,96,uca_XIAOSHU);vShowOneChar(2,103,uca[0]);vShowOneChar(2,111,uca[0]);vShowOneChar(2,120,uca_V);vShowOneChin(0,0,uca_DANG);vShowOneChin(0,16,uca_QIAN);vShowOneChin(0,32,uca_GONG);vShowOneChin(0,48,uca_ZUO);vShowOneChin(0,64,uca_DIAN);vShowOneChin(0,80,uca_YA);vShowOneChin(0,96,uca_MAOHAO);vShowOneChin(4,0,uca_QING);vShowOneChin(4,16,uca_SHE);vShowOneChin(4,32,uca_ZHI);vShowOneChin(4,48,uca_SHU);vShowOneChin(4,64,uca_CHU);vShowOneChin(4,80,uca_DIAN);vShowOneChin(4,96,uca_YA);vShowOneChin(4,112,uca_MAOHAO);vShowOneChar(6,96,uca_XIAOSHU);vShowOneChar(6,88,uca_HEN);vShowOneChar(6,104,uca_HEN);vShowOneChar(6,113,uca_HEN);vShowOneChar(6,119,uca_V);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TMOD=0X01;TH0=TIME1H;TL0=TIME1L;ET0=1; //T/C0开中断TR0=1; //开定时器0中断IT0=1; //外中断方式:下降沿。

相关文档
最新文档