1樓:匿名使用者
這是一個利用溫感db18b20做的溫控系統!程式跟電路如下:系統描述:在lcd1602上實時顯示時鐘,溫度,溼度,系統執行時間。利用ds18b20
檢測當前溫度,通過和設定引數的比較,給isd1420發出報警脈衝,通過
功率放大器lm386 驅動喇叭報警。
#include
#include
#define uchar unsigned char
#define uint unsigned int#define busy 0x80 //lcd忙檢測標誌
#define dataport p0 //定義p0口為lcd通訊埠
#define playe_addr xbyte[0xbfff] //語音報警地址sbit red_alarm=p1^0; //紅色指示燈
sbit write_alarm=p1^1; //白色指示燈
sbit green_alarm=p1^2; //綠色指示燈
sbit p1_4=p1^4; //時鐘調整
sbit p1_5=p1^5; //時鐘加
sbit p1_6=p1^6; //時鐘減sbit dq = p1^7; //定義ds18b20通訊埠
sbit lcm_rs=p2^0; //資料/命令端
sbit lcm_rw=p2^1; //讀/寫選擇端
sbit lcm_en=p2^2; //lcd使能訊號
sbit ad_busy=p3^2; //adc中斷方式介面
sbit recled_eoc=p3^5; //isd1420放音結束查詢標誌
sbit out=p3^7;uchar ad_data; //ad取樣值儲存
uchar seconde=0; //定義並初始化時鐘變數
uchar minite=0;
uchar hour=12;
uchar mstcnt=0;
uchar temp1,temp2,temp; //溫度顯示變數
uchar t,set;
uchar t;
bit on_off;
bit outflag;uchar code str0=;
uchar code str1=;void delay_lcm(uint); //lcd延時子程式
void initlcm( void); //lcd初始化子程式
void lcd_wait(void); //lcd檢測忙子程式
void writecommandlcm(uchar wclcm,uchar busyc); //寫指令到icm子函式
void writedatalcm(uchar wdlcm); //寫資料到lcm子函式
void displayonechar(uchar x,uchar y,uchar ddata); //顯示指定座標的一個字元子函式
void displaylistchar(uchar x,uchar y,uchar code *ddata); //顯示指定座標的一串字元子函式
void init_timer0(void); //定時器初始化
void displayfun1(void);
void displayfun2(void);
void displayfun3(void);
void displayfun4(void);
void keyscan(void ); //鍵盤掃描子程式
void set_adj(void);
void inc_key(void);
void dec_key(void);
void delay_18b20(unsigned int i);
void init_ds18b20(void) ;
uchar readonechar(void);
void writeonechar(unsigned char dat);
void readtemperature(void);
void ad0809(void);
void playalarm(void);
/*********延時k*1ms,12.000mhz**********/void delay_lcm(uint k)
return(dat);
}/*************ds18b20寫一個位元組****************/ void writeonechar(uchar dat)
}/**************讀取ds18b20當前溫度************/void readtemperature(void)
/***************液晶顯示子函式1正常顯示*****************/void displayfun1(void)
else }
/************液晶顯示子函式2***************/void displayfun2(void)
/**************液晶顯示子函式3*****************/void displayfun3(void)
/**************液晶顯示子函式4 *****************/void displayfun4(void)
/**************鍵盤掃描子函式******************/void keyscan(void)
{uchar xx; //區域性變數
p1=0xff;
if(p1!=0xff)
{delay_lcm(30);
if(p1!=0xff)
{ xx=p1;
2樓:匿名使用者
這是個簡單的數論問題,微控制器隨便選,不需要什麼高檔的片。具體怎麼設計得看你那邊電子稱介面和要求的輸出方式
微控制器問題,微控制器問題
船長 12mhz 12 1s 1ms 1000065536 10000 55536 d8f0mov tmod,01h t0工作方式1mov tl0,0f0h t0初值mov th0,0d8 h t0初值setb tr0 啟動t0 setb et0 允許t0中斷 setb ea 開總中斷 龍宇防盜監控...
微控制器題目求詳解
mov a,20h anl a,15 call toasc mov 21h,a mov a,20h swap a anl a,15 call toasc mov 22h,a sjmp toasc 轉換程式,請樓主自己寫一個原創的。retend 題目可能主要考2分方面 1.16進位制數轉ascii碼 ...
微控制器原理的參考文獻有哪些,急求關於微控制器的外文參考文獻五篇,不要具體內容,只要標題,作者,年份,型別等就可以了
唐可愛 1 李廣弟等 微控制器基礎 北京航空航天出版社,2001.7 2 樓然苗等 51 系列微控制器設計例項 北京航空航天出版社,2003.3 3 唐俊翟等 微控制器原理與應用 冶金工業出版社,2003.9 4 劉瑞新等 微控制器原理及應用教程 機械工業出版社,2003.7 5 吳國經等 微控制器...