xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 30KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-18
  • 語言: 其他
  • 標簽: C51??

資源簡介

基于51單片機的數字溫度計設計,并用4位數碼管顯示。實測可用。采用keil編程,有hex文件,

資源截圖

代碼片段和文件信息

#include?	?????????//調用單片機頭文件
#define?uchar?unsigned?char??//無符號字符型?宏定義 變量范圍0~255
#define?uint??unsigned?int ?//無符號整型?宏定義 變量范圍0~65535

???????//數碼管段選定義?0?????1????2????3? ??4 ???5 6 ?7 ??8 ???9
uchar?code?smg_du[]={0x140x770x4c0x450x270x850x840x570x040x05
// ???A B ?C ??D ???E???F 不顯示
? ???0x060xa40x9c0x640x8c0x8e0xff}; ?//斷碼
//數碼管位選定義
sbit?smg_we1?=?P2^0; ????//數碼管位選定義
sbit?smg_we2?=?P2^2;
sbit?smg_we3?=?P2^4;
sbit?smg_we4?=?P2^6;

uchar?dis_smg[8]?=?{0x140x770x4c0x450x270x850x84};
uchar?smg_i?=?3;????//顯示數碼管的個位數
sbit?dq???=?P3^3; //18b20?IO口的定義

bit?flag_wd_z_f;???????//正負溫度

int?temperature?;??//

/***********************1ms延時函數*****************************/
void?delay_1ms(uint?q)
{
uint?ij;
for(i=0;i for(j=0;j<120;j++);
}

/***********************小延時函數*****************************/
void?delay_uint(uint?q)
{
while(q--);
}

/***********************數碼位選函數*****************************/
void?smg_we_switch(uchar?i)
{
switch(i)
{
case?0:?smg_we1?=?0;??smg_we2?=?1;?smg_we3?=?1;??smg_we4?=?1;?break;
case?1:?smg_we1?=?1;??smg_we2?=?0;?smg_we3?=?1;??smg_we4?=?1;?break;
case?2:?smg_we1?=?1;??smg_we2?=?1;?smg_we3?=?0;??smg_we4?=?1;?break;
case?3:?smg_we1?=?1;??smg_we2?=?1;?smg_we3?=?1;??smg_we4?=?0;?break;
}
}


/***********************數碼顯示函數*****************************/
void?display()
{
static?uchar?i;???
i++;
if(i?>=?smg_i)
i?=?0;
P0?=?0xff; ?//消隱?
smg_we_switch(i); ?//位選
P0?=?dis_smg[i]; ?//段選 ????????

}

/***********************18b20初始化函數*****************************/
void?init_18b20()
{
bit?q;
dq?=?1; //把總線拿高
delay_uint(1); ????//15us
dq?=?0; //給復位脈沖
delay_uint(80); //750us
dq?=?1; //把總線拿高?等待
delay_uint(10); //110us
q?=?dq; //讀取18b20初始化信號
delay_uint(20); //200us
dq?=?1; //把總線拿高?釋放總線
}

/*************寫18b20內的數據***************/
void?write_18b20(uchar?dat)
{
uchar?i;
for(i=0;i<8;i++)
{ ?//寫數據是低位開始
dq?=?0; ?//把總線拿低寫時間隙開始?
dq?=?dat?&?0x01;?//向18b20總線寫數據了
delay_uint(5); ?//?60us
dq?=?1; ?//釋放總線
dat?>>=?1;
}
}

/*************讀取18b20內的數據***************/
uchar?read_18b20()
{
uchar?ivalue;
for(i=0;i<8;i++)
{
dq?=?0; ?//把總線拿低讀時間隙開始?
value?>>=?1; ?//讀數據是低位開始
dq?=?1; ?//釋放總線
if(dq?==?1) ?//開始讀寫數據?
value?|=?0x80;
delay_uint(5); ?//60us 讀一個時間隙最少要保持60us的時間
}
return?value; ?//返回數據
}

/*************讀取溫度的值?讀出來的是小數***************/
uint?read_temp()
{
uint?value;
uchar?low; ???//在讀取溫度的時候如果中斷的太頻繁了,就應該把中斷給關了,否則會影響到18b20的時序
init_18b20(); ???//初始化18b20
write_18b20(0xcc); ???//跳過64位ROM
write_18b20(0x44); ???//啟動一次溫度轉換命令
delay_uint(50); ???//500us

init_18b20(); ???//初始化18b20
EA?=?0;
write_18b20(0xcc); ???//跳過64位ROM
write_18b20(0xbe); ???//發出讀取暫存器命令

low?=?read_18b20(); //讀溫度低字節
value?=?read_18b20();??//讀溫度高字節
EA?=?1;

value?<<=?8; ???//把溫度的高位左移8位
value?|=?low; ???//把讀

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5402??2014-10-14?22:27??程序\單片機數字溫度計.c

?????文件??????10233??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計

?????文件???????5402??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.c

?????文件???????4800??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.hex

?????文件?????????64??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.lnp

?????文件??????11555??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.LST

?????文件??????14944??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.M51

?????文件??????11347??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.OBJ

?????文件????????690??2014-10-14?22:27??程序\溫度計?程序\單片機數字溫度計.plg

????.......?????90195??2018-11-15?21:57??程序\溫度計?程序\單片機數字溫度計.uvgui.回首追憶

????.......??????5406??2018-11-15?21:57??程序\溫度計?程序\單片機數字溫度計.uvopt

????.......?????14314??2018-11-15?21:57??程序\溫度計?程序\單片機數字溫度計.uvproj

????.......?????????0??2014-10-14?22:26??程序\溫度計?程序\單片機數字溫度計_uvproj.bak

?????目錄??????????0??2018-11-15?21:57??程序\溫度計?程序

?????目錄??????????0??2016-01-17?23:51??程序

-----------?---------??----------?-----??----

???????????????174352????????????????????15


評論

共有 條評論