新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ds18b20溫度帶上限程序--LCD1602液晶顯示

        基于ds18b20溫度帶上限程序--LCD1602液晶顯示

        作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
        這是用1602來顯示的,程序是修改前面幾個實驗的,當溫度<40度時電風扇不轉,當>=40度時電風扇轉動,為參加電子比賽做的單片機系統(tǒng)實驗。程序為匯編語言(ASM),帶詳細注釋,值得新手朋友參考!
        全部程序:ORG 0000H;單片機內存分配申明!TEMPER_L EQU 29H;用于保存讀出溫度的低8位TEMPER_H EQU 28H;用于保存讀出溫度的高8位FLAG1       EQU 38H;是否檢測到DS18B20標志位a_bit       equ 20h ;數(shù)碼管個位數(shù)存放內存位置b_bit       equ 21h ;數(shù)碼管十位數(shù)存放內存位置RS EQU P3.7;確定具體硬件的連接方式RW EQU P3.6 ;確定具體硬件的連接方式E EQU P3.5 ;確定具體硬件的連接方式;主程序MAIN:LCALL GET_TEMPER;調用讀溫度子程序MOV A,29HMOV C,40H;將28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,Aclr csetb p3.0;zhelikais從這里開始是我填加的溫度控制CJNE A,#28H,FITSETB P3.0AJMP DISLEDFIT:CPL CMOV P3.0,C;jiesu到這里結束DISLED:LCALL DISPLAY;調用數(shù)碼管顯示子程序AJMP MAIN;DS18B20復位初始化子程序INIT_1820:SETB P2.2NOPCLR P2.2;主機發(fā)出延時537微秒的復位低脈沖MOV R1,#3TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P2.2;然后拉高數(shù)據(jù)線NOPNOPNOPMOV R0,#25HTSR2:JNB P2.2,TSR3;等待DS18B20回應DJNZ R0,TSR2LJMP TSR4 ; 延時TSR3:SETB FLAG1 ; 置標志位,表示DS1820存在CLR P1.7;檢查到DS18B20就點亮P1.7LED,與傳感器通信成功LJMP TSR5TSR4:CLR FLAG1 ; 清標志位,表示DS1820不存在CLR P1.1;未檢查到DS18B20就點亮P1.1LED,與傳感器通信失敗LJMP TSR7TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ; 時序要求延時一段時間TSR7:SETB P2.2RET;讀出轉換后的溫度值的子程序GET_TEMPER:SETB P2.2LCALL INIT_1820;先復位DS18B20JB FLAG1,TSS2CLR P1.2RET ; 判斷DS1820是否存在?若DS18B20不存在則返回TSS2:CLR P1.3;DS18B20已經被檢測到!MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#44H ; 發(fā)出溫度轉換命令LCALL WRITE_1820LCALL DISPLAY;這里通過調用顯示子程序實現(xiàn)延時一段時間,等待AD轉換結束,12位的話750微秒LCALL INIT_1820;準備讀溫度前先復位MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200; 將讀出的溫度數(shù)據(jù)保存到35H/36HCLR P1.4RET				   
        				
                    
                        
        			
        							
        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 庐江县| 漳州市| 浦县| 蒙山县| 马关县| 孟连| 即墨市| 宜兰市| 桐城市| 宿迁市| 三原县| 曲沃县| 蒙阴县| 沧源| 中阳县| 惠安县| 轮台县| 龙胜| 平谷区| 星座| 吉林省| 阳江市| 东莞市| 桓台县| 平舆县| 西平县| 黄浦区| 布尔津县| 隆子县| 潼南县| 永定县| 额敏县| 望谟县| 丹东市| 叶城县| 锡林浩特市| 望都县| 尤溪县| 攀枝花市| 通州区| 舟山市|