|
本設(shè)計(jì)分為三個(gè)簡(jiǎn)單模塊,ad 、單片機(jī)最小系統(tǒng),及顯示器。程序及仿真可以下載附件
制作出來(lái)的實(shí)物圖如下:
0.jpg (70.24 KB, 下載次數(shù): 68)
下載附件
2019-1-12 16:30 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.PNG (68.56 KB, 下載次數(shù): 75)
下載附件
proteus仿真
2019-1-12 13:16 上傳
引腳連接及建議:
CLOCK--------P3.0
START---------P3.3
EOC ----------P3.7
OE ------------P3.6
單片機(jī)為AT89C51
Ad為ADC0809或者0808
其區(qū)別為0809的out1-out8對(duì)應(yīng)單片機(jī)的p1.0-p1.7
0808d的out1-out8對(duì)應(yīng)單片機(jī)的p1.7-p1.0
顯示器為lcd1602
由于仿真原件庫(kù)的問(wèn)題,仿真使用的0808,顯示器使用的LM016L。
實(shí)物使用的0809及1602
關(guān)于如何用keil創(chuàng)建工程和生成hex文件,以及proteus如何下載hex文件到單片機(jī),百度有詳細(xì)步驟。
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define ufloat unsigned float
- uchar code table[]="THE RES:";
- sbit lcdrs=P2^0;
- sbit lcdrw=P2^1;
- sbit lcden=P2^2;
- sbit OE=P3^6;
- sbit EOC=P3^7;
- sbit CLOCK=P3^0;
- sbit ST=P3^3;
- unsigned char dat[]="00.000k";
- unsigned int tmp;
- float mo;
- unsigned char adc;
- uchar num;
- void delay(uint z)//延時(shí)2ms
- {
- uint x,y;
- for (x=z;x>0;x--)
- for (y=110;y>0;y--);
- }
- void write_com(uchar com)//寫命令
- {
- lcdrw=0; //低電平為寫
- lcdrs=0;//低電平為命令選擇
- P0=com;
- delay(5) ;
- lcden=1;
- delay(5) ;
- lcden=0;
- }
- void write_data(uchar date)//寫數(shù)據(jù)
- {
- lcdrw=0;//低電平為寫
- lcdrs=1;//高電平為數(shù)據(jù)選擇
- P0=date;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void init()//初始化
- {
- lcdrw=0;
- lcden=0;
- write_com(0x38) ;//設(shè)置 16X2顯示,5X7點(diǎn)陣/ /8位數(shù)據(jù)接口
- write_com(0x0e) ;// 設(shè)置為只顯示字符,不顯示動(dòng)
- write_com(0x06) ;//寫一個(gè)字符后地址指針加1
- write_com(0x01);
- }
- void main()
- {
- init() ;//初始化
- EA=1;
- ET0=1;
- TMOD=0x02;
- TL0=206;
- TL0=206;
- TR0=1;
- while(1)
- { ST=0;
- ST=1;
- ST=0;
- while(!EOC);
- OE=1;
- adc=P1;
- tmp=(255000/adc)-1000;
- tmp=10*tmp;
- dat[0]=tmp/100000 +'0';
- dat[1]=tmp/10000%10 +'0';
- dat[3]=tmp/1000%10 +'0';
- dat[4]=tmp/100%10 +'0';
- dat[5]=tmp/10%10 +'0';
- write_com (0x80) ;//從液晶第一行第列開始寫數(shù)據(jù)
- for (num=0; num<9; num++)
- {
- write_data(table[num]) ;
- delay(5) ;
- }
- write_com(0x80+0x40) ;//從液晶第二行第一列開始寫數(shù)據(jù)
- for (num=0;num<7;num++)
- {
- write_data(dat[num]) ;
- delay(5);
- }
- }
- }
- void timer0(void) interrupt 1
- {
- CLOCK=~CLOCK;
- }
復(fù)制代碼
0.png (6.73 KB, 下載次數(shù): 71)
下載附件
2019-1-12 16:32 上傳
所有資料51hei提供下載:
分壓式電阻測(cè)量.zip
(83.16 KB, 下載次數(shù): 132)
2019-1-12 13:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|