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

正文內(nèi)容

基于單片機(jī)的公交車自動報站器畢業(yè)論文-資料下載頁

2025-08-13 14:58本頁面

【導(dǎo)讀】題目基于單片機(jī)的公交車自動報站器的設(shè)計。專業(yè)電氣工程與自動化。二O一二年六月三日

  

【正文】 光標(biāo)右移 1格,且 AC值加 1 1 0 顯示器上字符全部左移一格,但光標(biāo)不動 1 1 顯示器上字符全部右移一格,但光標(biāo)不動 表 7 功能設(shè)定指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 功能設(shè)置 0 0 0 0 0 1 DL N F X X 40 功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: DL 0=數(shù)據(jù)總線為 4位 1=數(shù)據(jù)總線為8位 N 0=顯示 1行 1=顯示 2行 F 0=5 7 點(diǎn)陣 /每字符 1=5 10點(diǎn)陣 /每字符 表 8 設(shè)定 CGRAM地址指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 設(shè)置 CGRAM地址 0 0 0 1 CGRAM地址( 6位) 40 功能:設(shè)定下一個要存入數(shù)據(jù)的 CGRAM的地址。 表 9 設(shè)定 DDRAM地址指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 設(shè)置 DDRAM地址 0 0 1 CGRAM地址( 6位) 40 功能:設(shè)定下一個要存入數(shù)據(jù)的 CGRAM的地址。 (注意這里我們送地址的時候應(yīng)該 0x80+Address,這也是前面說到寫地址命令的時候要加上 0x80的原因 ) 。 表 10 讀取忙信號或 AC地址指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 21 設(shè)置 DDRAM地址 0 0 1 CGRAM地址( 7位) 40 功能: 讀取忙碌信號 BF 的內(nèi)容, BF=1 表示液晶顯示器忙,暫時無法接收單片機(jī)送來的數(shù)據(jù)或指令 。 當(dāng)BF=0時,液晶顯示器可以接收單片機(jī)送來的數(shù)據(jù)或指令 。 表 11 數(shù)據(jù)寫入 DDRAM或 CGRAM指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 數(shù)據(jù)寫入DDRAM或CGRAM指令 1 0 要寫入的數(shù)據(jù) D7~ D0 40 功能: 1 將字符碼寫入 DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符 。 2 將用戶自己設(shè)計的圖形存入 CGRAM。 表 12 從 CGRAM或 DDRAM讀出數(shù)據(jù)的指令 指令功能 指令編碼 執(zhí)行時間 /us RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB2 DB1 DB0 從 CGRAM或DDRAM讀出數(shù)據(jù) 1 1 要讀出的數(shù)據(jù) D7~ D0 40 功能:讀取 DDRAM或 CGRAM中的內(nèi)容。 LCD1602與單片機(jī)的接線圖 LCD1602液晶顯示模塊可以和單片機(jī) STC89C52直接接口, DB0~DB7與單片機(jī)的 ~ 連接以便數(shù)據(jù)的傳送與接收, 4 管腳、 5 管腳、 6 管腳分別與 STC89C51單片機(jī)的 口、 、 口連接,電路如圖 : 圖 與單片機(jī)的連接圖 22 鍵盤接口 鍵盤是一組按鍵的組合,是單片機(jī)應(yīng)用系統(tǒng)中不可缺少的輸入設(shè)備。根據(jù)鍵盤的識別方法分類,有編碼鍵盤和非編碼鍵盤兩種。通過硬件識別的鍵盤稱為編碼鍵盤;通過軟件識別的鍵盤稱為非編碼鍵盤。全編碼鍵盤能夠由硬件邏輯自動提供與鍵對應(yīng)的編碼,此外,一般還具有去抖和多鍵、竄鍵保護(hù)電路。這種鍵盤使用方便,但需要較多的硬件,價格較貴,一般的單片機(jī)應(yīng) 用系統(tǒng)較少采用 [6]。非編碼鍵盤只簡單地提供行和列的矩陣,其他工作均由軟件完成。由于其經(jīng)濟(jì)實(shí)用,廣泛應(yīng)用于單片機(jī)的系統(tǒng)中。 按鍵電路的選擇 在由單片機(jī)組成的測控系統(tǒng)及智能化儀器中,用得最多的是獨(dú)立式鍵盤。獨(dú)立式按鍵是指直接用 I/O口線構(gòu)成的單個按鍵電路。每個獨(dú)立式按鍵單獨(dú)占有一根 I/O口線,每個 I/O口線的工作狀態(tài)不會影響其他 I/O口線的工作狀態(tài)。獨(dú)立式按鍵電路如圖 ,當(dāng)按鍵的數(shù)量較多時, I/O口線浪費(fèi)較大,故只在按鍵數(shù)量不多時才采用這種按鍵電路。根據(jù)實(shí)際經(jīng)驗(yàn),當(dāng)按鍵數(shù)量為 4到 8個,并 且 I/O資源較為富余時,采用獨(dú)立式按鍵比較合適。由于本設(shè)計中的按鍵只有三個,考慮系統(tǒng)可靠性和鍵盤設(shè)計的簡單所以采用獨(dú)立式按鍵。對于此設(shè)計來說我們要準(zhǔn)確的顯示我們所要對應(yīng)的信息,每按下一次按鍵要顯示所要顯示的信息 [14]。這按鍵是主要用來報站的而設(shè)計的。這樣比鍵盤操作方便,也比較實(shí)惠。按鍵電路采用中斷模式。當(dāng)有按鍵按下時,系統(tǒng)產(chǎn)生中斷, CPU響應(yīng)中斷后,開始計數(shù),即查詢鍵號,通過軟件來實(shí)現(xiàn)該鍵號所對應(yīng)鍵的功能鍵盤的大體設(shè)置為:第一個鍵為報站控制鍵 S1用來控制站臺“ +”例如:第一站為濱江站,按下 S1時顯示第二站 :中苑站,其余的站臺工作原理也一樣。 S2用來控制站臺的“ ”,第二站為中苑站,在按下 S2時這樣就顯示中苑站。 圖 獨(dú)立式按鍵硬件結(jié)構(gòu) 鍵的閉合與否反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示斷開,那么低電平則表示閉合,通過電平的高低狀態(tài)的檢測可確認(rèn)鍵按下與否。 為了確保 CPU對一次按鍵動作只確認(rèn)一次,并且防止干擾信號的影響,必需加入消除電平抖動的措施,下圖 。消除抖動通常有硬、軟硬兩種方法,硬件消除抖動可采取雙穩(wěn)態(tài)電路或?yàn)V波消抖電路;軟 件消抖是在第一次檢測到有鍵按下時,執(zhí)行一段延時程序再確認(rèn)該鍵是否仍閉合,如果還是閉合狀態(tài)則確認(rèn)該鍵按下,從而消除抖動和干擾影響。當(dāng)按鍵較多時,我們多采用硬件件消抖法。 23 圖 按鍵閉合及斷開前后的電壓 按鍵接口設(shè)計有兩種方法,獨(dú)立式按鍵和矩陣式鍵盤。獨(dú)立式按鍵各鍵相獨(dú)立,每個按鍵各接入一根輸入線,只要檢測輸入線的電平就可以識別按鍵狀態(tài)。這種方法電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵需占用一根輸入口。由于該設(shè)計方案 IO資源浪費(fèi)大。故此方法只適用于按鍵少或其他控制功能很簡單的場合。矩陣鍵盤適用于按鍵數(shù)量 較多的場合,它把鍵盤輸入線分為行線和列線,按鍵位于列的交叉點(diǎn)上。按鍵的識別需要軟件分別掃描行線和列線,根據(jù)掃描的結(jié)果判具體按下的按鍵 [14]。 主流程圖的設(shè)計 開機(jī)時 LCD1602液晶顯示屏顯示“實(shí)時時間、實(shí)時日歷”等信息。調(diào)用系統(tǒng)初始化程序,調(diào)用鍵盤子程序,調(diào)用讀時間芯片時間子程序,調(diào)用時鐘芯片初始化 /改寫程序,調(diào)用顯示時間日期子程序。程序開始執(zhí)行,首先系統(tǒng)初始化: LCD初始化, DS1302初始化。然后進(jìn)入死循環(huán):一直顯示時間、當(dāng)日日期,掃描按鍵,當(dāng)按鍵 2按下時, LCD顯示此站 及下一站,語音播報此站及下一站;當(dāng)按鍵 3按下時, LCD顯示此站及上一站,語音播報此站及上一站。 開始 Y 鍵 1按下? N Y 鍵 2( +)按下? N Y 系統(tǒng)初始化 While( 1) 顯示時間 液晶顯 示清屏 液晶顯示此站及下一站 液晶顯示此站及上一站 語音播報此站及下一站 語音播報此站及上一站 24 鍵 3( )按下? N 圖 主程序流程圖 液晶顯示程序的設(shè)計 LCD液晶顯示是通過調(diào)用初始化程序, 寫數(shù)據(jù)子程序,寫指令子程序,地址轉(zhuǎn)換子程序,讀忙狀態(tài)子程序以及延時子程序組合。程序流程圖如圖 。 圖 寫數(shù)據(jù)子程序流程圖 圖 寫指令子程序流程圖 LCD液晶顯示是通過調(diào)用初始化程序,寫數(shù)據(jù)子程序,寫指令子程序,地址轉(zhuǎn)換子程序,讀忙狀態(tài)子程序以及延時子程序組合。首先調(diào)用延時子程序,然后調(diào)用 LCD寫指令子程序、清屏、 LCD寫指令子程序、調(diào)用延時子程序、設(shè)定方向及位移、 LCD寫指令子程序、調(diào)用延時子程序、調(diào)用忙子程序、啟動寫數(shù)據(jù)、讀寫線置 0、啟動使能控制線、傳輸數(shù)據(jù)、調(diào)用延時子程序、返回。 LCD1602 的初始化與顯示的部分程序如下 [16]: void init() //初始化 LCD1602 { write_mand(0x01)。 //清除屏幕 write_mand(0x38)。 //功能設(shè)定( 8 位, 2 行, 5*7 點(diǎn)矩陣) write_mand(0x0C)。 //顯示器 ON,光標(biāo) OFF,閃爍 OFF write_mand(0x06)。 //加 1 } void display1602() //LCD1602 顯示程序 { 調(diào)用延時子程序 LCD 寫指令子程序 返回 清屏 LCD 寫指令子程序 設(shè)定方向及位移 調(diào)用延時子程序 LCD 寫指令子程序 調(diào)用延時子程序 調(diào)用延時子程序 傳輸數(shù)據(jù) 啟 動 使能控制線 啟動使能控制線 讀寫線置 0 啟動 寫數(shù)據(jù) 調(diào)用忙子程序 返回 25 uchar i。 write_mand(0x80)。 //LCD 第一行地址 for(i=0。i16。i++) { write_data(display[i])。 //顯示第一行 } write_mand(0xC0)。 //LCD 第二行地址 for(i=0。i8。i++) { write_data(xiaohui[i])。 //顯示第二行 } } DS1302 時鐘程序的設(shè)計 將時間值寫到 DS1302 時鐘芯片上,其用于調(diào)整更準(zhǔn)確的時間,程序流程圖如圖 所示,其中內(nèi)部定時器為調(diào)整時間和日期。 Y N 時鐘電平是否完成? 圖 時間寫入時鐘芯片流程圖 將時間值寫到 DS1302 時鐘芯片上,其用調(diào)整更新準(zhǔn)確時間。其中內(nèi)部定時器為調(diào)整時間和日期。首先調(diào)用新屏幕顯示單元的內(nèi)容程序,然后調(diào)用調(diào)整子程序、讀時間子程序、寫初始 /修改日期子程序、寫一個字節(jié)時鐘芯片子程序、讀一個字節(jié)時鐘芯片子程序、顯示時間日期子程序。 DS1302 的部分主 要程序如下 [16]: write1302(0x8E,0x00)。 //允許寫 DS1302 while(1) { month=read1302(0x89)。 //讀出月寄存器 display[1]=lookdis[monthamp。0x0F]。 //月分離,并找相應(yīng)的 ASCALL 碼值 month=month4。 display[0]=lookdis[monthamp。0x0F]。 day=read1302(0x87)。 //讀出日寄存器 display[4]=lookdis[dayamp。0x0F]。 //日分離,并找相應(yīng)的 ASCALL 碼值 day=day4。 開始 初始化 DS1302 返回 設(shè)置三端口狀態(tài) 讀 /寫 8位數(shù)據(jù) Return( 0) 26 display[3]=lookdis[dayamp。0x0F]。 hour=read1302(0x85)。 //讀出小時寄存器 display[9]=lookdis[houramp。0x0F]。 //小時分離,并找相應(yīng)的 ASCALL 碼值 hour=hour4。 display[8]=lookdis[houramp。0x0F]。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1