久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
PCF8591模數轉換及1602LCD顯示應用程序
[打印本頁]
作者:
白色的烏鴉
時間:
2018-3-29 11:07
標題:
PCF8591模數轉換及1602LCD顯示應用程序
PCF8591模數轉換及1602LCD顯示應用程序
單片機源程序如下:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define Delay4us(){_nop_();_nop_();_nop_();_nop_();}
sbit LCD_RS=P2^2;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^0;
sbit SCL=P1^0; //I2C時鐘引腳
sbit SDA=P1^1; //I2C數據輸入輸出引腳
uchar Recv_Buffer[4]; //數據接收緩沖
uint Voltage[]={'0','0','0','0','0','0'}; //數據分解為電壓x.xx
bit bdata IIC_ERROR; //I2C錯誤標志位
uchar LCD_Line_1[]={"DQ . ppm "};
//延時
void delay(int ms)
{
uchar i;
while(ms--) for(i=0;i<250;i++) Delay4us();
}
//LCD忙檢測
bit LCD_Busy_Check()
{
bit Result;
LCD_RS=0;LCD_RW=1;
LCD_EN=1;Delay4us();Result=(bit)(P0&0x80);
LCD_EN=0;
return Result;
}
//寫指令
void LCD_Write_Command(uchar cmd)
{
while(LCD_Busy_Check());
LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();
P0=cmd;Delay4us();
LCD_EN=1;Delay4us();LCD_EN=0;
}
// 寫數據
void LCD_Write_Data(uchar dat)
{
while(LCD_Busy_Check());
LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;Delay4us();
LCD_EN=1;Delay4us();LCD_EN=0;
}
//初始化
void LCD_Initialise()
{
LCD_Write_Command(0x38);delay(5);
LCD_Write_Command(0x0c);delay(5);
LCD_Write_Command(0x06);delay(5);
LCD_Write_Command(0x01);delay(5);
LCD_Write_Command(0x03);delay(5);
LCD_Write_Command(0x02);delay(5);
}
//設置顯示位置
void LCD_Set_Position(uchar pos)
{
LCD_Write_Command(pos|0x80);
}
//顯示一行
void LCD_Display_A_Line(uchar Line_Addr,uchar s[])
{
uchar i;
LCD_Set_Position(Line_Addr);
for(i=0;i<16;i++)LCD_Write_Data(s[i]);
}
// 將模數轉換后得到的值分解存入緩存
void Convert_To_Voltage(uchar val)
{
uchar Tmp; //最大值為255,對應5V
Voltage[2]=val/100+'0'; //整數部分
Voltage[3]=val/10%10+'0' ;
Voltage[4]=val%10+'0' ;
Tmp=val*10; // 第一位小數
Voltage[1]=Tmp%10+'0';
Tmp=Tmp*10;
Voltage[0]=Tmp%10+'0';
}
//啟動I2C總線
void IIC_Start()
{
SDA=1;SCL=1;Delay4us();SDA=0;Delay4us();SCL=0;
}
//停止I2C總線
void IIC_Stop()
{
SDA=0;SCL=1;Delay4us();SDA=1; Delay4us();SCL=0;
}
// 從機發送應答位
void Slave_ACK()
{
SDA=0;SCL=1;Delay4us();SCL=0;SDA=1;
}
// 從機發送非應答位
void Slave_NOACK()
{
SDA=1;SCL=1;Delay4us();SCL=0;SDA=0;
}
//發送一字節
void IIC_SendByte(uchar wd)
{
uchar i;
for(i=0;i<8;i++) //循環移入8位
{
SDA=(bit)(wd&0x80);_nop_();_nop_();
SCL=1;Delay4us();SCL=0;wd<<=1;
}
Delay4us();
SDA=1; //釋放總線并準備讀取應答
SCL=1;
Delay4us();
IIC_ERROR=SDA; //IIC_ERROR=1表示無應答
SCL=0;
Delay4us();
}
//接收一字節
uchar IIC_ReceiveByte()
{
uchar i,rd=0x00;
for(i=0;i<8;i++)
{
SCL=1;rd<<=1;rd|=SDA;Delay4us();SCL=0;Delay4us();
}
SCL=0;Delay4us();
return rd;
}
//連續讀入4路通道的A/D轉換結果并保存到Recv_Buffer
void ADC_PCF8591(uchar CtrlByte)
{
uchar i;
IIC_Start();
IIC_SendByte(0x90); // 發送寫地址
if(IIC_ERROR==1)return;
// IIC_SendByte(CtrlByte); //發送控制字節
//if(IIC_ERROR==1)return;
IIC_Start(); //重新發送開始命令
IIC_SendByte(0x91); // 發送讀地址
if(IIC_ERROR==1)return;
IIC_ReceiveByte(); //空讀一次,調整讀順序
Slave_ACK(); //收到一字節后發送一個應答位
for(i=0;i<4;i++)
{
Recv_Buffer[i++]=IIC_ReceiveByte();
Slave_ACK(); //收到一個字節后發送一個應答位
}
Slave_NOACK();
IIC_Stop(); //收到一個字節后發送一個非應答位
}
// 向 PCF8591發送1字節進行AD轉換
//主程序
void main()
{
LCD_Initialise();
while(1)
{
ADC_PCF8591(0x04);
Convert_To_Voltage(Recv_Buffer[0]);
LCD_Line_1[5]=Voltage[2];
LCD_Line_1[6]=Voltage[3];
LCD_Line_1[7]=Voltage[4];
LCD_Line_1[9]=Voltage[1];
LCD_Line_1[10]=Voltage[0];
LCD_Display_A_Line(0x00, LCD_Line_1);
}
}
復制代碼
所有資料51hei提供下載:
PCF8591 LCD1602AD采集程序.zip
(35.69 KB, 下載次數: 46)
2018-3-29 11:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
zhanga9754
時間:
2018-4-2 16:41
謝謝………………………………
作者:
shuisheng60
時間:
2019-2-5 01:07
收下了先,謝謝!
作者:
jinsheng7533967
時間:
2019-2-5 20:17
佩奇好可愛喲!哈哈哈!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人国产在线视频
|
国产日韩欧美在线
|
91五月天
|
国产综合精品一区二区三区
|
国产蜜臀
|
www在线
|
国产精品久久久99
|
福利精品
|
欧美日韩一区二区在线观看
|
久国久产久精永久网页
|
国产精品乱码一区二区三区
|
国产精品视频入口
|
日韩精品一区二区三区四区视频
|
蜜臀久久99精品久久久久久宅男
|
免费99视频
|
日日摸夜夜添夜夜添特色大片
|
中文字幕国产视频
|
五月天国产视频
|
91成人免费观看
|
欧美成年网站
|
中文字幕日韩欧美
|
国产精品亚洲一区二区三区在线
|
欧美视频在线一区
|
国产精品亚洲成在人线
|
久久99精品国产自在现线小黄鸭
|
国产精品亚洲二区
|
国产一区二区三区
|
国产欧美日韩二区
|
精品久久久久久久久久久久
|
欧美亚洲免费
|
色资源站
|
久久精品这里精品
|
一区二区三区四区视频
|
9191在线播放
|
国产中文字幕在线
|
午夜免费在线
|
一级片在线视频
|
黄视频国产
|
日韩欧美在线一区
|
日韩av成人在线
|
日韩成人在线观看
|