久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

快來(lái)這里,解決問(wèn)題賺黑幣~~~

查看數(shù): 4042 | 評(píng)論數(shù): 15 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-1-16 15:09

正文摘要:

大佬們好 ,我想請(qǐng)教 TLC549 AD轉(zhuǎn)換用1602液晶屏顯示的c語(yǔ)言程序,電路圖已經(jīng)畫好。 想要實(shí)現(xiàn)上述功能,程序應(yīng)該怎么修改 #include "reg51.h" #define uint unsigned int #define uchar unsigned char #i ...

回復(fù)

ID:105075 發(fā)表于 2018-1-18 23:20
樓上說(shuō)的對(duì),
沒(méi)有轉(zhuǎn)換ADC,顯示不了數(shù)據(jù)。
ID:276150 發(fā)表于 2018-1-18 16:20
點(diǎn)評(píng)就行,反正現(xiàn)在做好了。
ID:276150 發(fā)表于 2018-1-18 16:19
點(diǎn)評(píng)就行,反正現(xiàn)在做好了。
ID:276794 發(fā)表于 2018-1-18 10:43
你的ADC沒(méi)有轉(zhuǎn)換啊,不轉(zhuǎn)換怎么能夠顯示啊
ID:253780 發(fā)表于 2018-1-18 07:18
黑幣就是牌面,你看看你,就有牌面
ID:277205 發(fā)表于 2018-1-17 23:31
我來(lái)看能賺黑幣嗎?
ID:276150 發(fā)表于 2018-1-17 22:59
zl2168 發(fā)表于 2018-1-17 11:16
黑幣有什么用?能換錢嗎?

