|
以下為部分程序
//
//操作按鍵定義
sbit KEY0=P1^4; //功能按鍵設定報警距離及溫度
sbit KEY1=P1^5; // +鍵
sbit KEY2=P1^6; // -鍵
sbit KEY3=P1^7; //備用鍵
//其它定義
//sbit flashing_lamp1=P1^4; //指示小燈1
sbit LO_lamp=P0^7; //指示小燈或蜂鳴器
sbit Ultrasonic_out=P3^3; //超聲波發射口
sbit Echo=P3^2; //回波接收
//
bit set_flashing_flag=0; //設定時調整單元閃爍標志,0正常顯示,1熄滅
bit ds18b20_Err_flag; //溫度傳感器異常標志
unsigned char xdata set_time_flag=0; //調整控制標志,0-3,分別為正常,調距離、高溫、低溫
unsigned char xdata second_conter=0; //秒計數器
//
unsigned int xdata Distance ; //距離
float xdata s,sm; //平均距離值,每次測量距離
unsigned char xdata m_con;//距離算平均值計數,10次測量求一次平均值
//
//數據表及內存定義
//*******溫度小數部分用查表法**********//
uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//
//開機文字顯示內容
uchar code disdata1[16]={"超聲波距離測量器"};//開機顯示畫面第一行
uchar code disdata2[16]={"A13 電信課程設計"};//開機顯示畫面第二行
uchar code disdata3[16]={"設計者: 樓然苗 "};//開機顯示畫面第一行
uchar code disdata4[16]={"2015年10月16日 "};//開機顯示畫面第二行
//
//
//
//工作時顯示緩存單元
//uchar code disdata1[16]={"超聲波距離測量器"}; //顯示畫面第一行
uchar xdata DISP_DATA2[16]={"聲速: 344.0 米 "}; //液晶第2行顯示緩沖
uchar xdata DISP_DATA3[16]={"距離: 000.0CM "}; //液晶第3行顯示緩沖
uchar xdata DISP_DATA4[16]={"氣溫: +120.9℃ "}; //液晶第4行顯示緩沖
//調整時的顯示單元
uchar code DISP_DATA11[16]={"----設定狀態----"}; //液晶第1行顯示緩沖
uchar code DISP_DATA22[16]={"S2設定 S3加S4減"}; //液晶第2行顯示緩沖
uchar xdata DISP_DATA33[16]={"報警距離:400.0CM"}; //液晶第3行顯示緩沖
uchar xdata DISP_DATA44[16]={"溫度:H+40 L-10 "}; //液晶第4行顯示緩沖
//
uchar code DISP_DATA7[16]={"溫度傳感器異常!!"};//液晶第顯示狀態表/設定用
//
//
uchar data temp_data[2]={0x00,0x00}; // DS18B20讀出溫度暫放低字節及高字節
uchar data t_data=0; //溫度數據整數部分值存放
float test_temp_data; //測得的溫度數據(有正負)
char data temp_bj_max; //報警溫度上限(有正負)
char data temp_bj_min; // 報警溫度下限(有正負)
|
評分
-
查看全部評分
|