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

正文內(nèi)容

基于51單片機(jī)的開發(fā)板設(shè)計(jì)畢業(yè)論文-資料下載頁

2025-03-03 07:03本頁面

【導(dǎo)讀】編、高工作頻率、全新的加密算法等特點(diǎn)。本次任務(wù)將基于S51設(shè)計(jì)制造。第一周至第二周查找S51單片機(jī)資料,確定軟硬件設(shè)計(jì)總體方案。第三周至第五周使用Protel軟件,確定單片機(jī)外圍電路的各功能模塊硬件設(shè)計(jì)。第十三周至第十四周撰寫畢業(yè)論文,準(zhǔn)備答辯?!缎赂拍?1單片機(jī)C語言教程》;《新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)》;《51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講》;除每周定時(shí)具體指導(dǎo)外,學(xué)生有問題也可隨時(shí)聯(lián)系指導(dǎo)。如有特殊原因可是當(dāng)調(diào)整,否則按計(jì)劃執(zhí)行。片機(jī),本開發(fā)板選擇具有ISP在線編程功能的S51單片機(jī),該單片機(jī)不需要燒寫器,序盡快得到驗(yàn)證。信在自己查找資料認(rèn)真學(xué)習(xí)以及老師的指導(dǎo)下,能夠順利完成這次的任務(wù)。第九周日至第十二周利用Proteus進(jìn)行軟件仿真,對(duì)功能模塊進(jìn)行仿真驗(yàn)證,

  

