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

📄 v.c

📁 基于单片机的设计的电压表源程序 很不错的 希望对大家有帮助
💻 C
字号:
#include<reg51.h>
#include"absacc.h"
#define lcd_1602_DW  XBYTE[0xfdff]
#define lcd_1602_CW  XBYTE[0xfcff]
#define lcd_1602_CR  XBYTE[0xfeff]
#define lcd_1602_DR  XBYTE[0xffff]
#define lcd_line_1			  	0x00
#define lcd_line_2			 	0x40
#define LCD_ClEAR_SCREEN		0x01    //清屏
#define LCD_AC_UP			    0x06	//地址计数器自动+1
#define LCD_SET_7			    0x38    //8位接口,双行显示,5*7字符
#define LCD_SHOW			    0x0c    //显示开
#define uchar unsigned char
#define uint unsigned int
sbit  key0 = P3^3;
sbit  key1 = P3^2;
sbit  SD0 = P1^0;
sbit  CS = P1^2;
sbit  CLK = P1^3;
sbit  DIN = P1^1;
 sbit d = P3^4;
unsigned long temperature;
unsigned long  tmp;//数据类型要注意

void WHILE_BUSY(void)
{
	while((bit)(lcd_1602_CR & 0x80)) ;
}
  void delay(uint x)
 {
    while(--x);
 }
//通过LCD1602内部ROM显示字符
 void print0(uchar line,uchar column,uchar n)
 {
   	WHILE_BUSY();
  	switch(line)
  	{
	 case 1:
    	lcd_1602_CW = 0x80 + column;//光标定位
        delay(10);
	    lcd_1602_DW =0x30+n;
	    break;
	 case 2:
    	lcd_1602_CW = 0xc0 + column;//光标定位
        delay(10);
	    lcd_1602_DW =0x30+n;//指针加一,光标前移
		break;
	 default: break;
      }
 }
void Print(uchar *str,uchar addr)
{
 
  WHILE_BUSY();
  lcd_1602_CW = 0x80|addr;
  while(*str!='\0')
 {
   WHILE_BUSY();
   lcd_1602_DW = *str;//直接针对外部地址些 movx指令  
   str++;
   delay(50);
 }
}
void lcd_1602_Init(void)
{ 
  WHILE_BUSY();
  lcd_1602_CW =	 LCD_SET_7;
  WHILE_BUSY();
  lcd_1602_CW  =  LCD_ClEAR_SCREEN;
  WHILE_BUSY();
  lcd_1602_CW =	LCD_AC_UP;
   WHILE_BUSY();
  lcd_1602_CW = LCD_SHOW;
}


uint TLC_1543_addr(uchar addr) 
{

uint date_out=0;
uchar k;
uchar i;
uchar j;
CLK=0;
CS=0;
for (i=0;i<4;i++) 
{
DIN=(bit)(addr&0x08);CLK=1;CLK=0;
addr<<=1;
}
for (j=0;j<6;j++) //填充6 个CLOCK
{
CLK=1;CLK=0;
}
CS=1;
delay(5);
CS=0; //等待AD 转换
delay(5);
for(k=0;k<10;k++)
     {
       SD0 = 1;
       CLK = 1;
       date_out<<=1;
       if(SD0) date_out += 1;
       CLK = 0;
     }
     return(date_out);

}
diaplay_TLC_1543(void)
{
	    unsigned long  tmp;//数据类型要注意
		Print("made by ali",lcd_line_1+3);
		Print("voltage",lcd_line_2);
		print0(2,7, 10);//":"
		
	while(1)
   	 {
		   	
	         Print("made by ali",lcd_line_1+3);
		     Print("voltage",lcd_line_2);
		     print0(2,7, 10);//":"
		     tmp = TLC_1543_addr(0x00);
			 tmp=tmp*50000/1024;
	         print0(2,8, tmp/10000);
	         print0(2,10,tmp%10000/1000);
			 print0(2,11,tmp%10000%1000/100);
	         print0(2,12,tmp%1000%100/10);
			 print0(2,13,tmp%10);
	         Print(".",lcd_line_2+9);
     }
 }

void main()
{
    lcd_1602_Init();
    diaplay_TLC_1543();
}

⌨️ 快捷键说明

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