黑幣就是牌面,你看看你,就有牌面
ID:276150 發(fā)表于 2018-1-17 22:58
xyz 是電壓  abc是溫度
ID:276150 發(fā)表于 2018-1-17 22:40
#include <reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uint unsigned int  //預(yù)定義一下  
#define uchar unsigned char  
sbit rs=P2^0; //1602:0寫指令,1寫數(shù)據(jù)
sbit rw=P2^1; //1602讀寫信號(hào)
sbit en=P2^2; //1602片選信號(hào)
sbit TLC549_CS = P3^1;  //TLC549片選,低電平有效
sbit TLC549_DO = P3^5;  //TLC549數(shù)字量輸出
sbit TLC549_CLK = P3^0;  //TLC549片外獨(dú)立時(shí)鐘
uchar bdata ADCdata;
uchar code tabl[]={'0','1','2','3','4','5','6','7','8','9',}; //要顯示的內(nèi)容1放入數(shù)組tablel  u
uchar code tab2[]={'0','1','2','3','4','5','6','7','8','9',}; //要顯示的內(nèi)容1放入數(shù)組tablel  u
void delay(uint n)       //延時(shí)函數(shù)                       
{      
uint x,y;      
for(x=n;x>0;x--)         
for(y=110;y>0;y--);  
}  
void lcd_wcom(uchar com)  //1602寫命令函數(shù)                  
{      
rs=0;            //選擇指令寄存器     
rw=0;            //選擇寫     
P0=com;            //把命令字送入P2      
delay(5);            //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù)      
en=1;           //使能線電平變化,命令送入1602的8位數(shù)據(jù)口      
en=0;  
}  
void lcd_wdat(uchar dat)        //1602寫數(shù)據(jù)函數(shù)      
{      
rs=1;        //選擇數(shù)據(jù)寄存器      
rw=0;        //選擇寫      
P0=dat;        //把要顯示的數(shù)據(jù)送入P2      
delay(5);        //延時(shí)一小會(huì)兒,讓1602準(zhǔn)備接收數(shù)據(jù)      
en=1;        //使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口      
en=0;  
}  
void lcd_init()              //1602初始化函數(shù)        
{      
lcd_wcom(0x38);       //8位數(shù)據(jù),雙列,5*7字形            
lcd_wcom(0x0c);      //開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍      
lcd_wcom(0x06);    //顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移一位      
lcd_wcom(0x01);    //清屏  
}  
uchar ad549( )
{      
uchar i;   
TLC549_CLK =0;   
TLC549_DO=1;   
TLC549_CS=0;
for(i=0;i<8;i++)  
{   
TLC549_CLK=1;   
_nop_();   
_nop_();   
ADCdata<<=1;   
TLC549_CLK =0;   
ADCdata|=TLC549_DO;   
_nop_();
}  
TLC549_CS=1;  
_nop_();
_nop_();  
return (ADCdata);
}   
void main()            //主函數(shù)  
{   
uchar n,m=0;   
float num;   
int x,y,a,b,a1,b1;   
num=ad549( );
x=(int)(num/51);   
y=num/51*10;       //2.62x10=26.2   
y=(int)y-x*10;    //  26-20   
//z=(int)(num/51*10); //262   
//z=(int)(num/51*100-100*x-y*10);   
delay(5);
a1=num*13.4;
b1=num*1.34;
a=(int)(a1/51);
b=b1/51*10;
b=(int)b-a1*10;    //  26-20   
//c=(int)(a1/51*10); //262   
//c=(int)(a1/51*100-100*a-b*10);
//P3=z;
delay(20);
lcd_init();             //液晶初始化            
/*lcd_wcom(0x80);   //顯示地址設(shè)為80H                  
lcd_wdat('U');    //該處顯示字符u                     
delay(10);    //     
lcd_wcom(0x81);   //顯示地址設(shè)為81H                  
lcd_wdat('o');    //該處顯示字符o                  
delay(10);    //     
lcd_wcom(0x82);   //顯示地址設(shè)為82H                 
lcd_wdat('u');                        
delay(10);    //   
lcd_wcom(0x83);                  
lcd_wdat('t');                       
delay(10);    //   
lcd_wcom(0x84);                     
lcd_wdat('=');                        
delay(10);    //*/
lcd_wcom(0x80); //1//顯示地址設(shè)為80H(即00H,)上排第一位                    
lcd_wdat(tabl[x]);   //該處設(shè)置變量x;                  
delay(10);    //     
lcd_wcom(0x81);                  
lcd_wdat('.');                        
delay(10);    //     
lcd_wcom(0x82);                       
lcd_wdat(tabl[y]);                        
delay(10);    //     
//lcd_wcom(0x83);                     
//lcd_wdat(tabl[z]);                        
//delay(10);    //     
lcd_wcom(0x84);                     
lcd_wdat('v');                        
delay(10);    //      
lcd_wcom(0x80+0x41); //重新設(shè)定顯示地址為0xc4,即下排第5位     
lcd_wdat(tab2[a]);   //該處設(shè)置變量x;                  
delay(10);    //     
lcd_wcom(0x81+0x41);                  
lcd_wdat(tab2[b]);                        
delay(10);    //     
lcd_wcom(0x82+0x41);                       
lcd_wdat('.');                        
delay(10);    //     
lcd_wcom(0x83+0x41);                     
lcd_wdat('0');                        
delay(10);    //     
lcd_wcom(0x84+0x41);                     
lcd_wdat('c');                        
delay(10);    //  
for(n=0;n<14;n++)   //將tab2[]中的數(shù)據(jù)依次寫入1602顯示     
{                           
delay(10);      
}     
delay(1000);
}

現(xiàn)在能顯示0-5v電壓
想顯示溫度0-66℃,在算法部分怎么改,
目前最多顯示到8℃,1v以上就是十進(jìn)制之外的碼,這個(gè)怎么處理
ID:277088 發(fā)表于 2018-1-17 17:41
你的ADC沒(méi)有轉(zhuǎn)換啊,肯定顯示不了數(shù)據(jù)的,yuanmayoucuowu
ID:276587 發(fā)表于 2018-1-17 17:03
學(xué)習(xí)了
ID:111634 發(fā)表于 2018-1-17 11:16
黑幣有什么用?能換錢嗎?
ID:276150 發(fā)表于 2018-1-17 09:02
905377346 發(fā)表于 2018-1-16 17:24
沒(méi)有轉(zhuǎn)換ADC,顯示不了數(shù)據(jù)

