交流调压源示例:AD任务程序实现与驱动控制
需积分: 9 176 浏览量
更新于2024-07-12
收藏 444KB PPT 举报
本文档主要介绍了如何在C8051微控制器平台中实现一个应用实例——交流可调稳压源的AD(Analog-to-Digital Converter)任务程序。首先,我们关注的是`task_ad()`函数,这是程序的核心部分,用于处理ADC采样数据并进行电压转换。
该函数首先检查`b_ev_adc`标志位,如果ADC事件发生(表示已完成一次AD转换),则清除标志并将256次AD读取的数值存储到`adc_buf`中。接着,通过将`adc_buf`与预设的`ADC_K`系数相乘,然后除以2^16(即65536)来计算出电压值。这个过程中,使用了联合体`union`来处理数据类型转换,确保取到的电压值精度。最后,将处理后的电压值赋给`ac_v`,这是一个16位变量,除以65536后得到最终的电压值。
稳压源系统由以下几个部分组成:
1. **系统框图**:
- 这部分描述了一个简单的硬件接口,通过MOVDPRT指令设置端口地址为4000H,然后循环遍历该地址的数据,执行相应的操作,如取反、比较等,这可能是控制开关的状态检测。
2. **电路框图**:
- 提供了交流可调稳压源的电路设计,包括主控单元、显示单元、驱动单元以及两个按键(升压步进和降压步进开关)和两个马达控制信号。
3. **软件框架**:
- 包括了C8051的寄存器定义(如ADCON和ADC)和标志位(如`b_ev_adc`、`b_key_pressed`等),这些用于管理ADC的触发、按键输入处理和稳压源的动作控制。
- 定义了多个定时器变量,用于精确的时间控制,这对于实时系统至关重要。
- 电压值的计算、显示步骤的更新、按键事件处理和动作状态管理也在此部分体现。
4. **动作管理**:
- 根据`act`变量,程序能够根据按键输入(`b_key_pressed`)以及马达控制信号(`MOTOR0`和`MOTOR1`)执行相应的操作,比如调整电压输出或切换稳压源方向。
通过以上分析,我们可以看到此程序的主要知识点包括:
- C8051单片机的AD转换操作,特别是使用联合体处理多字节数据转换。
- 微控制器的中断管理和事件处理,如ADC事件标志`b_ev_adc`的检测和清除。
- 系统时间管理,利用定时器进行10ms和1/4s周期的计时。
- 用户交互,通过按键控制和显示系统的调节过程。
- 简单的稳压源控制系统设计,涉及硬件电路布局和软件逻辑的协同工作。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-29 上传
2019-05-26 上传
2021-03-08 上传
2021-05-28 上传
2020-11-15 上传
2021-05-22 上传
慕栗子
- 粉丝: 19
- 资源: 2万+
最新资源
- 基于零序功率方向选择性漏电保护系统的研究
- 新东方英语的阅读课件
- 高质量C加加_C编程指南WORD版
- Kernel API For Linux
- shell及shell编程
- QT完全手册 QT完全手册 QT完全手册
- 利用JProfiler对应用服务器内存泄漏问题诊断一例
- Ubuntu中文参考手册
- 便携式多功能低功耗数字测温仪的设计
- DS18B20中文技术手册(datasheet)
- the_C_programming_language_2nd
- 多进程、多线程编程linux
- Spring 课件,达内Spring课件
- Programming Python, 2nd Edition, O’Reilly
- c语言 bmp图片显示
- Java中如何使用字符串来实例化类以及调用类