freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stc89c52單片機的智能紅外遙控系統(tǒng)畢業(yè)論(編輯修改稿)

2025-07-08 22:36 本頁面
 

【文章內(nèi)容簡介】 泰山學院本科畢業(yè)論文(設計) 9 DS1302 時鐘芯片介紹 DS1302 引腳及內(nèi)部寄存器簡介 DS1302 是美國 達拉斯 公司推出的一款功耗低功能全的實時 時鐘芯片, RTC寄存器可提供年、月、日、時、分、秒、及周的時間值,另有 31字節(jié)靜態(tài) RAM,采用串行三線接口與單片機進行通信,突發(fā)方式下,可以一次性傳送多個字節(jié)的數(shù)據(jù)或時鐘信號。工作電壓寬度 ~ 5V ,用來保持片內(nèi)數(shù)據(jù)時功率控制在 1毫瓦內(nèi)。具有備用電源引腳,也可以通過寄存器設置備用電源充電方式。 DS1302 的引腳如圖 8 所示: 圖 8 DS1302 引腳圖 其中 X X2外接 晶振; GND 接地; CE信號使能端,數(shù)據(jù)傳輸時必須保持高電平,; I/O 數(shù)據(jù)輸入 /輸出引腳; SCLK 串行時鐘, Vcc1,Vcc2 電源供電管腳。 DS1302 關(guān)于時間 和日期的寄存器如圖 9所示,共有 12個,編程時注意讀和寫的地址有所不同。 泰山學院本科畢業(yè)論文(設計) 10 圖 9 DS1302RTC 寄存器 DS1302 控制字,如表 22所示: 1 RAM/ A4 A3 A2 A1 A0 RD/WR 表 22 DS1302 控制字 控制字從低位開始輸出,在下一個時鐘上升沿,寫入數(shù)據(jù),而在指令后的下一個時鐘下降沿,讀出數(shù)據(jù)。 DS1302 讀寫時序 DS1302 讀寫時序如圖 10 所示: 圖 10 DS1302 讀寫時序 CE高電平開啟數(shù)據(jù)傳送功能,數(shù)據(jù)傳輸時 ,數(shù)據(jù)在時鐘上升沿輸入,時鐘下降沿輸出。 泰山學院本科畢業(yè)論文(設計) 11 HS0038 紅外一體接收器介紹 HS0038 特點介紹 紅外通信有紅外發(fā)射裝置和接收裝置組成,本項目紅外發(fā)射裝置為載波 38KHz的普通紅外遙控器。 HS0038 能夠接受紅外信號,并能對信號放大,檢波,整形輸出單片機可以識別的 TTL 電平。單片機經(jīng)過一定的算法把接收到的數(shù)據(jù)進行解碼。便可以得到遙控器鍵值。應當注意 HS0038 輸出的數(shù)據(jù)正好和發(fā)射端的電平反向。 HS0038 電路及應用 HS0038 引腳及封裝如圖 11所示: 圖 11 HS0038 實物圖 從左到右,引腳依次是 : I/O 數(shù)據(jù)端口、 GND 接地、 VCC 接 +5V 電源。 HS0038 在單片機系統(tǒng)中常用的電路如圖 12 所示 圖 12 HS0038 應用電路圖 泰山學院本科畢業(yè)論文(設計) 12 LCD12864 液晶介紹 LCD12864 性能概述及引腳功能 本項目采用帶漢字字 庫的液晶模塊,內(nèi)置 8192 個漢字 128 個字符還具有64*256 的 GDRAM 可以用來繪制圖形。液 晶正常工作的點壓寬度為 ~5V,顯示分辨率為 128 64。 應用中可以通過寫入命令字來實現(xiàn)多種功能,如:開關(guān)光標,反白顯示,屏幕移位,睡眠 模式等 。 LCD12864 具有 20 個引腳功能如 表 2所示: 表 2 LCD12864 引腳功能圖 該液晶 20 個引腳與單片機的連接如圖 13所示。 圖 13 LCD12864 與單片機連接圖 泰山學院本科畢業(yè)論文(設計) 13 由于本項目采用 8位并行數(shù)據(jù)傳輸方式,故其第 15 引腳 PSB 直接接高電平即可。 LCD12864 讀寫時序及用戶指令集 對 LCD12864 液晶的操作不外乎通過單片機不斷進行讀寫,單片機寫數(shù)據(jù)到液晶模塊的時序圖如圖 14 所示 圖 14 單片機寫數(shù)據(jù)到液晶模塊 單片機讀取液晶模塊數(shù)據(jù)的時序圖如圖 15 所示。 圖 15 單片機讀取液晶模塊數(shù)據(jù) 由圖 215 可知寫數(shù)據(jù)或命令的操作 大致如下, RS為高時寫數(shù)據(jù) RS 為低時寫指令; RW 引腳為低電平進行寫操作; E引腳設置為高允許數(shù)據(jù)傳送,接著便把所傳數(shù)據(jù)放于數(shù)據(jù)引腳, E 引腳再次拉低變完成了寫操作。 LCD12864 有兩種指令集,基本指令集( RE=0)和擴充指令集( RE=1),寫指令泰山學院本科畢業(yè)論文(設計) 14 時 RS=0,RW=0。通過正確的時序?qū)懼噶羁梢栽O置 LCD12864 的很多功能,如寫入 0x01指令即可清屏并把 DDRAM 地址計數(shù)器調(diào)整為“ 00H” ,再如寫入指令“ 0xc”即可打開顯示關(guān)閉游標。 其他硬件電路 STC89C52RC 最小系統(tǒng)的設計 本項目的單片機最小系統(tǒng)主 要包括, STC89C52 單片機, 12M外接晶振,上電復位電路三個部分。 最小系統(tǒng)晶振電路如圖 16所示。 圖 16 晶振電路 晶振兩個引腳分別接與單片機的 XTAL0 和 XTAL1 引腳,電容值的選擇范圍為5~30PF,電容對晶振頻率具有微調(diào)作用。 最小系統(tǒng)復位電路如圖 17所示。 圖 17 上電復位電路 單片機復位電路的設計必須能滿足上電震蕩穩(wěn)定后,保持至少兩個周期的高電平。本最小系統(tǒng)采用 10uf 的電容,經(jīng)驗證完全滿足要求。由于本電路上電即可以使單片機復位,又具有電源開關(guān),故省去了按鍵復位開關(guān)。 泰山學院本科畢業(yè)論文(設計) 15 另外, 由于本項目采用單片機內(nèi)部存儲器存儲程序,故單片機的第 31引腳( EA)接高電平,用來訪問片內(nèi)程序。 系統(tǒng)電源電路的設計 由于所選用單片 機為 5V 單片機,為得到較穩(wěn)定的 5V 電壓,本項目采用了L7805cv 三端集成穩(wěn)壓管。輸出電壓 ,最大輸入電壓 35v,壓差 35v時工作在理想狀態(tài)。輸出電 流可達 (需做好散熱),同時 L7805cv 內(nèi)部含有限流保護電路和過熱保護電路,防止負載過大溫度過高燒壞器件。本項目中 L7805cv的應用電路如圖 18 所示。 圖 18 L7805cv 穩(wěn)壓電路圖 第 4章 軟 件開發(fā)平臺及軟件 開發(fā)環(huán)境介紹及程序總體結(jié)構(gòu) 開發(fā)環(huán)境介紹 本項目采用 KEIL C51 集成開 發(fā)環(huán)境,它具有有好的界面,使用極為方便。支持匯編語言, C 語言及其混合編程,能夠兼容絕大多數(shù) 51 系列單片機的程序設計和仿真。 程序總體結(jié)構(gòu) 由于整個系統(tǒng)涉及到的外設模塊較多, 故采用了多文件模塊化編程,這樣大泰山學院本科畢業(yè)論文(設計) 16 大提高了程序的可讀性,也為以后可能遇到的程序移植和升級提供了方便。整個項目的程序結(jié)構(gòu)如圖 19 所示。 圖 19 程序結(jié)構(gòu)圖 其中, 是項目主函數(shù)包含了各種外設的初始化及其功能函數(shù)的調(diào)用,、 、 、 分別為溫度傳感器、紅外接收器、時鐘芯片和液晶的驅(qū)動程序, 是用來定時、定溫的功能模塊。 DS18B20 溫度程序模塊 DS18B20 操作流程 DS18B20 操作流程如圖 20 所示。 泰山學院本科畢業(yè)論文(設計) 17 圖 20 DS18B20 操作流程 DS18B20 部分程序代碼 /**********************************************************? *DS18B20 初始化 **********************************************************/ void DS18B20_Init() { 初始化 復位、發(fā)跳過 ROM 命令 發(fā)溫度轉(zhuǎn)換命令、等待 發(fā)讀取溫度命令 復位、發(fā)跳過 ROM 命令 調(diào)用顯示函數(shù) 存儲并轉(zhuǎn)化數(shù)據(jù) 泰山學院本科畢業(yè)論文(設計) 18 DS1820_RSET()。 DS1820_WData(0xCC)。 //跳過 ROM DS1820_WData(0x4E)。 //寫暫存器 DS1820_RSET()。 } /********************************************************** *DS1820 復位 **********************************************************/ bit DS1820_RSET() { uchar i。 bit flag。 DS1820_bit=0。 for(i=230。i0。i)。 //延時 480 微秒 ,產(chǎn)生復位脈沖 DS1820_bit=1。 //釋放總線 for(i=40。i0。i)。 //延時 80微秒 flag=DS1820_bit。 //得到引腳 電平 for(i=200。i0。i)。 //延時 400 微秒等待總線恢復 return (flag)。 //如有需要測試 flag==0,則器件正常 } /********************************************************** *寫數(shù)據(jù)到 DS1820 **********************************************************/ void DS1820_WData(uchar wData) { uchar i,j。 for(i=8。i0。i) { DS1820_bit=0。 //低電平,產(chǎn)生寫信號 for(j=2。j0。j)。 //延時 DS1820_bit=wDataamp。0x01。 //發(fā)送 1位 for(j=30。j0。j)。 //延時 DS1820_bit=1。 //釋放總線 wData=1。 //右移一位寫下一位 } } /********************************************************** *從 DS1820 中讀出數(shù)據(jù) **********************************************************/ 泰山學院本科畢業(yè)論文(設計) 19 uchar DS1820_RData() { uchar i,j,Tmep。 for(i=8。i0。i) { Tmep=1。 DS1820_bit=0。 //低電平 ,產(chǎn)生讀信號 for(j=2。j0。j)。 //延時 4us DS1820_bit=1。 //釋放總線 ,準備讀數(shù)據(jù) for(j=4。j0。j)。 //延時 if(DS1820_bit==1) {Tmep|=0x80。} for(j=30。j0。j)。 //延時 DS1820_bit=1。 //拉高數(shù)據(jù)線,準備讀下一位 } return(Tmep)。 //返回數(shù)據(jù) } /********************************************************** /*得到溫度值 **********************************************************/ void get_Wendu_data() { uchar temp_data_2。 uint TempDec。 //用來存放小數(shù)位 uchar i。 DS1820_RSET()。 //復位 DS1820_WData(0xcc)。 //跳過 ROM 命令 DS1820_WData(0x44)。 //溫度轉(zhuǎn)換命令 DS1820_RSET()。 //復位, 每次得到溫度值都要復位 DS1820_WData(0xcc)。 //跳過 ROM 命令 for(i=0。i2。i++) { Wendu_data[i]=DS1820_RData()。 //讀共 12位,分別存于兩個字節(jié) } DS1820_RSET()。 //復位 ,結(jié)束時也要復位 temp_data=Wendu_data[1]。 temp_dataamp。=0xf0。 //取高 4 位 if(temp_data==0xf0) //判斷是正溫度還是負溫度讀數(shù) { //負溫度求補 ,取反加 1,判斷低 8位是否有進位 if(Wendu_data[0]==0) 泰山學院本科畢業(yè)論文(設計) 20 {
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1