程序代码: 头文件: #ifndef __DELAY_H__ #define __DELAY_H__ #define uchar unsigned char #define uint unsigned int void delay_ms(uint z); //ms 级延时函数 #endif #ifndef __LCD_H__ #define __LCD_H__ #include"delay.h" #include
bit LCD_Check_Busy(); //LCD_1602 忙检测 void Write_Com(uchar com); //LCD_1602 写指令 void Write_Data(uchar data); //LCD_1602 写数据 void LCD_Init(); //LCD_1602 初始化 void LCD_Write_Char(uchar x,uchar y,uchar s); //写一个字节 void LCD_Write_String(uchar x,uchar y,uchar *s); //写入字符串 #endif #ifndef __PICAD_H__ #define __PICAD_H__ #include "delay.h" #include void PIC_Ad_Init(); //PIC AD 初始化 uint Get_Ad(); //数据采集 #endif C 代码: #include"delay.h" /*----------------------------------- 函数名称:ms 级延时函数 入口参数:z ——ms 的倍数 返回值:无 功能:提供ms 级延时函数,z ms -------------------------------------*/ void delay_ms(uint z) { uchar x; uint y; for(x=110;x>0;x--) for(y=z;y>0;y--); } /*------------------------------------------ LCD_1602 液晶显示函数 -------------------------------------------*/ #include"lcd.h" #define RS RB1 #define RW RB2 #define EN RB4 /*------------------------------------------- 函数名称:LCD_1602 忙检测 入口参数:无 返回值:返回1 忙,0 可正常接收数据 函数功能:检测LCD_1602 是否处于忙碌 状态 -------------------------------------------*/ bit LCD_Check_Busy() { static bit Busy_Flag; RS=0;//指令模式 RW=1;//读模式 EN=1; asm("NOP");asm("NOP");asm("NOP"); if(PORTD&0X80) Busy_Flag=1; else Busy_Flag=0; EN=0; return Busy_Flag; } /*------------------------------------------ 函数名称:LCD_1602 写指令 入口参数:com ——待写入指令com 返回值:无 函数功能:向LCD_1602 中写入指令com --------------------------------------------*/ void Write_Com(uchar com) { while(LCD_Check_Busy()); RS=0; RW=0; PORTD=com; EN=1; delay_ms(1); EN=0; } /*-------------------...