久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機測電壓 LCD1602上下讀數一直一樣?
[打印本頁]
作者:
蕁柯z
時間:
2023-11-21 23:27
標題:
單片機測電壓 LCD1602上下讀數一直一樣?
51hei圖片_20231121231956.png
(76.16 KB, 下載次數: 27)
下載附件
2023-11-21 23:26 上傳
#include<reg51.h>
#include<intrins.h>
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
unsigned char code digit[10]={"0123456789"};
unsigned char code Str[]={"Volt="};
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit BF=P0^7;
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
void delaynms(unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();
}
bit BusyTest(void)
{
bit result;
RS=0;
RW=1;
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=BF;
E=0;
return result;
}
void WriteInstruction (unsigned char dictate)
{
while(BusyTest()==1);
RS=0;
RW=0;
E=0;
_nop_();
_nop_();
P0=dictate;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
void WriteAddress(unsigned char x)
{
WriteInstruction(x|0x80);
}
void WriteData(unsigned char y)
{
while(BusyTest()==1);
RS=1;
RW=0;
E=0;
P0=y;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
void LcdInitiate(void)
{
delaynms(15);
WriteInstruction(0x38);
delaynms(5);
WriteInstruction(0x38);
delaynms(5);
WriteInstruction(0x38);
delaynms(5);
WriteInstruction(0x0c);
delaynms(5);
WriteInstruction(0x06);
delaynms(5);
WriteInstruction(0x01);
delaynms(5);
}
void display_volt(void)
{
unsigned char i;
WriteAddress(0x03);
i = 0;
while(Str[i] != '\0')
{
WriteData(Str[ i]);
i++;
}
}
void display_volt2(void)
{
unsigned char i;
WriteAddress(0x43);
i = 0;
while(Str[i] != '\0')
{
WriteData(Str[i]);
i++;
}
}
void display_dot(void)
{
WriteAddress(0x09);
WriteData('.');
}
void display_dot2(void)
{
WriteAddress(0x49);
WriteData('.');
}
void display_V(void)
{
WriteAddress(0x0c);
WriteData('V');
}
void display_V2(void)
{
WriteAddress(0x4c);
WriteData('V');
}
void display1(unsigned char x)
{
WriteAddress(0x08);
WriteData(digit[x]);
}
void display1_2(unsigned char x)
{
WriteAddress(0x48);
WriteData(digit[x]);
}
void display2(unsigned char x)
{
unsigned char i,j;
i=x/10;
j=x%10;
WriteAddress(0x0a);
WriteData(digit[i]);
WriteData(digit[j]);
}
void display2_2(unsigned char x)
{
unsigned char i,j;
i=x/10;
j=x%10;
WriteAddress(0x4a);
WriteData(digit[i]);
WriteData(digit[j]);
}
unsigned char A_D()
{
unsigned char i,dat;
CS=1;
CLK=0;
CS=0;
DIO=1;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
CLK=0;
DIO=0;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
for(i=0;i<8;i++)
{
CLK=1;
CLK=0;
dat<<=1;
dat|=(unsigned char)DIO;
}
CS=1;
return dat;
}
unsigned char A_D2()
{
unsigned char i,dat;
CS=1;
CLK=0;
CS=0;
DIO=1;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
CLK=0;
DIO=1;
CLK=1;
for(i=0;i<8;i++)
{
CLK=1;
CLK=0;
dat<<=1;
dat|=(unsigned char)DIO;
}
CS=1;
return dat;
}
main(void)
{
unsigned int AD_val,AD_val2;
unsigned char Int,Dec,Int2,Dec2;
LcdInitiate();
delaynms(5);
display_volt();
display_volt2();
display_dot();
display_V();
display_dot2();
display_V2();
while(1)
{
AD_val= A_D();
AD_val2=A_D2();
Int=(AD_val)/51;
Dec=(AD_val%51)*100/51;
Int2=(AD_val2)/51;
Dec2=(AD_val2%51)*100/51;
display1(Int);
display2(Dec);
display1_2(Int2);
display2_2(Dec2);
delaynms(250);
}
}
復制代碼
作者:
Hephaestus
時間:
2023-11-22 20:47
LCM的Datasheet貼出來,特別是關于0x43和0x03命令的區別。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲精品免费看
|
国产乱码精品1区2区3区
|
免费久草
|
电影91久久久
|
免费国产一区二区
|
视频在线观看一区
|
性色在线
|
亚洲男人天堂网
|
国产精品一区二区三区在线
|
亚洲 一区
|
韩国精品在线
|
日韩视频专区
|
黄色毛片大全
|
国产亚洲精品美女久久久久久久久久
|
人操人人
|
国产精品精品久久久久久
|
天天干精品
|
精品免费在线
|
av看片
|
国产在线第一页
|
99精品网
|
亚洲精品中文字幕在线观看
|
国产四虎
|
国内精品视频在线观看
|
午夜在线免费观看视频
|
成年人国产在线观看
|
亚洲v日韩v综合v精品v
|
精品久久影院
|
中文字幕亚洲视频
|
天天操网
|
91亚洲精品国偷拍自产在线观看
|
色婷婷av一区二区三区软件
|
国产99久久久国产精品
|
av网站在线播放
|
久久机热
|
岛国av免费在线观看
|
91精品国产综合久久久亚洲
|
成人精品一区二区三区中文字幕
|
91黄色片免费看
|
日韩欧美精品
|
精品综合在线
|