PCF8591 4路AD数码管显示
来源:互联网 发布:centos显卡驱动安装 编辑:程序博客网 时间:2024/05/22 14:08
#include <reg52.h> #include "i2c.h"#include "delay.h"#include "display.h"#define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址extern bit ack;bit ReadADFlag;unsigned char ReadADC(unsigned char Chl);bit WriteDAC(unsigned char dat);/*------------------------------------------------ 主程序------------------------------------------------*/main(){ unsigned char num=0,i; Init_Timer0(); DelayMs(20);while (1) //主循环 { if(ReadADFlag) { ReadADFlag=0; //连续读5次,输入通道后多读几次,取最后一次值,以便读出稳定值 for(i=0;i<5;i++) num=ReadADC(0);// x10表示把实际值扩大10,如4.5 变成 45 方便做下一步处理 x5 表示基准电压5V num=num*5*10/256; TempData[0]=dofly_DuanMa[num/10]|0x80; TempData[1]=dofly_DuanMa[num%10]; for(i=0;i<5;i++) num=ReadADC(1); num=num*5*10/256; // x10表示把实际值扩大10,如4.5 变成 45 方便做下一步处理 TempData[2]=dofly_DuanMa[num/10]|0x80; TempData[3]=dofly_DuanMa[num%10]; for(i=0;i<5;i++) num=ReadADC(2); num=num*5*10/256; // x10表示把实际值扩大10,如4.5 变成 45 方便做下一步处理 TempData[4]=dofly_DuanMa[num/10]|0x80; TempData[5]=dofly_DuanMa[num%10]; for(i=0;i<5;i++) num=ReadADC(3); num=num*5*10/256; // x10表示把实际值扩大10,如4.5 变成 45 方便做下一步处理 TempData[6]=dofly_DuanMa[num/10]|0x80; TempData[7]=dofly_DuanMa[num%10]; //主循环中添加其他需要一直工作的程序 } }}/*------------------------------------------------ 读AD转值程序输入参数 Chl 表示需要转换的通道,范围从0-3返回值范围0-255------------------------------------------------*/unsigned char ReadADC(unsigned char Chl) { unsigned char Val; Start_I2c(); //启动总线 SendByte(AddWr); //发送器件地址 if(ack==0)return(0); SendByte(Chl); //发送器件子地址 if(ack==0)return(0); Start_I2c(); SendByte(AddRd); if(ack==0)return(0); Val=RcvByte(); NoAck_I2c(); //发送非应位 Stop_I2c(); //结束总线 return(Val); }/*------------------------------------------------ 写入DA转换数值输入参数:dat 表示需要转换的DA数值,范围是0-255------------------------------------------------*//*bit WriteDAC(unsigned char dat){ Start_I2c(); //启动总线 SendByte(AddWr); //发送器件地址 if(ack==0)return(0); SendByte(0x40); //发送器件子地址 if(ack==0)return(0); SendByte(dat); //发送数据 if(ack==0)return(0); Stop_I2c(); }*/
1 0
- 109-PCF8591 4路AD数码管显示
- PCF8591 4路AD数码管显示
- PCF8591 4路AD数码管显示
- 108-PCF8591 1路AD 1602显示
- 108-PCF8591 1路AD 1602显示
- 1路AD数码管显示
- 1路AD数码管显示
- 一路AD数码管显示
- 一路AD数码管显示
- 四路AD转换数码管显示
- 数码管显示电位器AD值
- 数码管显示电位器AD值
- PCF8591 4路AD中的4路检测外部模拟量输入
- PCF8591 AD/DA转换
- AD PCF8591芯片学习(未完待续)
- 51单片机AD转换之PCF8591
- PCF8591芯片以及AD学习(一)
- 单片机笔记AD转换之PCF8591
- IPC之AIDL&binder关系
- 利用enum来匹配命令
- 设计模式之单例模式
- HashMap和Hashtable的区别
- iOS UIImageView渲染
- PCF8591 4路AD数码管显示
- nano文本编辑器
- dip,px,sp区别及使用场景
- Dalvik与JVM区别
- freemarker笔记
- accessToken的使用
- Android多媒体之照相机
- 自定义组合控件以及UI的动态添加
- 下拉刷新/上拉加载