⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad转换1.c

📁 ADC0809单通道电压转换+1602液晶显示
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define dis_data  P0
#define dis_con   P2
#define ad_data   P3
#define ad_con    P1
#define uchar  unsigned char
#define uint   unsigned int
sbit   LCD_busy   	= P0^7 ;	
sbit   LCD_RS 	    = P2^7 ;
sbit   LCD_RW	    = P2^6 ;
sbit   LCD_E	    = P2^5 ;
sbit   BZ	        = P2^4 ;
sbit   ADD_A	    = P1^0 ;
sbit   ADD_B     	= P1^1 ;
sbit   ADD_C      	= P1^2 ;
sbit   AD_START   	= P1^5 ;
sbit   AD_OE   	  	= P1^6 ;
sbit   AD_EOC    	= P1^7 ;
uchar  data  ad_data_buff[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uchar  data  lcd_starting[]={0x43,0x48,0x30,0x3a,0x3f,0x2e,0x3f,0x3f,0x56,
                             0x43,0x48,0x31,0x3a,0x3f,0x2e,0x3f,0x3f,0x56};
uchar  data  lcd_display[7]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00};
uchar  data  dis_add_buff[6]={0x84,0x86,0x87,0xc4,0xc6,0xc7}; 	
						  

delay1ms(uint t)
{
uint i,j;
for(i=0;i<t;i++)
  for(j=0;j<120;j++);
}

main()
{
uchar  dis_add ;

P0=0xff;
P1=0x00;
P2=0xff;
P3=0xff;
BZ=0;						//关蜂鸣器  
dis_data=0x01;			    //清屏并光标复位
enable()	 ;
dis_data=0x3c;				//设置显示模式:8位 2行 5*10点阵
enable()	 ;
dis_data=0x0c;				//显示器开,光标关,光标不允许闪烁  
enable()	 ;
dis_data=0x06;				//文字不动,光标自动右移	   
enable()	 ;
//*****************lcd液晶显示器初始化********************//
for(dis_add=0x80;dis_add<=0x88;dis_add++)
{
dis_data=dis_add;
enable();
dis_data=lcd_starting[dis_add-0x80];
write();
}
for(dis_add=0xc0;dis_add<=0xc8;dis_add++)
{
dis_data=dis_add;
enable();
dis_data=lcd_starting[dis_add-0xc0+9];
write();
}
//********************************************************//
while(1)
{
ad0809();
display();
delay1ms(200);
}
}
ad0809()
{
uchar chx;
uchar add_chx=0x00;	//////
ad_con=add_chx;
for(chx=0;chx<0x01;chx++)   ///
{
AD_START=1;_nop_();_nop_();
AD_START=0;
_nop_();_nop_();_nop_();_nop_();
while(AD_EOC==1);
AD_OE=1;
ad_data_buff[chx]=ad_data;
AD_OE=0;
ad_con=++add_chx;
}
ad_con=0x00;
//第一通道数值转换//
lcd_display[0]=ad_data_buff[0]/51;
lcd_display[6]=ad_data_buff[0]%51;
lcd_display[6]=lcd_display[6]*10;
lcd_display[1]=lcd_display[6]/51;
lcd_display[6]=lcd_display[6]%51;
lcd_display[6]=lcd_display[6]*10;
lcd_display[2]=lcd_display[6]/51;
//第二通道数值转换//
lcd_display[3]=ad_data_buff[1]/51;
lcd_display[6]=ad_data_buff[1]%51;
lcd_display[6]=lcd_display[6]*10;
lcd_display[4]=lcd_display[6]/51;
lcd_display[6]=lcd_display[6]%51;
lcd_display[6]=lcd_display[6]*10;
lcd_display[5]=lcd_display[6]/51;
}

display()
{
uchar  n;
for(n=0;n<6;n++)
{
dis_data=dis_add_buff[n];
enable();
dis_data=lcd_display[n]+0x30;
write();
}
}


enable()
{
LCD_RS=0;
LCD_RW=0;
LCD_E =0;
delay();
LCD_E =1;
}

delay()
{
dis_data=0xff;
LCD_RS=0;
LCD_RW=1;
LCD_E =0;
_nop_();
LCD_E =1;
while(LCD_busy);
}

write()
{
LCD_RS=1;
LCD_RW=0;
LCD_E =0;
delay();
LCD_E =1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -