单片机源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- uchar code table1[]="0123456789";
- uchar code table2[]="DianYa:0.00V";
- uchar code table3[]="made by JCLong";
- 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;
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void write_com(uchar com)
- {
- lcdrs=0;
- P2=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- 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);
- write_com(0x80);
- 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 set_shu(uchar add,uchar date)
- {
- uchar shu,bai,shi,ge;
- //date=date/225;
- /*bai=date/100;
- shi=date/100%10;
- ge=date%10;
- write_com(0x80+0x40+add); //将电压值转换为0~225的值
- write_date(table1[bai]);
- write_date(table1[shi]);
- write_date(table1[ge]) ; */
- bai=date/45;
- //shi=bai*10/45;
- shi=((date%45)*10/45);
- ge=((date%45)*10%45)*10/45;
- 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 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();
-
-
- while(1)
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
基于ADC0804的1602显示电压.zip
(17.06 KB, 下载次数: 168)
|