-
大小: 15.42MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-06-20
- 語言: 其他
- 標(biāo)簽:
資源簡介
基于單片機(jī)溫控風(fēng)扇,pwm波調(diào)控,數(shù)碼管顯示,適合畢設(shè)。
代碼片段和文件信息
#include? ?????????//調(diào)用單片機(jī)頭文件
#define?uchar?unsigned?char??//無符號字符型?宏定義 變量范圍0~255
#define?uint??unsigned?int ?//無符號整型?宏定義 變量范圍0~65535
//數(shù)碼管段選定義??????0?????1????2????3????4????5 6 ?7 ??8 ???9
uchar?code?smg_du[]={0x280xee0x420x720xe50xa80x410x770x200xa0
?? ?0x600x250x390x260x310x710xff}; ?//斷碼
//數(shù)碼管位選定義
uchar?code?smg_we[]={0xef0xdf0xbf0x7f};
uchar?dis_smg[4]?=?{0};
uchar?smg_i?=?3;????//顯示數(shù)碼管的個(gè)位數(shù)
sbit?dq???=?P2^4; //18b20?IO口的定義
bit?flag_lj_en; ?//按鍵連加使能
bit?flag_lj_3_en; ?//按鍵連3次連加后使能??加的數(shù)就越大了?
uchar?key_timekey_value;??????//用做連加的中間變量
bit?key_500ms??;
sbit?pwm?=?P2^3;??
uchar?f_pwm_l?; ??//
uint?temperature?;??//
bit?flag_300ms?;
uchar?menu_1;???????//菜單設(shè)計(jì)的變量
uint?t_high?=?300t_low?=?100; ???//溫度上下限值?
/***********************1ms延時(shí)函數(shù)*****************************/
void?delay_1ms(uint?q)
{
uint?ij;
for(i=0;i for(j=0;j<120;j++);
}
/***********************小延時(shí)函數(shù)*****************************/
void?delay_uint(uint?q)
{
while(q--);
}
/***********************數(shù)碼顯示函數(shù)*****************************/
void?display()
{
static?uchar?i;???
i++;
if(i?>=?smg_i)
i?=?0;
P1?=?0xff; ?//消隱?
P3?=?smg_we[i]; ? ?//位選
P1?=?dis_smg[i]; ?//段選 ????????
}
/***********************18b20初始化函數(shù)*****************************/
void?init_18b20()
{
bit?q;
dq?=?1; //把總線拿高
delay_uint(1); ????//15us
dq?=?0; //給復(fù)位脈沖
delay_uint(80); //750us
dq?=?1; //把總線拿高?等待
delay_uint(10); //110us
q?=?dq; //讀取18b20初始化信號
delay_uint(20); //200us
dq?=?1; //把總線拿高?釋放總線
}
/*************寫18b20內(nèi)的數(shù)據(jù)***************/
void?write_18b20(uchar?dat)
{
uchar?i;
for(i=0;i<8;i++)
{ ?//寫數(shù)據(jù)是低位開始
dq?=?0; ?//把總線拿低寫時(shí)間隙開始?
dq?=?dat?&?0x01;?//向18b20總線寫數(shù)據(jù)了
delay_uint(5); ?//?60us
dq?=?1; ?//釋放總線
dat?>>=?1;
}
}
/*************讀取18b20內(nèi)的數(shù)據(jù)***************/
uchar?read_18b20()
{
uchar?ivalue;
for(i=0;i<8;i++)
{
dq?=?0; ?//把總線拿低讀時(shí)間隙開始?
value?>>=?1; ?//讀數(shù)據(jù)是低位開始
dq?=?1; ?//釋放總線
if(dq?==?1) ?//開始讀寫數(shù)據(jù)?
value?|=?0x80;
delay_uint(5); ?//60us 讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間
}
return?value; ?//返回?cái)?shù)據(jù)
}
/*************讀取溫度的值?讀出來的是小數(shù)***************/
uint?read_temp()
{
uint?value;
uchar?low; ???//在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會影響到18b20的時(shí)序
init_18b20(); ???//初始化18b20
write_18b20(0xcc); ???//跳過64位ROM
write_18b20(0x44); ???//啟動一次溫度轉(zhuǎn)換命令
delay_uint(50); ???//500us
init_18b20(); ???//初始化18b20
write_18b20(0xcc); ???//跳過64位ROM
write_18b20(0xbe); ???//發(fā)出讀取暫存器命令
low?=?read_18b20(); ???//讀溫度低字節(jié)
value?=?read_18b20();??//讀溫度高字節(jié)
value?<<=?8; ???//把溫度的高位左移8位
value?|=?low; ???//把讀出的溫度低位放到value的低八位中
value?*=?0.625; ???????//轉(zhuǎn)換到溫度值?小數(shù)
return?value; ???//返回讀出的溫度?帶小數(shù)
}
/*************定時(shí)器0初始化程序***************/
void?time_init() ??
{
EA???=?1; ? ??//開總中斷
TMOD?=?0X21; ??//定時(shí)器0、定時(shí)器1工作方式1
ET0??=?1; ??//開定時(shí)器0中斷?
TR0??=?1; ??//允許定時(shí)器0定時(shí)
ET1??=?1; ??//開定時(shí)器0中斷?
TR1??=?1; ??//允許定時(shí)器0定時(shí)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????180??2017-02-03?13:12??##溫空風(fēng)扇?數(shù)碼管顯示\Altium?Designer?Sunner畫圖軟件學(xué)習(xí)視頻\Altium?Designer?Sunner畫圖軟件學(xué)習(xí)視頻.txt
?????文件????????182??2017-02-03?12:30??##溫空風(fēng)扇?數(shù)碼管顯示\Altium?Designer?Sunner畫圖軟件安裝視頻\Altium?Designer?Sunner畫圖軟件安裝視頻.txt
?????文件????????182??2017-02-03?14:06??##溫空風(fēng)扇?數(shù)碼管顯示\AltiumDesignerSummer9?畫圖軟件安裝包\AltiumDesignerSummer9?畫圖軟件.txt
?????文件????????157??2017-02-03?12:35??##溫空風(fēng)扇?數(shù)碼管顯示\C語言視頻教程\C語言視頻教程.txt
?????文件????????161??2017-02-03?12:29??##溫空風(fēng)扇?數(shù)碼管顯示\KEIL?軟件安裝視頻\KEIL?軟件安裝視頻.txt
?????文件????????173??2017-02-19?16:04??##溫空風(fēng)扇?數(shù)碼管顯示\keil4軟件安裝包?開發(fā)工具地址\開發(fā)工具.txt
?????文件????2697759??2009-01-05?19:56??##溫空風(fēng)扇?數(shù)碼管顯示\MCU?單片機(jī)芯片資料\STC89C52RC.pdf
?????文件????????151??2017-02-06?16:55??##溫空風(fēng)扇?數(shù)碼管顯示\MCU?單片機(jī)芯片資料\單片機(jī)所有芯片51、52資料.txt
?????文件??????33623??2017-02-03?23:06??##溫空風(fēng)扇?數(shù)碼管顯示\PCB?圖\PCB圖.png
?????文件????????168??2017-02-03?12:29??##溫空風(fēng)扇?數(shù)碼管顯示\Protel?99?軟件安裝包\Protel?99?軟件安裝包.txt
?????文件????????170??2017-02-03?12:28??##溫空風(fēng)扇?數(shù)碼管顯示\Protel?99?軟件安裝視頻\Protel?99?軟件安裝視頻.txt
?????文件????????242??2017-02-03?12:54??##溫空風(fēng)扇?數(shù)碼管顯示\Protel?99畫圖軟件學(xué)習(xí)視頻\Protel?99畫圖軟件學(xué)習(xí)視頻.txt
?????文件????????165??2017-02-23?21:31??##溫空風(fēng)扇?數(shù)碼管顯示\Proteus?ISIS??仿真軟件學(xué)習(xí)視頻\Proteus仿真軟件學(xué)習(xí)視頻.txt
?????文件????????174??2017-02-03?12:27??##溫空風(fēng)扇?數(shù)碼管顯示\Proteus?軟件安裝包\Proteus?軟件安裝包.txt
?????文件????????167??2017-02-03?14:29??##溫空風(fēng)扇?數(shù)碼管顯示\PROTEUS仿真軟件的安裝方法\PROTEUS仿真軟件的安裝方法.txt
?????文件??????12800??2017-02-03?14:43??##溫空風(fēng)扇?數(shù)碼管顯示\使用前必讀.doc
?????文件??????19968??2017-10-12?22:43??##溫空風(fēng)扇?數(shù)碼管顯示\元件清單\元件清單?溫控風(fēng)扇.xls
?????文件??????59879??2013-10-26?17:23??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\18B20溫度傳感器\1.jpg
????..A.SH.??????4096??2013-12-07?21:41??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\18B20溫度傳感器\Thumbs.db
????..A.SH.?????17920??2013-12-07?21:53??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\4位共陽數(shù)碼管\Thumbs.db
?????文件??????71004??2013-12-07?21:47??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\4位共陽數(shù)碼管\數(shù)碼管?(1).jpg
?????文件??????43302??2013-12-07?21:50??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\4位共陽數(shù)碼管\數(shù)碼管.jpg
?????文件??????16626??2013-03-29?13:36??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\NPN型原理圖.jpg
?????文件??????10402??2013-03-29?13:34??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\PNP型原理圖.jpg
????..A.SH.?????25088??2014-01-08?16:57??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\Thumbs.db
?????文件???????3296??2013-03-29?14:00??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\三極管介紹.txt
?????文件??????19552??2014-01-08?16:57??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\三極管介紹說明.jpg
?????文件??????17239??2013-03-29?13:29??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\三極管\三極管引腳介紹.jpg
?????文件??????16763??2014-02-11?21:49??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\發(fā)光二極管\發(fā)光二極管.jpg
?????文件???????9193??2014-02-11?21:50??##溫空風(fēng)扇?數(shù)碼管顯示\制作過程\發(fā)光二極管\發(fā)光二極管1.jpg
............此處省略113個(gè)文件信息
評論
共有 條評論