用c51语言设计一个监测系统:利用AD0808循环监测通道6.上电位器的电压,并将电压值转换成的数字量,数字量通过外接8个LED灯显示。(ADC0808的基准 电压+5V )


时间: 2024-03-10 22:49:29 浏览: 25
以下是用C51语言设计的监测系统代码: ``` #include <reg52.h> // 定义LED灯的IO口 sbit LED0 = P1^0; sbit LED1 = P1^1; sbit LED2 = P1^2; sbit LED3 = P1^3; sbit LED4 = P1^4; sbit LED5 = P1^5; sbit LED6 = P1^6; sbit LED7 = P1^7; // 定义ADC0808的IO口 sbit CS = P3^2; // 片选信号 sbit RD = P3^5; // 读取信号 sbit INTR = P3^3; // 中断信号 sbit EOC = P3^4; // 转换完成信号 sbit ALE = P3^6; // 地址锁存信号 // 定义函数 unsigned char ADC0808_Convert() { unsigned char data = 0; // 选择通道6 P2 = 0x05; // 启动转换 ALE = 1; ALE = 0; // 等待转换完成 while(EOC == 1); // 读取数据 RD = 1; data = P0; RD = 0; return data; } // 主函数 void main() { unsigned char adc_data = 0; while(1) { cs = 0; adc_data = ADC0808_Convert(); cs = 1; // 将模拟量转换成数字量 adc_data = adc_data / 32; // 将数字量显示到LED灯上 LED0 = (adc_data & 0x01) ? 1 : 0; LED1 = (adc_data & 0x02) ? 1 : 0; LED2 = (adc_data & 0x04) ? 1 : 0; LED3 = (adc_data & 0x08) ? 1 : 0; LED4 = (adc_data & 0x10) ? 1 : 0; LED5 = (adc_data & 0x20) ? 1 : 0; LED6 = (adc_data & 0x40) ? 1 : 0; LED7 = (adc_data & 0x80) ? 1 : 0; } } ``` 需要注意的是,上电位器的电压需要在ADC0808的输入端引脚上接入,同时需要将ADC0808的VCC引脚连接到5V电源。在代码中,我们将ADC0808的通道6选择,并将模拟量转换成0-255的数字量,然后将数字量通过8个LED灯显示出来。

相关推荐

最新推荐

recommend-type

基于STC89C51单片机的出租车计费器设计

本文以单片机STC89C51 为核心设计一款出租车计费器, 使能够实现里程及对应价格的显示,由于采用芯片的自动定时计数,所以能够准确的计算出总的行车里程并能转换成对应的价格来,这样能够避免出租车司机作弊的可能性...
recommend-type

DAC8831在恒电位仪电压扫描中的应用

为实现恒电位仪给定电压低速扫描时电压高精度、线性好及降低设计成本,本文设计了一种简单可行的电压扫描系统。该系统以STC89C51为主控器件,通过单片机IO口模拟SPI通信接口来控制16位数模转换芯片DAC8831,DAC8831...
recommend-type

C51单片机原理与应用课程设计报告.docx

本人同同组队员所精心撰写的单片机实验报告,详细诠释了单片机结构,工作原理,编程方法以及一些编程实例,供大家参考,若有不足欢迎批评指正。
recommend-type

怎么使用Keil C51建立一个新项目并添加C语言程序文件

怎么使用Keil C51建立一个新项目并添加C语言程序文件 很详细简洁的说明
recommend-type

基于C51单片机的烟雾报警器设计.doc

基于C51单片机的烟雾报警器...如果你的毕业设计题目是基于C51单片机的烟雾报警器设计,那么恭喜你不用写了,里面有几十页纸,敢保证你能用,只需稍加修改就是你的了,不修改直接用后果自负。 最少10分,敢保证能用!!
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

优化MATLAB分段函数绘制:提升效率,绘制更快速

![优化MATLAB分段函数绘制:提升效率,绘制更快速](https://ucc.alicdn.com/pic/developer-ecology/666d2a4198c6409c9694db36397539c1.png?x-oss-process=image/resize,s_500,m_lfit) # 1. MATLAB分段函数绘制概述** 分段函数绘制是一种常用的技术,用于可视化不同区间内具有不同数学表达式的函数。在MATLAB中,分段函数可以通过使用if-else语句或switch-case语句来实现。 **绘制过程** MATLAB分段函数绘制的过程通常包括以下步骤: 1.
recommend-type

SDN如何实现简易防火墙

SDN可以通过控制器来实现简易防火墙。具体步骤如下: 1. 定义防火墙规则:在控制器上定义防火墙规则,例如禁止某些IP地址或端口访问,或者只允许来自特定IP地址或端口的流量通过。 2. 获取流量信息:SDN交换机会将流量信息发送给控制器。控制器可以根据防火墙规则对流量进行过滤。 3. 过滤流量:控制器根据防火墙规则对流量进行过滤,满足规则的流量可以通过,不满足规则的流量则被阻止。 4. 配置交换机:控制器根据防火墙规则配置交换机,只允许通过满足规则的流量,不满足规则的流量则被阻止。 需要注意的是,这种简易防火墙并不能完全保护网络安全,只能起到一定的防护作用,对于更严格的安全要求,需要
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。