标题:
pcf8591A/D转换OLED显示单片机程序
[打印本页]
作者:
1961673536
时间:
2019-2-22 09:08
标题:
pcf8591A/D转换OLED显示单片机程序
A/D转换OLED显示
单片机源程序如下:
#include <reg52.h>
#include "i2c.h"
#include "delay.h"
#include "oled.h"
#define AddWr 0x90 //写数据地址
#define AddRd 0x91 //读数据地址
//sbit jdq=P0^1;
extern bit ack;
unsigned char ReadADC(unsigned char Chl);
bit WriteDAC(unsigned char dat);
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
unsigned char num=0;
// jdq=0;
OLED_Init();
while (1) //主循环
{
num=ReadADC(0);
// if(num>=100)
// {
// OLED_ShowCHinese(0,0,0);
// OLED_ShowCHinese(18,0,1);
// OLED_ShowCHinese(36,0,2);
// OLED_ShowCHinese(0,2,3);
// OLED_ShowCHinese(18,2,4);
// OLED_ShowCHinese(36,2,5);
// OLED_ShowCHinese(0,4,6);
// OLED_ShowCHinese(18,4,7);
// OLED_ShowCHinese(36,4,8);
//// jdq=1;
// OLED_ShowNum(50,0,0,3,16);
// OLED_ShowNum(50,2,0,3,16);
// OLED_ShowNum(50,4,0,3,16);
// DelayMs(100);
// }
// else
{
OLED_ShowCHinese(0,0,0);
OLED_ShowCHinese(18,0,1);
OLED_ShowCHinese(36,0,2);
OLED_ShowCHinese(0,2,3);
OLED_ShowCHinese(18,2,4);
OLED_ShowCHinese(36,2,5);
OLED_ShowCHinese(0,4,6);
OLED_ShowCHinese(18,4,7);
OLED_ShowCHinese(36,4,8);
OLED_ShowNum(50,0,num/7,3,16);
OLED_ShowNum(50,2,num,3,16);
OLED_ShowNum(50,4,num*num/7,4,16);
}
}
}
/*------------------------------------------------
读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(0x40|Chl); //发送器件子地址
if(ack==0)return(0);
Start_I2c();
SendByte(AddWr+1);
if(ack==0)return(0);
Val=RcvByte();
NoAck_I2c(); //发送非应位
Stop_I2c(); //结束总线
return(Val);
}
复制代码
所有资料51hei提供下载:
1路AD数码管显示.rar
(85.3 KB, 下载次数: 15)
2019-2-22 09:08 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2019-2-22 16:33
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1