久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
ad7705轉換器顯示輸入電壓無變化 附單片機程序
[打印本頁]
作者:
Stretch
時間:
2019-5-19 20:58
標題:
ad7705轉換器顯示輸入電壓無變化 附單片機程序
求助,這個程序是將ad7705的輸入電壓顯示到lcd上,用的單片機是stc89c52,可是我lcd上一直顯示2.4999mV,沒有變化,不知道哪里出問題了
單片機源程序如下:
#include <intrins.h>
#include<reg51.h>
#define true 1
#define false 0
#define uchar unsigned char
#define uint unsigned int
#define lcddata 1
#define instruction 0
#define read 1
#define write 0
sbit AD_SCLK=P1^3;
sbit AD_DIN=P1^2;
sbit AD_OUT=P1^4;
sbit AD_DRDY=P1^5;
sbit CS=P1^0;
sbit RST=P1^1;
sbit L_DI=P2^6;
sbit L_RW=P2^5;
sbit L_EN=P2^7;
void init_time(void);
//void init_ad_7705(void);
unsigned int read_ad7705(uchar channel);
void ad_reset();
void ad_write(unsigned char command_byte);
unsigned int ad_read(unsigned char num);
void Delayms(unsigned int no);
unsigned long Temparature2,Temparature1;
uchar CycleCheck=0;
void Send_Data( bit DI,
bit RW,
unsigned char LData);
void init_LCD() ;
void Send_NumberV( unsigned char Row,
unsigned char Column,
unsigned long number,
unsigned char no,
unsigned char point
);
void Send_TextV(unsigned char Row,
unsigned char Column,
unsigned char code *po,
unsigned char no
);
void init_ad_7705(uchar channel);
void ad_Calculator(uchar channel);
void main(void)
{
RED10 = 0;
init_time();
CS=0;
RST=1;
init_LCD() ;
Send_TextV(0,0,"CH0: mV",12);
Send_TextV(1,0,"CH1: mV",12);
init_ad_7705(0);
Delayms(100);
init_ad_7705(1);
while(1)
{ if(CycleCheck>=20)
{ CycleCheck=0;
ad_Calculator(0);
Temparature1=read_ad7705(0);
Delayms(100);
ad_Calculator(1);
Temparature2=read_ad7705(1);
Temparature1=Temparature1*25000/65536;
Temparature2=Temparature2*25000/65536;
Send_NumberV(0,4,Temparature1,5,1);
Send_NumberV(1,4,Temparature2,5,1);
}
}
}
void ad_Calculator(uchar channel)
{
AD_SCLK=1;
AD_DIN=1;
if(channel==0)
{ ad_write(0x10);
_nop_();_nop_();_nop_();
ad_write(0x44);
}
if(channel==1)
{
ad_write(0x11);
_nop_();_nop_();_nop_();
ad_write(0x44);
}
AD_SCLK=1;
AD_DIN=1;
}
void init_ad_7705(uchar channel)
{
EA=0;
AD_SCLK=1;
AD_DIN=1;
ad_reset();
if(channel==0)
{
ad_write(0x20);
_nop_();_nop_();_nop_();
ad_write(0x06);
_nop_();_nop_();_nop_();
ad_write(0x10);
_nop_();_nop_();_nop_();
ad_write(0x44);
}
if(channel==1)
{
ad_write(0x21);
_nop_();_nop_();_nop_();
ad_write(0x06);
_nop_();_nop_();_nop_();
ad_write(0x11);
_nop_();_nop_();_nop_();
ad_write(0x44);
}
AD_SCLK=1;
AD_DIN=1;
EA=1;
}
void Send_Data( bit DI,
bit RW,
unsigned char LData)
{
_nop_();
Delayms(3);
_nop_();_nop_();_nop_();_nop_();
L_DI=DI;
L_RW=RW;
_nop_();
P0=0xff;
_nop_();_nop_();_nop_();_nop_();
L_EN=0;
P0=LData;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
L_EN=1;
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
L_EN=0;
_nop_();_nop_();_nop_();_nop_();
P0=0xff;
_nop_();
L_DI=1;
L_RW=1;
P0=0xff;
_nop_();
return;
}
void clear_LCD(void)
{
_nop_();
Send_Data(instruction,write,0x01);
Delayms(3);
}
void init_LCD(void)
{ _nop_();
Send_Data(instruction,write,0x01);
Delayms(15);
_nop_();
Send_Data(instruction,write,0x3c);
Delayms(15);
_nop_();
Send_Data(instruction,write,0x0c);
_nop_();
_nop_();
clear_LCD();
return;
}
void Send_NumberV( unsigned char Row,
unsigned char Column,
unsigned long number,
unsigned char no,
unsigned char point
)
{
unsigned char address,temp,Digital,i,Clear;
unsigned long MoveBit;
Clear=true;
if(Column<16 && Row<4)
{ _nop_();
switch(Row)
{
case 0:
address=0x80+Column;
break;
case 1:
address=0xc0+Column;
break;
case 2:
address=0x90+Column;
break;
case 3:
address=0xd0+Column;
break;
default:
_nop_();
break;
}
_nop_();
Send_Data(instruction,write,address);
_nop_();
for(i=0,MoveBit=0x0001;i<(no-1);i++)
{ MoveBit=MoveBit*10;
}
for(i=0;i<no;i++)
{ Digital=(number/MoveBit)%10;
if(Digital!=0)
{ Clear=false;
}
if(Clear==true && (i==(no-point-1)))
{ Clear=false;
}
MoveBit=MoveBit/10;
temp=0x30+Digital;
if(Clear==true)
{ Send_Data(lcddata,write,0x20);
}else
{ Send_Data(lcddata,write,temp);
}
if((i==no-point-1) & point!=0)
{ Send_Data(lcddata,write,0x2E);
}
}
_nop_();
}
_nop_();
return;
}
void Send_TextV(unsigned char Row,
unsigned char Column,
unsigned char code *po,
unsigned char no
)
{
unsigned char address,i;
if(Column<16 && Row<4)
{ _nop_();
switch(Row)
{
case 0:
address=0x80+Column;
break;
case 1:
address=0xc0+Column;
break;
case 2:
address=0x90+Column;
break;
case 3:
address=0xd0+Column;
break;
default:
_nop_();
break;
}
_nop_();
Send_Data(instruction,write,address);
_nop_();
for(i=0;i<no;i++)
{
_nop_();
Send_Data(lcddata,write,*po);
_nop_();
po++;
_nop_();
}
_nop_();
}
_nop_();
return;
}
void Delayms(unsigned int no)
{ unsigned char i;
for(;no>0;)
{ for(i=120;i>0;)
{
_nop_();
i--;
_nop_();
}
_nop_();
no--;
_nop_();
}
_nop_();
return;
}
void ad_reset()
{
uchar i;
for(i=0;i<40;i++)
{ AD_SCLK=0;
AD_DIN=1;
AD_SCLK=1;
}
}
void ad_write(unsigned char command_byte)
{
unsigned char i;
// AD_CS=0;
AD_SCLK=1;
AD_DIN=1;
for (i=0;i<32;i++)
{
AD_SCLK=0;
_nop_();_nop_();_nop_();
if (command_byte&0x80)
{
AD_DIN=1;
}
else
{
AD_DIN=0;
}
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
AD_SCLK=1;
command_byte=command_byte*2;
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
}
AD_SCLK=1;
AD_DIN=1;
}
unsigned int ad_read(unsigned char num)
{
unsigned char i;
unsigned int ad_data;
ad_data=0;
AD_SCLK=1;
AD_DIN=1;
for (i=0;i<num;i++)
{ _nop_();_nop_();_nop_();
AD_SCLK=0;
ad_data*=2;
_nop_();_nop_();_nop_();
AD_SCLK=1;
_nop_();_nop_();_nop_();
if (AD_OUT==1)
{
ad_data=ad_data|0x0001;
}
}
// AD_CS=
AD_SCLK=1;
AD_DIN=1;
return ad_data;
}
unsigned int read_ad7705(uchar channel)
{ uint AD1;
if(channel==0)
{ ad_write(0x39);
} else
{ ad_write(0x38);
}
AD1=ad_read(16);
return AD1;
}
void init_time(void)
{
TMOD=0x01;
ET0=true;
TH0=0x4c;
TL0=0x00;
TR0=true;
EA=1;
_nop_();
return;
}
void time0isr(void) interrupt 1 using 1
{ EA=false;
TH0=0x4c;
TL0=0x00;
EA=true;
CycleCheck++;
_nop_();
return;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91国语清晰打电话对白
|
在线观看免费国产
|
日本中出视频
|
天天操天天射综合网
|
区一区二区三在线观看
|
国产999精品久久久久久
|
伊人网站视频
|
国产91九色
|
久久久久国产精品午夜一区
|
日本不卡一区
|
亚洲精品一
|
国产视频二区在线观看
|
九九精品久久久
|
午夜影院在线视频
|
野狼在线社区2017入口
|
精品视频免费在线
|
久久一区二区三区四区
|
日韩精品一区二区三区视频播放
|
中文字幕在线第一页
|
6996成人影院网在线播放
|
日本午夜视频
|
欧美精品99
|
国产日产精品一区二区三区四区
|
亚洲精品片
|
国产精品污www在线观看
|
热re99久久精品国产99热
|
国产99免费
|
精品亚洲一区二区三区
|
国产性生活一级片
|
国产91精品在线
|
国产精品一级
|
www.欧美
|
999免费观看视频
|
四虎最新地址
|
亚洲成人精品免费
|
国产成人精品一区二区
|
日本网站在线看
|
亚洲欧洲日韩
|
欧美日韩亚洲系列
|
国产精品乱码一区二区三区
|
国产精品成人在线
|