91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-11
  • 語言: 其他
  • 標簽: PIC單片機??

資源簡介

PIC單片機 18B20溫度傳感器和六位數碼管顯示溫度結果,其中整數部分2位,小數部分4位

資源截圖

代碼片段和文件信息

//目的:熟悉DS18B20的使用
//六位數碼管顯示溫度結果,其中整數部分2位,小數部分4位
//每次按下RB0鍵后進行一次溫度轉換。
//硬件要求:把DS18B20插在18B20插座上
//??????????撥碼開關S10第1位置ON,其他位置OFF
//??????????撥碼開關S5、S6全部置ON,其他撥碼開關全部置OFF

#include
__CONFIG(0x1832);????????
//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩
?
#define??uch?unsigned?char?????????????????????//給unsigned?char起別名?uch
#?define?DQ?RA0????????????????????????????????//定義18B20數據端口?
#?define?DQ_DIR?TRISA0?????????????????????????//定義18B20D口方向寄存器?
#?define?DQ_HIGH()?DQ_DIR?=1???????????????????//設置數據口為輸入
#?define?DQ_LOW()?DQ?=?0;?DQ_DIR?=?0???????????//設置數據口為輸出
?unsigned?char??TLV=0?;????????????????????????//采集到的溫度高8位
?unsigned?char??THV=0;?????????????????????????//采集到的溫度低8位
?unsigned?char?TZ=0;???????????????????????????//轉換后的溫度值整數部分
?unsigned?char?TX=0;???????????????????????????//轉換后的溫度值小數部分
?unsigned?int?wd;??????????????????????????????//轉換后的溫度值BCD碼形式

unsigned?char?shi;?????????????????????????????//整數十位
unsigned?char?ge;??????????????????????????????//整數個位
unsigned?char?shifen;??????????????????????????//十分位
unsigned?char?baifen;??????????????????????????//百分位
unsigned?char?qianfen;?????????????????????????//千分位
unsigned?char?wanfen;??????????????????????????//萬分位
unsigned?char?table[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};?
//0-9的顯示代碼

//------------------------------------------------
//延時函數
void?delay(char?xchar?y)?
{
??char?z;
??do{
??????z=y;
??????do{;}while(--z);
?????}while(--x);
?}
//其指令時間為:7+(3*(Y-1)+7)*(X-1)如果再加上函數調用的call?指令、頁面設定、傳遞參數花掉的7?個指令。
//則是:14+(3*(Y-1)+7)*(X-1)。

//--------------------------------------------------
//結果顯示函數
void?display()
{
?TRISA=0X00;????????????????????????????//設置A口全為輸出
?PORTD=table[shi];??????????????????????//顯示整數十位
?PORTA=0x3e;
?delay(1070);
?PORTD=table[ge]&0X7F;??????????????????//顯示整數個位,并點亮小數點
?PORTA=0x3d;
?delay(1070);
?PORTD=table[shifen];???????????????????//顯示小數十分位
?PORTA=0x3b;
?delay(1070);
?PORTD=table[baifen];???????????????????//顯示小數百分位
?PORTA=0x37;
?delay(1070);
?PORTD=table[qianfen];??????????????????//顯示小數千分位
?PORTA=0x2f;
?delay(1070);
?PORTD=table[wanfen];???????????????????//顯示小數萬分位
?PORTA=0x1f;
?delay(1070);
}

//------------------------------------------------
//系統初始化函數
void?init()
{
??ADCON1=0X07;????????????????????????????????//設置A口為普通數字口
??TRISA=0X00;?????????????????????????????????//設置A口方向為輸出
??TRISD=0X00;?????????????????????????????????//設置D口方向為輸出
}

//-----------------------------------------------
//復位DS18B20函數
reset(void)
{
??char?presence=1;
??while(presence)
??{?
????DQ_LOW()?;????????????????????????????????//主機拉至低電平
????delay(270);??????????????????????????????//延時503us
????DQ_HIGH();????????????????????????????????//釋放總線等電阻拉高總線并保持15~60us
????delay(28);???????????????????????????????//延時70us
????if(DQ==1)?presence=1;?????????????????????//沒有接收到應答信號,繼續復位
????else?presence=0;??????????????????????????//接收到應答信號
????delay(260);???????????????????????

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

?????文件???????6416??2008-11-03?20:58??ds18b20\ds18b20.c

?????文件???????3205??2007-03-15?22:26??ds18b20\ds18b20.hex

????..AD...?????????0??2008-10-25?22:40??ds18b20

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

?????????????????9839????????????????????4


評論

共有 條評論