資源簡(jiǎn)介
單片機(jī),C語言代碼,數(shù)碼管顯示模塊,溫度感應(yīng)模塊,軟硬件結(jié)合

代碼片段和文件信息
#include? ?????????//調(diào)用單片機(jī)頭文件
#define?uchar?unsigned?char??//無符號(hào)字符型?宏定義 變量范圍0~255
#define?uint??unsigned?int ?//無符號(hào)整型?宏定義 變量范圍0~65535
#include?“eeprom52.h“
//數(shù)碼管段選定義??????0?????1????2????3????4????5 6 ?7 ??8 ???9
uchar?code?smg_du[]={0xc00xf90xa40xb00x990x920x820xf80x800x90
?? ?0x880x830xc60xa10x860x8e0xff}; ?//斷碼
//數(shù)碼管位選定義
uchar?code?smg_we[]={0xef0xdf0xbf0x7f};
uchar?dis_smg[8]?=?{0xc00xf90xa40xb00x990x920x820xf8};
uchar?smg_i?=?3;????//顯示數(shù)碼管的個(gè)位數(shù)
sbit?dq???=?P2^4; //18b20?IO口的定義
sbit?beep?=?P2^3;???//蜂鳴器IO口定義
bit?flag_lj_en; ?//按鍵連加使能
bit?flag_lj_3_en; ?//按鍵連3次連加后使能??加的數(shù)就越大了?
uchar?key_timeflag_value;??????//用做連加的中間變量
bit?key_500ms??;
uint?temperature?;??//
bit?flag_300ms?;
uchar?menu_1;???????//菜單設(shè)計(jì)的變量
uint?t_high?=?300t_low?=?100; ???//溫度上下限報(bào)警值?
/***********************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]; ?//段選 ????????
}
/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eepom中******************/
void?write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000?t_high?%?256);
byte_write(0x2001?t_high?/?256);
byte_write(0x2002?t_low?%?256);
byte_write(0x2003?t_low?/?256);
byte_write(0x2055?a_a);
}
/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eepom中讀出來*****************/
void?read_eeprom()
{
t_high??=?byte_read(0x2001);
t_high?<<=?8;
t_high??|=?byte_read(0x2000);
t_low???=?byte_read(0x2003);
t_low?<<=?8;
t_low???|=?byte_read(0x2002);
a_a??????=?byte_read(0x2055);
}
/**************開機(jī)初始化保存的數(shù)據(jù)*****************/
void?init_eeprom()
{
read_eeprom(); //先讀
if(a_a?!=?1) //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom
{
t_high?=?300;
t_low??=?100;
a_a?=?1;
write_eeprom(); ???//保存數(shù)據(jù)
}
}
/***********************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初始化信號(hào)
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í)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-05?20:43??程序、仿真和原理圖\程序\
?????文件????????3081??2013-11-26?14:44??程序、仿真和原理圖\程序\eeprom52.h
?????文件???????18580??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示
?????文件????????1060??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.build_log.htm
?????文件????????8813??2014-02-27?12:48??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.c
?????文件????????7941??2012-12-13?21:53??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.c.bak
?????文件????????6339??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.hex
?????文件??????????68??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.lnp
?????文件?????????813??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.LST
?????文件???????27252??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.M51
?????文件???????22299??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.OBJ
?????文件?????????257??2014-03-03?16:33??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.plg
?????文件???????85242??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.uvgui.Lenovo
?????文件????????5771??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.uvopt
?????文件???????13910??2018-12-30?17:06??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示.uvproj
?????文件???????55281??2014-02-27?20:18??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示_uvopt.bak
?????文件???????????0??2013-07-03?16:28??程序、仿真和原理圖\程序\溫度控制數(shù)碼管顯示_uvproj.bak
?????目錄???????????0??2019-05-06?16:09??程序、仿真和原理圖\仿真圖\
?????文件??????131740??2013-12-21?11:14??程序、仿真和原理圖\仿真圖\Last?Loaded?溫度上下限數(shù)碼管.DBK
?????文件????????6339??2013-12-24?16:09??程序、仿真和原理圖\仿真圖\溫度控制數(shù)碼管顯示.hex
?????文件??????131812??2014-03-03?16:36??程序、仿真和原理圖\仿真圖\溫度上下限數(shù)碼管.DSN
?????文件????????3000??2019-05-14?10:45??程序、仿真和原理圖\仿真圖\溫度上下限數(shù)碼管.pdsprj.DESKTOP-9TJPPFC.Batman.workspace
?????文件????????1626??2014-07-02?20:28??程序、仿真和原理圖\仿真圖\溫度上下限數(shù)碼管.PWI
?????目錄???????????0??2019-05-06?16:09??程序、仿真和原理圖\原理圖\
?????文件??????222208??2014-03-06?15:00??程序、仿真和原理圖\原理圖\DXP格式?溫度上下限?蜂鳴器報(bào)警.SchDoc
?????文件???????75782??2014-05-02?12:14??程序、仿真和原理圖\原理圖\DXP格式?溫度上下限?蜂鳴器報(bào)警.SchDocPreview
?????文件??????220887??2014-03-06?15:01??程序、仿真和原理圖\原理圖\PDF格式?溫度上下限?蜂鳴器報(bào)警.pdf
?????文件???????51468??2014-03-06?15:00??程序、仿真和原理圖\原理圖\protel99格式?溫度上下限?蜂鳴器報(bào)警.sch
?????文件???????26624??2014-03-06?15:01??程序、仿真和原理圖\原理圖\Word格式.doc
?????文件?????????179??2013-12-07?15:35??程序、仿真和原理圖\原理圖\打開方式.txt
評(píng)論
共有 條評(píng)論