#include <reg51.h>    //包含頭文件
#include <intrins.h>   //空操作函數(shù)_nop_()必須的頭文件
#include <stdio.h>
#ifndef __1602_H__
#define __1602_H__  
sbit RS = P2^0;   //定義1602各個(gè)控制位
sbit RW = P2^1;
sbit EN = P2^2;
sbit TLC549_CS = P3^1;  //TLC549片選,低電平有效
sbit TLC549_DO = P3^5;  //TLC549數(shù)字量輸出
sbit TLC549_CLK = P3^0;  //TLC549片外獨(dú)立時(shí)鐘
//sbit led = P0^7;    //工作狀態(tài)燈,閃爍為正常
unsigned char DO, num;   //讀土壤濕度返回值、定時(shí)器計(jì)數(shù)變量
unsigned char LCD[7];
float DO_F, volt,hh;  //讀取返回值的20次累加值、最終轉(zhuǎn)換系數(shù)
bit flag=1;   //工作標(biāo)志位  
unsigned char str1[] = "Volt:";
unsigned char str2[] = "   0V";
unsigned char temp[3];
void InitTimer0();  //聲明 定時(shí)器T0初始化 函數(shù)
void delayus(unsigned int t);  //聲明 延時(shí)t個(gè)機(jī)器 周期
unsigned char TLC549_read();  //聲明 TLC549讀數(shù)字量 函數(shù)  
void InitTimer0()
{     
TMOD = 0x01;   //選擇定時(shí)器T0     
TH0  = 0x4C;    //定時(shí)50毫秒     
TL0  = 0x00;     
EA   = 1;      //開總中斷      
ET0  = 1;    //開定時(shí)器T0中斷   
TR0  = 1;    //使能定時(shí)器T0
}  
void Timer0Interrupt() interrupt 1   
{     
TH0 = 0x4C;  //重裝初值      
TL0 = 0x00;  num++;   //計(jì)數(shù)變量增加1   
if(num==10)   //每500毫秒讀一次數(shù)字量   
{      //定時(shí)50毫秒,即每50毫秒進(jìn)1次中斷,num加1   
num = 0;  //進(jìn)10次中斷后num為10,即過(guò)了500毫秒   
flag = 1; //num清零,標(biāo)志位置1   
}     
}
unsigned char TLC549_read()   
{  
unsigned char i , temp;  
TLC549_CS = 1;    //關(guān)閉片選  
TLC549_CLK = 0;    //時(shí)鐘線拉低  
TLC549_CS = 0;    //打開片選  
_nop_();  //空操作等待兩個(gè)機(jī)器周期待總線穩(wěn)定
_nop_();
for( i = 0; i < 8; i++ )  //循環(huán)8次讀出8位轉(zhuǎn)換結(jié)果
{   
temp <<= 1;   
temp |= TLC549_DO;  
TLC549_CLK = 1;
_nop_();   
TLC549_CLK = 0;
}
TLC549_CS = 1;  
delayus(14);  //TLC549轉(zhuǎn)換速度小于14微秒,大致延時(shí)14微秒等待轉(zhuǎn)換結(jié)束  
return temp; //返回轉(zhuǎn)換值
}
void delayus(unsigned int t)   //延時(shí)函數(shù),延時(shí)t個(gè)機(jī)器周期
{  
while(--t);
}
void delayus1602(unsigned char t)   
{   
  while(--t); }  
