0.png (14.29 KB, 下載次數: 84)
下載附件
2018-9-18 18:13 上傳
0.png (49.11 KB, 下載次數: 84)
下載附件
2018-9-18 18:13 上傳
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- uchar code table1[]="0123456789";
- uchar table2[]="Vo:0.00V;Nu:000";
- uchar table3[]="made by Xfei";
- uchar num,x,adval,wen,dy,date;
- sbit lcden=P3^2; //使能
- sbit lcdrs=P3^0; //數據/指令
- sbit lcdrw=P3^1; //讀/寫
- sbit lcds1=P3^3;
- sbit lcds2=P3^4 ;
- sbit adwr=P3^6; //寫信號輸入端
- sbit adrd=P3^7; //讀信號輸入端
- sbit adcs=P3^5; //片選信號
- //延時ms//
- void delay(uint x)
- {
- uint i,j;
- for(i=0;i<x;i++)
- for(j=0;j<110;j++);
- }
- //MCU寫指令//
- void write_com(uchar com)
- {
- lcdrs=0;
- P2=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- //MCU寫數據//
- void write_date(uchar date)
- {
- lcdrs=1;
- P2=date;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- //初始化//
- void init()
- {
- adcs=0;
- lcdrw=0;
- lcden=0;
- write_com(0x38);
- write_com(0x0c);
- write_com(0x06);
- write_com(0x01);
- /*
- while(table3[num]!='\0')
- {
- write_date(table3[num++]);
- delay(100);
- }
- lcden=1;
- delay(1000);
- lcden=0;
-
- write_com(0x80+0x40);
- num=0;//很重要!
- while(table2[num]!='\0')
- {
- write_date(table2[num++]);
- } */
- }
- /*小改嘻嘻*/
- //顯示第一行//
- void disp1()
- {
- uchar i;
- write_com(0x80+0x00);
- for (i=0;i<12;i++)
- {
- write_date(table3[i]);
- delay(100);
- }
- }
- //顯示第二行//
- void disp2()
- {
- uchar i;
- write_com(0x80+0x40);
- for (i=0;i<12;i++)
- {
- write_date(table2[i]);
- delay(100);
- }
- }
-
- void set_shu1(uchar add,uchar date)
- {
- uchar bai,shi,ge;
- bai=date/51;
- shi=((date%51)*10/51);
- ge=((date%51)*10%51)*10/51;
- write_com(0x80+0x40+add); //地址
- {
- write_date(table1[bai]); //百位數值
- }
- write_com(0x80+0x40+add+2); //地址右移二位
- {
- write_date(table1[shi]); //十位數值
- }
- write_com(0x80+0x40+add+3); //地址右移三位
- {
- write_date(table1[ge]) ; //個位數值 //將值轉換成具體數
- }
- }
- void set_shu2(uchar add,uchar date)
- {
- uchar bai,shi,ge;
- bai=date/100;
- shi=date%100/10;
- ge=date%10;
- write_com(0x80+0x40+add);
- {
- write_date(table1[bai]);
- }
- write_com(0x80+0x40+add+1);
- {
- write_date(table1[shi]);
- }
- write_com(0x80+0x40+add+2);
- {
- write_date(table1[ge]) ;
- } //將電壓值轉換為0~225的值*/
- }
- void st_ad() //開AD
- {
- adwr=1;
- _nop_();
- adwr=0;
- _nop_();
- adwr=1;
- }
- void red_ad()//讀AD
- {
- adrd=1;
- _nop_();
- adrd=0;
- _nop_();
- adrd=0;
- }
- void main()
- {
-
- init();
- disp1();
- disp2();
-
-
- while(1)
- {
- write_com(0x80+0x40+7);
-
- st_ad();
- set_shu1(3,adval);
- set_shu2(12,adval);
- red_ad();
- adval=P1; //P1的值送給date
- // dy=adval/255;
- // P2=wen;
- }
- //while(1);
- }
復制代碼
所有資料51hei提供下載:
ADC0804顯示電壓.rar
(61.54 KB, 下載次數: 69)
2018-9-18 16:08 上傳
點擊文件名下載附件
仿真和·源程序 下載積分: 黑幣 -5
|