/*---------------------------------------------------------------------------------------------------------------------------*/ /*--************************功能【AD 转换,液晶显示】**************************--*/ /*--************************芯片:【STC12C5A60S2】******************************--*/ /*--************************液晶:【LCD1602】***********************************--*/ /*--************************ADC 管脚:【P1.0~P1.7 】***************************--*/ /*--************************检测范围:【0.00~4.99V】***************************--*/ /*---------------------------------------------------------------------------------------------------------------------------*/ #include "reg52.h" #include "intrins.h" typedef unsigned char uchar; typedef unsigned int uint; #define _Nop() _nop_() /*------------------------以下为 LCD1602 显示模块定义-----------------------*/ unsigned char data_char_table[]= {"0123456789ABCDEF"}; //LCD 数据 unsigned char Lcd_Dis1_table[] = {"Position:No. "}; //第一行显示框架 unsigned char pos_char_table[] = {" D "}; // 显示位置 unsigned char Lcd_Dis2_table[] = {"Voltage : V"}; //第二行显示框架 unsigned char num_char_table[] = {" 9A.CD V"}; // 显示位置 sbit lcd_rs_port = P2^7; //定义 LCD 控制端口,根据硬件调整 sbit lcd_rw_port = P2^6; sbit lcd_en_port = P2^4; #define lcd_data_port P0 void lcd_delay(uchar ms); //LCD1602 延时 void lcd_busy_wait(); //LCD1602 忙等待 void lcd_command_write(uint command); //LCD1602 命令字写入 void lcd_system_reset(); //LCD1602 初始化 void lcd_char_write(uint x_pos,y_pos,lcd_dat); //LCD1602 字符写入 void lcd_bad_check(); //LCD1602 坏点检查 void Num_to_Disp(uchar i, uint Num); //显示数据处理 void LcdDisp(uchar j, uint num); //液晶显示函数 /*------------------------以下为 ADC 相应寄存器初始化及端口定义-------------*/ /***** 定义与 ADC 相关的特殊功能寄存器 *****/ sfr ADC_CONTR = 0xBC; ...