【正文】 , Q1 的發(fā)射極與集電極導(dǎo)通,將發(fā)射極下拉為低電平,蜂鳴器兩端出現(xiàn)電位差,蜂鳴器發(fā)聲;當(dāng) 為低電平時(shí), Q1 不導(dǎo)通,蜂鳴器兩端沒有電流流過,蜂鳴 器不發(fā)聲。 總結(jié):對(duì)硬件的設(shè)計(jì)采用模塊化設(shè)計(jì)方法,采用的電路為典型應(yīng)用電路,資源配置合理,通過使用短路帽連接相應(yīng)的功能模塊,降低了功耗,減弱了器件之間的相互干擾,提高了系統(tǒng)穩(wěn)定性,硬件工作穩(wěn)定可靠。 S51開發(fā)板的設(shè)計(jì) 19 4 軟件部分 整體程序設(shè)計(jì) 軟件部分主要包括數(shù)碼管程序、鍵盤程序、 AD 程序、 DA 程序、 DS1302 時(shí)鐘程序、 DS18b20 溫度傳感器程序、串行通信程序、顯示程序和其他簡單模塊程序。 分模塊程序設(shè)計(jì) 依據(jù)開發(fā)板上硬件資源,進(jìn)行程序的開發(fā),在軟件的設(shè)計(jì)過程中,采用模塊化的 設(shè)計(jì)方法,依次分別為每個(gè)模塊設(shè)計(jì)軟件。下面分別介紹以上各個(gè)模塊的程序設(shè)計(jì)。 鍵盤模塊程序設(shè)計(jì) 矩陣式鍵盤的按鍵識(shí)別方法 為: 判斷鍵盤中有無鍵按下 : 將全部行線 KEY0KEY3 置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與 4 根行線相交叉的 4 個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置 : 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確 定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 矩陣式鍵盤的按鍵 編碼處理:將行線和列線依次進(jìn)行數(shù)值編碼,然后進(jìn)行一定規(guī)則的運(yùn)算,就是對(duì)鍵值的編碼。 鍵盤程序流程圖如圖 41 所示: S51開發(fā)板的設(shè)計(jì) 20 圖 41 鍵盤程序流程圖 鍵盤采用的是行掃描法確定鍵值,在程序中具體是這樣掃描鍵盤的:將鍵盤掃描碼送入 P2 口,先是使行線依次為低電平,順序?yàn)?KEY KEY KEYKEY4,在某一行線為低 電平的狀態(tài)下,讀取 P2 口的狀態(tài),將狀態(tài)值依次右移四位,這樣便將 KEY5KEY8 的狀態(tài)值移到了低四位,再將高四位狀態(tài)值置一,將處理后的狀態(tài)值與當(dāng)前的掃描碼比較,如果此時(shí)的狀態(tài)值與四個(gè)掃描碼中的一個(gè)相同,證明有鍵按下,此時(shí)保存掃描碼的數(shù)組下標(biāo)和與狀態(tài)值相等的掃描碼數(shù)組下標(biāo),并將兩個(gè)值按照鍵盤編碼值進(jìn)行某一規(guī)則的四則運(yùn)算后返回給主函數(shù)中的某一變量;如果在全部行線依次為低電平情況下的狀態(tài)值與四個(gè)掃描碼中沒有一個(gè)相同,證明沒有鍵按下,返回 1 到主函數(shù)。在主函數(shù)中調(diào)用鍵盤掃描函數(shù)對(duì)鍵盤進(jìn)行掃描,判斷返回鍵值,若返回值 不為 1,證明右鍵按下,在某一個(gè)數(shù)碼管上顯示鍵值,若返回值為 1,證明沒有鍵按下,顯示先前按下的按鍵鍵值。 AD 模塊程序設(shè)計(jì) a ADC0832 的工作時(shí)序 ADC0832 的工作時(shí)序圖如圖 42 所示: 開始 鍵盤掃描 有鍵按下 取鍵值 Y N 原有鍵值不變 鍵值送 P0口 選通數(shù)碼管 S51開發(fā)板的設(shè)計(jì) 21 圖 42 ADC0832 的工作時(shí)序圖 當(dāng) CS由高變低時(shí),選中 ADC0832。在時(shí)鐘的上升沿, D I端的數(shù)據(jù)移 ADC0832內(nèi)部的多路地址移位寄存器。在第一個(gè)時(shí)鐘期間 , D I為高,表示啟動(dòng)位,緊接著輸入兩位配置位。當(dāng)輸入啟動(dòng)位和配置位后,選通輸入模擬通道,轉(zhuǎn)換開始。轉(zhuǎn)換開始后,經(jīng)過一個(gè)時(shí)鐘周 期延遲,以使選定的通道穩(wěn)定。 ADC0832 接著在第 4個(gè)時(shí)鐘下降沿輸出轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸出時(shí)先輸出最高位 (D7~ D0);輸出完轉(zhuǎn)換結(jié)果后,又以最低位開始重新輸出一遍數(shù)據(jù) (D7~ D0),兩次發(fā)送的最低位共用。當(dāng)片選 CS為高時(shí),內(nèi)部所有寄存器清 0,輸出變?yōu)楦咦钁B(tài)。如果要再進(jìn)行一次模 /數(shù)轉(zhuǎn)換,片選 CS必須再次從高向低跳變,后面再輸入啟動(dòng)位和配置位。 b AD 程序流程圖 AD 程序流程圖如 43所示: 圖 43 AD 程序流程圖 開始 啟動(dòng) AD 轉(zhuǎn)換 輸入方式選擇 輸入通道選擇 讀取數(shù)據(jù) 數(shù)據(jù)處理與顯示 S51開發(fā)板的設(shè)計(jì) 22 依據(jù)操作時(shí)序?qū)?ADC0832編程 ,包括轉(zhuǎn)換啟動(dòng)和 AD值讀取函數(shù),在 AD轉(zhuǎn)換函數(shù)中可以選擇 ADC0832的轉(zhuǎn)換通道和輸入方式,即通道 0或通道 1,單通道輸入或差分輸入。在主函數(shù)中循環(huán)讀取某一通道的模擬電壓值,將采集到的數(shù)據(jù)由16進(jìn)制轉(zhuǎn)換為 ASCLL碼。并在液晶或數(shù)碼管上顯示出來。 DA 模塊程序設(shè)計(jì) a TLC5615 的 工作 時(shí)序 TLC5615 的 工作 時(shí)序如圖 44所示 : 圖 44 TLC5615 的時(shí)序圖 由時(shí)序圖可以看出,當(dāng)片選 CS為低電平時(shí),輸入數(shù)據(jù) DIN由時(shí)鐘 SCLK同步輸入或輸出,而且最高有效位在前,低有 效位在后。輸入時(shí) SCLK的上升沿把串行輸入數(shù)據(jù) DIN移入內(nèi)部的 16位移位寄存器, SCLK的下降沿輸出串行數(shù)據(jù)DOUT,片選 CS的上升沿把數(shù)據(jù)傳送至 DAC寄存器。當(dāng)片選 CS為高電平時(shí),串行輸入數(shù)據(jù) DIN不能由時(shí)鐘同步送入移位寄存器;輸出數(shù)據(jù) DOUT保持最近的數(shù)值不變而不進(jìn)入高阻狀態(tài)。由此要想串行輸入數(shù)據(jù)和輸出數(shù)據(jù)必須滿足兩個(gè)條件:第一時(shí)鐘 SCLK的有效跳變;第二片選 CS為低電平。這里,為了使時(shí)鐘的內(nèi)部饋通最小,當(dāng)片選 CS為高電平時(shí),輸入時(shí)鐘 SCLK應(yīng)當(dāng)為低電平。 串行數(shù)模轉(zhuǎn)換器 TLC5615的使用有兩種方式 ,即級(jí)聯(lián)方式和非級(jí)聯(lián)方式。如不使用級(jí)聯(lián)方式, DIN只需輸入 12位數(shù)據(jù)。 DIN輸入的 12位數(shù)據(jù)中,前 10位為TLC5615輸入的 D/A轉(zhuǎn)換數(shù)據(jù),且輸入時(shí)高位在前,低位在后,后兩位必須寫入數(shù)值為零的低于 LSB的位,因?yàn)?TLC5615的 DAC輸入鎖存器為 12位寬。如果使用TL5615的級(jí)聯(lián)功能,來自 DOUT的數(shù)據(jù)需要輸入 16位時(shí)鐘下降沿,因此完成一次數(shù)據(jù)輸入需要 16個(gè)時(shí)鐘周期,輸入的數(shù)據(jù)也應(yīng)為 16位。輸入的數(shù)據(jù)中,前 4位為高虛擬位,中間 10位為 D/A轉(zhuǎn)換數(shù)據(jù),最后 2位為低于 LSB的位即零。 b DA 程序流程圖 DA 程序流程圖如圖 45 所示 : S51開發(fā)板的設(shè)計(jì) 23 圖 45 DA程序流程圖 DS1302 時(shí)鐘模塊程序設(shè)計(jì) a DS1302 的工作 時(shí)序 DS1302 的復(fù)位特征和時(shí)鐘控制要求:復(fù)位 (~ RST) 輸入有兩種功能:首先,用于接通控制邏輯,允許地址 /命令序列送入移位寄存器;其次,用于終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送。當(dāng)為~ RST高電平時(shí) , 所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302 進(jìn)行操作。如果在傳送過程中~ RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,并且 I/ O 引 腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在 Vcc≥ ,~ RST必須保持低電平。另外,當(dāng)~ RST為高電平時(shí), SCLK必須為低電平。 DS1302 的數(shù)據(jù)輸入輸出: 向 DS1302 寫入數(shù)據(jù)時(shí),數(shù)據(jù)在控制字節(jié)輸入后的下一個(gè) SCLK周期的上升沿被寫入,多余的 SCLK將被忽略。數(shù)據(jù)寫入時(shí)從低位 (位 0) 開始;同樣,從 DS1302 讀取數(shù)據(jù)時(shí),數(shù)據(jù)在緊跟控制字節(jié)后的下一個(gè) SCLK的下降沿讀出,讀出數(shù)據(jù)時(shí)也是從低位 (0位 ) 到高位 (7位 ) ,只要~ RST 保持高電平,額外的 SCLK將導(dǎo)致數(shù)據(jù)字節(jié)的持續(xù)讀出,這個(gè)特性用于實(shí)現(xiàn)該 芯片的突發(fā)讀模式。數(shù)據(jù)讀寫時(shí)序如圖 46所示: 開始 TLC5615 片選使能 時(shí)鐘上升沿讀取數(shù)據(jù) 12位數(shù)據(jù)讀取完畢 TLC5615 片選禁能 Y N S51開發(fā)板的設(shè)計(jì) 24 圖 46 DS1302 的讀寫時(shí)序 突發(fā)模式下 , 可以一次性讀出所有日歷時(shí)鐘數(shù)據(jù)或 RAM數(shù)據(jù)。 b DS1302 的寄存器 DS1302 共有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān) , 存放的數(shù)據(jù)位為 BCD 碼格式。其日歷、時(shí)間寄存器及其控制字見表 41: 表 41 DS1302 的寄存器 寄存器名 命令字 取值范圍 各位內(nèi)容 寫操作 讀操作 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 0059 啟動(dòng) 十位 個(gè)位 分寄存器 82H 83H 0059 0 十位 個(gè)位 時(shí)寄存器 84H 85H 0012或 0023 12/24 0 10/AP 十位 個(gè)位 日寄存器 86H 87H 0128, 29, 30, 31 0 0 十位 個(gè)位 月寄存器 88H 89H 0112 0 0 0 十位 個(gè)位 周寄存器 8AH 8BH 0107 0 0 0 0 0 個(gè)位 年寄存器 8CH 8DH 0099 十位 個(gè)位 c DS1302 時(shí)鐘程序流程圖 DS1302 時(shí)鐘程序流程圖如圖 47 所示: S51開發(fā)板的設(shè)計(jì) 25 圖 47 DS1302 時(shí)鐘程序流程圖 在程序中定義了一個(gè)結(jié)構(gòu)體,用來存儲(chǔ)秒、分、時(shí)、星期、日、月、年信息,對(duì) DS1302 的寄存器地址進(jìn)行了聲明,方便在編程時(shí)使用,依據(jù) DS1302 讀寫單字節(jié)數(shù)據(jù)時(shí)序圖編寫實(shí)時(shí)時(shí)鐘讀寫一個(gè)字節(jié)的函數(shù),依據(jù) DS1302 讀寫數(shù)據(jù)時(shí)序圖編寫向 DS1302 某地址寫入數(shù)據(jù)和從 DS1302 某地址讀出數(shù)據(jù)的函數(shù),從DS1302 某地址讀出數(shù)據(jù)可以獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組中,這樣單片機(jī)就可以實(shí)時(shí)的從 DS1302 獲取時(shí)間了,向 DS1302 某地址寫入數(shù)據(jù)可以實(shí) 現(xiàn)單片機(jī)對(duì) DS1302 進(jìn)行時(shí)間的初始化和修改操作。 測溫模塊程序設(shè)計(jì) a DS18B20 的 工作時(shí)序 單總線在任何時(shí)刻只能有一個(gè)控制信號(hào)或數(shù)據(jù),數(shù)據(jù)要能在單片機(jī)和單總線芯片之間實(shí)現(xiàn)可靠的傳送,遵循單總線處理次序通信協(xié)議,確保數(shù)據(jù)有條不紊地傳送,單總線處理次序圖如圖 48所示: 開始 讀取 DS1302 的秒值 寫入允許 時(shí)鐘芯片關(guān)閉 N 寫入初始化時(shí)間 寫入禁止 獲取時(shí)鐘芯片的時(shí)間 時(shí)間、日期數(shù)據(jù)轉(zhuǎn)化為液晶字符顯示 Y S51開發(fā)板的設(shè)計(jì) 26 圖 48 單總線處理次序圖 處理次序操作時(shí),一般有以下 4 個(gè)過程: (1)初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道總線上有從機(jī)設(shè)備,且準(zhǔn) 備就緒。 (2)ROM 操作命令。在主機(jī)檢測到應(yīng)答信號(hào)后,主機(jī)可以發(fā)出 ROM 操作命令之一。所有的ROM 命令都是 8 位,而且這些命令與各個(gè)從機(jī)設(shè)備的唯一 64 位 ROM 代碼相關(guān),允許主機(jī)在單總線上連接多個(gè)從機(jī)設(shè)備時(shí),指定操作某個(gè)從機(jī)設(shè)備??砂l(fā)送的 ROM 命令有:讀 ROM,匹配 ROM,搜索 ROM,跳過 ROM,超 ROM,超速跳過 ROM,條件查找 ROM。 (3)RAM 操作命令。當(dāng)成功執(zhí)行上述某個(gè) ROM 操作命令后,總線可以發(fā)出一個(gè) RAM 命令來訪問和控制 RAM??砂l(fā)送的 RAM 命令有:寫暫存 RAM,讀暫存 RAM,復(fù)制 暫存 RAM,數(shù)據(jù)轉(zhuǎn)換,回讀 E2PROM,讀電源模式。 (4)數(shù)據(jù)交換。主機(jī)和從機(jī)之間進(jìn)行數(shù)據(jù)的傳輸,所有的數(shù)據(jù)都是從低位開始讀寫的。 所有的單總線器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號(hào):復(fù)位脈沖、應(yīng)答脈沖、寫 0、寫 讀 0 和讀 1。這些信號(hào)當(dāng)中,除了應(yīng)答信號(hào)是由從機(jī)發(fā)給主機(jī)的以外,其他的信號(hào)都是由主機(jī)發(fā)出同步信號(hào),并且發(fā)送所有的命令和數(shù)據(jù)都是從字節(jié)的低位開始的。 單總線上的所有通信都是以初始化時(shí)序開始,包括主機(jī)發(fā)出的復(fù)位脈沖及從機(jī)的應(yīng)答脈沖,初始化時(shí)序如圖 49 所示: 圖 49 初始化時(shí)序 當(dāng)主機(jī)把數(shù)據(jù)從邏輯高電平拉到邏輯低電平時(shí),寫時(shí)序開始,寫 “1”和 “0”, 寫時(shí)序 如圖 410 所示: S51開發(fā)板的設(shè)計(jì) 27 圖 410 寫時(shí)序 圖 411 讀時(shí)序 b 測溫程序流程圖 測溫程序流程圖如圖 412 所示: S51開發(fā)板的設(shè)計(jì) 28 圖 412 DS18b20 溫度傳感器程序流程圖 根據(jù)初始化時(shí)序?qū)?DS18B20 進(jìn)行初始化,根據(jù)讀寫時(shí)序?qū)?DS18B20 進(jìn)行讀寫編程,另外,在循環(huán)讀取溫度數(shù)據(jù)后,要將讀取的溫度數(shù)據(jù)轉(zhuǎn)換為可以在液晶上顯示的液晶字符。 串行通信模塊程序設(shè)計(jì) a RS232 通信 模塊 程序設(shè)計(jì) 單片機(jī)通過 MAX232 與 PC 機(jī)通訊程序流程圖 413 所示: 開始 DS18B20初始化 跳過讀序列號(hào)操作 啟動(dòng)溫度轉(zhuǎn)換 延時(shí) DS18B20初始化 跳過讀序列號(hào)操作 讀取溫度寄存器值 延時(shí) 讀取溫度值低位 讀取溫度值高位 相加的溫度值 溫度值轉(zhuǎn)化為液晶字符 S51開發(fā)板的設(shè)計(jì) 29 413 單片機(jī)通過 MAX232 與 PC 機(jī)通訊程序流程圖 在 PC 機(jī)串口調(diào)試助手的發(fā)送窗口發(fā)送數(shù)據(jù)到單片機(jī)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1