void delayms1602(unsigned char t)   //大致延時(shí)t毫秒
{        
while(t--)   
{
delayus1602(245);   
delayus1602(245);
  }
}  
void LCD_check_busy()   //判忙
{  
RS = 0;
RW = 1;  
EN = 1;
while((P0 & 0x80)==0x80);  
delayus1602(2);  
EN = 0;
}
void LCD_write_com(unsigned char com)  
{
LCD_check_busy();  
RS = 0;  
RW = 0;  
EN = 1;  
P0 = com;  
delayus1602(2);  
EN = 0;
}
void LCD_write_Data(unsigned char Data)   
{
LCD_check_busy();  
RS = 1;  
RW = 0;  
EN = 1;  
P0 = Data;  
delayus1602(2);  
EN = 0;  
}
void LCD_clear()   
{  
LCD_write_com(0x01);   
delayms1602(5);
}
void LCD_write_string(unsigned char x , unsigned char y , unsigned char *s)
//在第x行第y位寫字符串
{  
LCD_check_busy();  
if( x == 1 )  
{   
LCD_write_com(0x80 + y - 1);  
}
else if( x == 2 )  
{   
LCD_write_com(0xc0 + y - 1);  
}  
while(*s)  
{   
LCD_write_Data(*s);   
s++;
}
}
void LCD_init()  
{  
delayms1602(15);
LCD_write_com(0x38);
delayms1602(5);
LCD_write_com(0x38);//8位總線、雙行5×7點(diǎn)陣
LCD_write_com(0x08);
LCD_write_com(0x01);
LCD_write_com(0x06);
delayms1602(5);
LCD_write_com(0x0c);
}
void main()
{
unsigned char i;//for循環(huán)變量
InitTimer0(); //初始化定時(shí)器T0
LCD_init();  
delayus(1000);  
LCD_clear();
LCD_write_string(1, 1, str1);  
LCD_write_string(2, 1, str2);   
while(1)
{
if(flag)
  { flag=0; //標(biāo)志位清零
//for(i=0,i<20,i++)
{
DO=TLC549_read();//讀     
DO_F=DO_F+DO;//累加
}
DO_F=DO_F/20.00;//累加值除20求平均   
volt=(float)(( DO_F * 5 )/256.00); // TLC549是8位A/D芯片,2的8次方是256即轉(zhuǎn)換所得數(shù)值為0-255,所以乘以基準(zhǔn)電壓再除以精度
sprintf(temp,"%4.2f", volt);   
LCD_write_string(2,7,temp);         
//if(volt>4.5|volt<0.5)  
//led=1;
//if(volt>0.5&&volt<4.5)      
//led=0;      
  }
}


}
#endif
ID:76227 發(fā)表于 2018-1-16 17:24
沒(méi)有轉(zhuǎn)換ADC,顯示不了數(shù)據(jù)
ID:76227 發(fā)表于 2018-1-16 17:23
你的ADC沒(méi)有轉(zhuǎn)換啊,肯定顯示不了數(shù)據(jù)的

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区在线播放 | 欧美极品一区二区 | 久久久久久久久久久久久9999 | 久久久久久高潮国产精品视 | 成人免费一级 | 日韩成人免费视频 | 国产美女在线免费观看 | 欧美在线国产精品 | 日韩中文视频 | 2019天天操 | 国产精品黄视频 | 久久久久久国产精品 | 97视频在线免费 | 国产情侣久久 | 欧美成人精品一区二区男人看 | 国产一区二区三区色淫影院 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕一级 | 欧美日韩国产一区二区三区 | 国产精品久久久久免费 | 毛片一级片| 深夜爽视频 | 亚州精品天堂中文字幕 | 精品国产高清一区二区三区 | 91精品国产一区二区三区蜜臀 | 欧美精选一区二区 | 牛牛热在线视频 | 久久精品一 | 羞视频在线观看 | 天天爽夜夜爽精品视频婷婷 | 懂色中文一区二区三区在线视频 | 羞羞的视频免费观看 | 国产在线对白 | 欧美日韩在线观看一区 | 日韩在线观看 | 欧美中文 | 日韩中字幕 | 国产成人91 | 精品视频www | 精品国产欧美一区二区 | 久一精品|