版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 廣西工學院 基于單片機的多功能led點陣設計目 錄摘要2abstract31引言411背景介紹42方案論證52.1 顯示部分52.2數(shù)字時鐘52.3溫度采集部分62.4 芯片的選擇62.5 鬧鈴方式的選擇62.6止鬧方式的選擇62.7串口通訊芯片的選擇72.8 電源模塊73 總體方案83.2 總體設計84、系統(tǒng)硬件設計94.1 at89s52單片機最小系統(tǒng)94.2 溫度測量模塊94.3 時鐘模塊104.4 鍵盤模塊114.5 led顯示模塊114.6電源選擇:124.7 pc機通訊134.8整體電路135、系統(tǒng)軟件設計145.1主程序145.2顯示子程序流程155.3 顯示時間子程序流程15
2、5.5 led亮度調節(jié)175.6溫度測量流程圖176、測試及其結果分析196.1 基本部分測試與分析196.1.1試儀器:196.1.2基本要求部分的測試與分析:196. 2 發(fā)揮部分測試與分析:196.3 創(chuàng)新部分測試與分析197、設計總結208、參考資料219、致謝22附錄23附錄:原理圖和pcb圖37摘要 led點陣顯示屏作為一種新興的顯示器件,是由多個獨立的led發(fā)光二極管封裝而成. led點陣顯示屏可以顯示數(shù)字或符號, 通常用來顯示時間、速度、系統(tǒng)狀態(tài)等。文章給出了一種基于avr單片機的1632 點陣led顯示屏的設計方案。包括系統(tǒng)具體的硬件設計方案,軟件流程圖和部分匯編語言程序等方
3、面。在負載范圍內(nèi), 只需通過簡單的級聯(lián)就可以對顯示屏進行擴展,是一種成本低廉的圖文顯示方案。此外,擴展單片機外圍接口、溫度采集、非接觸式止鬧、滾動屏幕顯示、語音報時等功能。本系統(tǒng)大部分功能由軟件來實現(xiàn),吸收了硬件軟件化的思想,大部分功能通過軟件來實現(xiàn),使電路簡單明了,系統(tǒng)穩(wěn)定性大大提高。本系統(tǒng)不僅成功的實現(xiàn)了要求的基本功能,發(fā)揮部分也得到完全的實現(xiàn),而且有一定的創(chuàng)新功能。 關鍵字:avr單片機、 led大屏幕 、 滾屏顯示 abstract as a popular display device component, led dot-matrix display board consists
4、of several independent led (light emitting diode). the led dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. this paper introduces a kind of simple 1616 led display screen design process based on mcs-51 single chip minicompu
5、ter . the detail hardware scheme, software flow and assemble language programmer design and so on is followed. the display part can be cascaded to meet the need. the practice proves the design is low-cost and effective. in addition, the expansion peripheral interface microcontroller, temperature col
6、lection, non-contact only trouble, scroll the screen display, voice timekeeping functions. most of the functionality of the system by the software to achieve, has absorbed the idea of hardware and software, most of the functions realized by software to make the circuit simple, significantly improvin
7、g system stability. the system not only achieved the success of the basic functions required to play some also be fully realized, and has some innovative features. key words: avr microcontroller,led,mcu1引言 led顯示屏顯示畫面色彩鮮艷,立體感強,靜如油畫,動如電影,廣泛應用于車站、碼頭、機場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。在實際應用中的顯示屏
8、由于成本和可靠性的因素常采用一種稱為動態(tài)掃描的顯示方法。本文設計的是一個室內(nèi)用816的點陣led圖文顯示屏,圖形或文字顯示有靜止、移入移出等顯示方式。11背景介紹led 就是light emitting diode(發(fā)光二極管)的縮寫。在某些半導體材料的pn結中,注入的少數(shù)載流子與多數(shù)載流子復合時會把多余的能量以光的形式釋放出來,從而把電能直接轉換為光能。pn結加反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利用注入式電致發(fā)光原理制作的二極管叫發(fā)光二極管,通稱led。發(fā)光二極管是由p 型和n 型半導體組成的二極管。在led 的p - n 結附近,n 型材料中多數(shù)載流子是電子,p 型材料中多數(shù)載流
9、子是空穴。p -n 結上未加電壓時構成一定的勢壘,當加正向偏壓時,在外電場作用下,p 區(qū)的空穴和n 區(qū)的電子就向對方擴散運動,構成少數(shù)載流子的注入,從而在p - n結附近產(chǎn)生導帶電子和價帶空穴的復合,同時釋放出相對應的能量h(h 為普朗克常數(shù),為光子頻率)而發(fā)光。該能量相當于半導體材料的帶隙能量eg(ev) ,其與發(fā)光波長(nm) 的關系為= 1239. 6peg。led顯示屏是一種通過控制半導體發(fā)光二極管的顯示方式,用來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。led顯示屏分為圖文顯示屏和視頻顯示屏,均由led矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本
10、和圖形;視頻顯示屏采用微型計算機進行控制,圖文、圖像并茂,以實時、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動畫、錄像、電視、vcd節(jié)目以及現(xiàn)場實況。 led顯示屏顯示畫面色彩鮮艷,立體感強,靜如油畫,動如電影,廣泛應用于車站、碼頭、機場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。它的優(yōu)點:亮度高、工作電壓低、功耗小、微型化、易與集成電路匹配、驅動簡單、壽命長、耐沖擊、性能穩(wěn)定。2方案論證2.1 顯示部分 顯示部分是本次設計最核心的部分,對于led8*8點陣顯示有以下兩種方案:方案一:靜態(tài)顯示,將一幀圖像中的每一個二極管的狀態(tài)分別用0 和1
11、表示,若為0 ,則表示l ed 無電流,即暗狀態(tài);若為1 則表示二極管被點亮。若給每一個發(fā)光二極管一個驅動電路,一幅畫面輸入以后,所有l(wèi) ed 的狀態(tài)保持到下一幅畫。對于靜態(tài)顯示方式,所需的譯碼驅動裝置很多,引線多而復雜,成本高,且可靠性也較低。方案二:動態(tài)顯示,對一幅畫面進行分割,對組成畫面的各部分分別顯示,是動態(tài)顯示方式。動態(tài)顯示方式,可以避免靜態(tài)顯示的問題。但設計上如果處理不當,易造成亮度低,閃爍問題。因此合理的設計既應保證驅動電路易實現(xiàn),又要保證圖像穩(wěn)定,無閃爍。動態(tài)顯示采用多路復用技術的動態(tài)掃描顯示方式, 復用的程度不是無限增加的, 因為利用動態(tài)掃描顯示使我們看到一幅穩(wěn)定畫面的實質是
12、利用了人眼的暫留效應和發(fā)光二極管發(fā)光時間的長短, 發(fā)光的亮度等因素. 我們通過實驗發(fā)現(xiàn), 當掃描刷新頻率(發(fā)光二極管的停閃頻率) 為50hz, 發(fā)光二極管導通時間1m s 時, 顯示亮度較好, 無閃爍感.。 鑒于上述原因, 我們采用方案二 2.2數(shù)字時鐘數(shù)字時鐘是本設計的重要的部分。根據(jù)需要,可利用兩種方案實現(xiàn)。方案一:本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時
13、值達到24,則將時字節(jié)清零。該方案具有硬件電路簡單的特點,但當單片機不上電,程序將不執(zhí)行。且由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。方案二:本方案采用dallas公司的專用時鐘芯片ds1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當電網(wǎng)電壓不足或突然掉電時,系統(tǒng)自動轉換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間?;跁r鐘芯片
14、的上述優(yōu)點,本設計采用方案二完成數(shù)字時鐘的功能。2.3溫度采集部分能進行溫度測量是本設計的創(chuàng)新部分,由于現(xiàn)在用品追求多樣化,多功能化,所以我們決定給系統(tǒng)加上溫度測量顯示模塊,方便人們的生活,使該設計具有人性化。方案一:采用熱敏電阻,可滿足 40 攝氏度至 90 攝氏度測量范圍,但熱敏電阻精度、重復性、可靠性較差,對于檢測小于 1 攝氏度的信號是不適用的。 方案二:采用溫度傳感器ds18b20。ds18b20可以滿足從-55攝氏度到+125攝氏度測量范圍,且ds18b20測量精度高,增值量為0.5攝氏度,在一秒內(nèi)把溫度轉化成數(shù)字,測得的溫度值的存儲在兩個八位的ram中,單片機直接從中讀出數(shù)據(jù)轉換
15、成十進制就是溫度,使用方便?;赿s18b20的以上優(yōu)點,我們決定選取ds18b20來測量溫度。2.4 芯片的選擇方案一:采取并口輸入,占用大量i/o口資源方案二:選取串口輸入,使用較少。所以我們選用串口輸入。串口輸入我們可以選用芯片有74hc595、74ls164、tpic6b595。但是74hc595和74ls164兩種芯片必須加驅動才能驅動led,而ti 公司的dmos 器件tpic6b595 , 除具有ttl 和cmos 器件中移位寄存器595 的邏輯功能外, 其最大的特點是驅動功率大, 可直接用作led的驅動。綜合以上比較,我們選取tpic6b595來驅動led點陣。2.5 鬧鈴方式
16、的選擇方案一:采用蜂鳴器鬧鈴,當?shù)皆O定時間時,單片機向蜂鳴器送出高電平,蜂鳴器發(fā)生。采用蜂鳴器鬧鈴結構簡單,控制方便,但是發(fā)出的鬧鈴聲音單一。方案二:采用錄音放音芯片1420鬧鈴,先對錄放音設備錄入一段音樂,當?shù)皆O定時間時,單片機控制錄放音設備放音。采用錄放音電路鈴聲可以自己預先設定一段自己喜歡的音樂,符合電器設備人性化的要求。且1420芯片可以分段錄音,還具有語音報時功能?;阡浺舴乓粜酒?420的以上優(yōu)點,我們決定采用錄放音設備鬧鈴。 2.6止鬧方式的選擇一般鐘表都具有鬧鐘功能,到設定時間,便自動啟動鬧鐘,發(fā)出音樂提醒人們,再由人按下止鬧按鈕停止鬧鐘工作。 一般每天只能設置一次鬧鐘、并要由
17、人按下按鈕止鬧,使用不是很方便。智能處理器應用可改變這種狀況,一天可按自己需要設置鬧鐘的開關、多次鬧鐘設置并可用非接觸方式止鬧。方案一:采取遠程紅外遙控止鬧,遙控器發(fā)出特定紅外信號時,單片機接受到信號,向發(fā)音設備發(fā)出停止信號止鬧。紅外遙控止鬧控制距離遠,但是價格昂貴,增加了制造成本。方案二:采取光電傳感器,當用一物體遮擋光電傳感光電傳感器向單片機接口送出一個低電平,單片機立即向發(fā)音設備發(fā)出停止信號止鬧。光電傳感器價格便宜,線路簡單,易于控制?;谝陨媳容^我們決定采用光電傳感器止鬧。2.7串口通訊芯片的選擇at89s52串行口采用的是ttl電平,因此必須的有電平轉換電路,可以選擇1488,148
18、9,max232a.方案一:采用1488或1489芯片實現(xiàn)電平轉換,但在使用中發(fā)現(xiàn)這兩種芯片可靠性不高,且需要正負12v電源,使用麻煩。方案二:采用單電源電平轉換芯片max232a可以使電路變得簡單,可靠?;谝陨戏治觯覀冞x用方案二,選用芯片max232a2.8 電源模塊 方案一:采用干電池作為led點陣系統(tǒng)的電源,由于點陣系統(tǒng)耗電量較大,使用干電池需經(jīng)常換電池,不符合節(jié)約型社會的要求。點陣系統(tǒng)要懸掛在墻上,電池總量大,使用會有較大安全隱患。 方案二:采用200w/5v直流穩(wěn)壓電源作為系統(tǒng)電源,不僅功率上可以滿足系統(tǒng)需要,不需要更換電源,并且比較輕便,使用更加安全可靠 基于以上分析,我們決定
19、采用方案二3 總體方案3.1 工作原理利用avr單片機作為本系統(tǒng)的中控模塊。單片機可把由ds18b20、ds1302讀來的數(shù)據(jù)利用軟件來進行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊,實現(xiàn)溫度、日歷的顯示。點陣led電子顯示屏顯示器為主要的顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且可以實現(xiàn)滾動顯示。利用光電傳感器來實現(xiàn)非接觸止鬧功能。在顯示電路中,主要靠按鍵來實現(xiàn)各種顯示要求的選擇與切換。3.2ds1302ds18b204*4鍵盤錄放音模塊光電傳感器led大屏幕顯示圖1 系統(tǒng)框圖8255avr 總體設計設計總體框圖如圖14、系統(tǒng)硬件設計4.1 at89s52單片機最小系統(tǒng)最小系統(tǒng)包括晶體振蕩電路、復位開關
20、和電源部分。圖2為at89s52單片機的最小系統(tǒng)。圖2 最小系統(tǒng)電路圖4.2 溫度測量模塊溫度測量傳感器采用dallas公司ds18b20的單總線數(shù)字化溫度傳感器,測溫范圍為-55125,可編程為9位12位a/d轉換精度,測溫分辨率達到0.0625,采用寄生電源工作方式, cpu只需一根口線便能與ds18b20通信,占用cpu口線少,可節(jié)省大量引線和邏輯電路。接口電路如圖3所示。圖3 ds18b20測量電路4.3 時鐘模塊時鐘模塊采用ds1302芯片,ds1302 是dallas 公司推出的涓流充電時鐘芯片內(nèi)含有一個實時時鐘/日歷和31 字節(jié)靜態(tài)ram 通過簡單的串行接口與單片機進行通信實時時
21、鐘/日歷電路提供秒分時日日期月年的信息每月的天數(shù)和閏年的天數(shù)可自動調整時鐘操作可通過am/pm 指示決定采用24 或12 小時格式ds1302 與單片機之間能簡單地采用同步串行的方式進行通信僅需用到三個口線1 res 復位2 i/o 數(shù)據(jù)線3 sclk串行時鐘時鐘/ram 的讀/寫數(shù)據(jù)以一個字節(jié)或多達31 個字節(jié)的字符組方式通信ds1302 工作時功耗很低保持數(shù)據(jù)和時鐘信息時功率小于1mw,其接線電路如圖4圖4 時鐘電路4.4 鍵盤模塊鍵盤、狀態(tài)顯示模塊:為了使軟件編程簡單,本設計利用可編程芯片8255。接法如表1所示。pa口接按鍵,pc口則用于控制狀態(tài)顯示所用led點陣。每個按鍵都通過一個1
22、0k的上拉電阻接電源+vcc,按鍵的另一端接地。當有鍵按下時,與該鍵相連的pa口的相應位變?yōu)榈碗娖?,單片機檢測到該變化后即轉到相應的鍵處理程序,同時在程序中點亮led點陣。模塊電路如圖5圖5 鍵盤電路4.5 led顯示模塊點陣數(shù)據(jù)串行輸入, 器件為 移位寄存器tpic6b595595, 門控和掃描信號常以16 點陣為一行進行并行處理。在點陣顯示中以48個l ed 點陣構成一個l ed 顯示單元, 采用行共陽列共陰的編排方式。其驅動分為行列兩部分, 分別來自于行、列移位寄存器, 行數(shù)據(jù)是掃描數(shù)據(jù), 16 行中每次只有一行被驅動, 采用逐行掃描方式, 列數(shù)據(jù)則為漢字的點陣碼。對于字符和圖形顯示也可
23、以用點陣處理, 其顯示原理和方法相同.電路如圖6 圖6 led顯示電路4.6電源選擇: 200w/5v的直流穩(wěn)壓電源更加安全電路圖: 圖7 電源電路4.7 pc機通訊 max232是標準的串口通信接口,對于一般的雙向通訊,只需要使用串行輸入口rxd(第3腳)、串行輸出txd(第2腳)和地線(第7腳)。 圖8 串口通訊4.8整體電路系統(tǒng)整體電路如下:圖9 整體電路5、系統(tǒng)軟件設計5.1主程序如圖10:5.2顯示子程序流程如圖 11:開始查找顯示漢字數(shù)據(jù)放入ram中將數(shù)據(jù)串行傳入tpic6b595行掃描32行是否掃完返回圖11 顯示子程序流程5.3 顯示時間子程序流程如圖12:開始ds1302初始
24、化從ds1302中讀數(shù)據(jù),并放入ram調用顯示子程序顯示時間圖12 時間子程序流程圖5.4 與pc串口通訊程序開始串口通訊初始化等待pc機發(fā)聯(lián)絡信號是否接受到信號將接受到的數(shù)據(jù)放到指定區(qū)域數(shù)據(jù)發(fā)送是否完畢返回圖13 串口通訊程序5.5 led亮度調節(jié)開始鍵盤掃描“亮度”鍵是否按下led顯示當前亮度等級鍵盤掃描“+”鍵按下“”鍵按下內(nèi)部ram中2ah單元所存數(shù)據(jù)加1內(nèi)部ram中2ah單元所存數(shù)據(jù)減1返回ny圖 14 led亮度調節(jié)5.6溫度測量流程圖開始ds18b20初始化從ds18b20中讀出數(shù)據(jù),放入ram在led點陣中顯示溫度返回 圖15 溫度測量程序流程圖6、測試及其結果分析6.1 基本
25、部分測試與分析6.1.1試儀器: 秒表 、溫度表、萬用電表、wave仿真器6.1.2基本要求部分的測試與分析:(1)系統(tǒng)上電后,全屏點亮,沒有暗點。接著顯示時間。按“#”鍵后時掃描鍵盤,當有110鍵按下時,分別顯示十段設定的數(shù)字、英文或漢字。(2)顯示時間時通過與秒表對比,測試的系統(tǒng)時間準確。6. 2 發(fā)揮部分測試與分析:(1) 當按下#后在按下進入亮度調節(jié),按下“+”鍵時,亮度增加。按下“”鍵時,亮度變?nèi)酢?2) 可以實現(xiàn)文字左右移動(3) 按下“設置時間”鍵,觀察到“鐘表” 二極管點亮,此時可對時間進行設置。按下“時間設置”進入時調試,按“+”鍵時間加。在按下“切換”鍵時,進入分調整模式,
26、按下“+”鍵,分增加。按下“選擇”鍵時,分調整模式改為秒調整模式,按下“+”鍵秒增加。經(jīng)測試該步可以很好的實現(xiàn)。調整時間完畢后,再按一下“鬧鐘設置”進入鬧鈴設置狀態(tài),按下“+”鍵設定“時”增加,在按下“選擇”鍵進入分的設置,按下“+”鍵設定“分”增加。在按下“選擇”鍵進入秒設置模式,按“+”鍵秒增加。(4)系統(tǒng)可以顯示10組,每組8個漢字,完成要求6.3 創(chuàng)新部分測試與分析(1)溫度測量: 鍵盤切換現(xiàn)場環(huán)境溫度顯示:按“功能”鍵選擇“溫度”,將溫度傳感器和溫度計放入不同的測試環(huán)境中進行測試,結果如表1所示。表1 與標準溫度計測量值比較表溫度計示值(攝氏度)10.325.249.770.185.
27、5溫度輸出(攝氏度)1025507086由測試知,數(shù)字鐘的輸出與溫度計值基本上相等,誤差不大于0.5度。(2) 當?shù)皆O定時間時,開始訪一段音樂,完成定時鬧鈴功能。(3)當用手遮擋光電傳感器后,停止放音。手拿開后,不再放音,直到設定時間。完成非接觸止鬧功能(4)avr代替at89s52,提高了通信的可靠性,方便程序編寫,更便于組成分布式網(wǎng)絡和實現(xiàn)多機通信系統(tǒng)的復雜應用,串口功能大大超過mcs-51/96單片機的串口,加之a(chǎn)vr單片機高速,中斷服務時間短,故可實現(xiàn)高波特率通訊。 7、設計總結 我制作的這套led點陣電子顯示屏系統(tǒng)不僅完成了題目要求的基本功能和發(fā)揮功能,還在實時溫度檢測顯示、無線遙控
28、、顯示方式等方面有所創(chuàng)新。本系統(tǒng)avr單片機為核心部件,最終完成了設計題目中要求的各項任務,包括可以控制16*32led點陣顯示屏實現(xiàn)信息的左右滾屏、顯示屏亮度連續(xù)可調、實時時間和實時溫度的顯示等,在設計過程中,力求硬件線路簡單,充分發(fā)揮軟件在編程方面靈活的特點,來滿足系統(tǒng)設計的要求。在設計的過程中,我遇到了許多突發(fā)性的不太好解決的問題,例如,在整個系統(tǒng)的調試過程中,我體會到無論是硬件還是軟件的調試都要注意模塊化,要從最底層開始,逐級通過后才能進行下一步的工作;同時在聯(lián)合調試的過程中,應注意各模塊之間的時序配合問題,有時都是正確的模塊程序卻因為按照不恰當?shù)捻樞騺韴?zhí)行從而導致程序運行結果完全出錯
29、。通過這次設計,提高了自己的動手能力和解決問題的能力。 8、參考資料1基于單片機結構的智能系統(tǒng)設計與實現(xiàn) 沈紅衛(wèi) 編 電子工業(yè)出版社2單片機原理與接口技術 黃惠媛 編 海洋出版社3單片機應用技術 周平 伍云輝 編 電子科技大學出版社48051單片機實踐與應用 吳金戌 沈金陽 郭庭吉 編 清華大學出版社5何立民.mcs-51系列單片機應用系統(tǒng)設計與接口技術 .北京航空航天大學出版社,19906 任濤等.閃速存儲器數(shù)據(jù)及應用簡明速查手冊.電子工業(yè)出版社,19977 何立民.單片機應用技術選編.北京航空航天大學出版社,20008 張毅剛等.mcs-51單片機應用設計.哈爾濱工業(yè)電子出版社,19969
30、 鄔寬明.單片機外圍器件實用手冊.北京航空航天大學出版社,199810 張凱.led介紹完全手冊.北京航空航天大學出版社,200011 張友德等.單片微型機原理應用與實驗,復旦大學出版社,19969、致謝 感謝我的導師李政林教授,他們嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;他循循善誘的教導和不拘一格的思路給予我無盡的啟迪。仍然感謝我的導師,這片論文的每個實驗細節(jié)和每個數(shù)據(jù),都離不開你的細心指導。而你開朗的個性和寬容的態(tài)度,幫助我能夠很快的融入我們這個新的實驗室感謝我的室友們,從遙遠的家來到這個陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿
31、佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何不開心的事情。只是今后大家就難得再聚在一起吃每年元旦那頓飯了吧,沒關系,各奔前程,大家珍重。但愿我們沒一個人平平安安,快快樂樂,順順利利。我們在一起的日子,我會記一輩子的。感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大的心愿。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!附錄例:整屏四個字一起顯示的程序ser equ p1.0 ; tpic6b595 第3腳oe equ p1.1;tpic
32、6b595 第8腳rck equ p1.2;tpic6b595 第12腳mr equ p1.3;tpic6b595 第9腳srclk equ p1.4;tpic6b595 第 13腳org 0000hljmp mainorg 0100h;*主程序*main: mov sp,#70hsetb oe mov 2bh,#00hmov 27h,#00hstart: ;初始化寄存器ram單元mov r0, #30hmov r1,#64h ;30h6fh單元清零mov a, #00hst: mov r0,a inc r0 djnz r1,st;2dh-尋址偏址 ;整屏四個字一起顯示loop:mov dpt
33、r,#tab;賦查表初值mov r3,#56play: mov 2dh,#00h mov 2fh,#10hgg: lcall line16;掃描顯示一次mov 2dh,#00hdjnz 2fh,ggmov a,dplclr cadd a, #16mov dpl ,amov a, dphaddc a ,#00hmov dph, adjnz r3,playsjmp startline16: mov 2bh,#16;掃16行,2bh放后還剩幾行ff: lcall line1;掃描顯示一行子程序djnz 2bh,ff;掃描行直到16行掃完再轉retline1:lcall mstr;將顯示的內(nèi)容移入內(nèi)存
34、單元 lcall send;發(fā)送串口子程序 lcall xh;選通行子程序 retmstr: ;顯示內(nèi)容移入內(nèi)存單元 mov r0,#30h mov r4,#9 mov a,2dh;bb: movc a,a+dptr mov r0,a inc r0 mov a,2dh add a,#16;加16移到下一行 mov 2dh,a djnz r4,bb mov a,2dh subb a,#143 mov 2dh,a ret;$發(fā)送數(shù)據(jù)到串口子程序$send:mov r0,#30h mov r5,#8 ;一行有8個字節(jié),如每次顯示字數(shù)不同要作相應改動 setb oe setb mr clr srclk
35、 clr rck setb p1.6 setb p1.7lq: clr c mov r2,#8 mov a,r0 ; cpl a ;tpic6b595應該不用這一步 lcall dd1;調用顯示一個字節(jié)的子程序 inc r0;指向下一個顯示單元 djnz r5,lq retdd1: clr srclk;清串行cp端 rlc a; mov ser,c setb srclk ;觸發(fā)串行cp端 djnz r2,dd1;每個字節(jié)移8次夠了向下執(zhí)行 ret;選通行子程序xh: clr rck ;將輸出cp變成低電平為上升沿做準備 nop setb rck clr p1.6 ;clr p1.7 mov a
36、,27h mov p0,a clr oelcall de25msinc a setb oe setb p1.6mov a,27h anl a,#0f0h swap a add a,#01h swap a mov 27h,aclr mr setb mr retde25ms: mov r5,#09h del2: mov r6,#0fh del3: mov r7,#01h djnz r7,$ djnz r6,del3 djnz r5,del2 rettab:字庫endc程序主程序:#include #include hong_wai.h#include keydefine.h/*紅外使用定時器0及外
37、部中斷0,蜂鳴器使用定時器1*/void init() /*初始化看門狗*/ feet_dog(); init_hongwai();void main() init();while(1) /碼值處理 if(irok) ircordpro(); irok=0; /碼值識別散轉 if(irpro_ok)/step press key ir_work(); /scan();/按鍵掃描 feet_dog(); 副程序:#include #include ctrl_word.h#include 2suanfa.h#include 語音模塊.h#include 1302.h#include 18b20.h
38、#include shuzi.h#include ctrl_fun.h/修正時間#include alarm.h#include int_jiekou.h uchar kk;void init() sycle=1;/循環(huán)顯示 ce=1;/關語音 tmod=0x00; /定時器0,方式0(13位), th0=0x00; tl0=0x00; tr0=1; /啟動定時器0 et0=1; /允許t0中斷 /*/ ea=1; /開總中斷 ex0=1; px0=0; it0=0; /允許外部中斷0,低優(yōu)先級下降沿有效 /ex1=0; px1=1; it1=0; /允許外部中斷1,高優(yōu)先級下降沿有效 en_
39、154=0; hang=3; wei=8; scan=0;/各段顯示的起始位置 speed=7; /初始滾動速度為7,注意:取值越小越快 /p3_7=0; kai_guan=1; case_n=0; /打開,而后進入默認顯示狀態(tài) c_scan = 1; /默認滾動屏滾動。 direction = 1; /默認滾動方向為正向 set_time_in();/讀入時間值void main() init(); while(1) kai_guan=1; hang=3; wei=8; scan=0;/恢復初始值 /m=31; switch(case_n) case 0 : send_(table,25);
40、 break; /table為數(shù)組,17為最大行下標 case 1 : send_(alarm,7); break; /顯示“時間到”信號 break; case 2 : send_data32(31); break; /顯示時間 break; case 3 : clock_set=1; /置時間設置標志,使數(shù)字鍵進入相應功能 show_set(); break;/進入設置時間顯示狀態(tài) break; case 4 : alarm_on=1; set_clock(); break;/定時功能設置 break; default : case_n=0; while(1); void time0(vo
41、id) interrupt 1 th0=0x3f; tl0=0x3f; read+; if(read=200) /set_in();/down9 = ds1302_r(0x81)&0x0f;/set_time_in();/set_wen_du();read=0;/p1+; void int0_fun(void) interrupt 0/using 0/外部中斷0服務函數(shù) px0=0; px1=1;/優(yōu)先級轉換 int_index = data_port; switch(int_index) case 0 : fun_0(); break; case 1 : fun_1(); break; ca
42、se 2 : fun_2(); break; case 3 : fun_3(); break; case 4 : fun_4() ; break; case 5 : fun_5() ; break; case 6 : fun_6() ; break; case 7 : fun_7() ; break;case 8 : fun_8() ; break; case 9 : fun_9() ; break; case 18 : fun_up() ; break; case 19 : fun_down(); break; case 0x19 : fun_set(); break; case 0x17 : fun_timer(); break; case 0x1e : fun_sun(); break;case 0x18 : fun_zero_i(); break;case 0x15 : fun_speaker(); break;case 20 : fun_power(); break;case 0x1a : fun_direction(); break;case 0x1d : fun_min(); break;case 0x1c : fun_hour(); break;case 0x16 : fun_tvav(); break
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版場監(jiān)督管理局合同示范文本(公共安全監(jiān)控)4篇
- 專業(yè)化苗木搬運合作合同范本版B版
- 2025年度草花種植基地農(nóng)業(yè)廢棄物處理合同4篇
- 2024離婚雙方的社會關系及人際網(wǎng)絡處理合同
- 2024年04月華夏銀行總行社會招考筆試歷年參考題庫附帶答案詳解
- 2025年度電子商務策劃與運營合同范本4篇
- 2024院長任期內(nèi)薪酬福利與教育教學改革合同范本3篇
- 專用場地四年承包合同樣本版B版
- 2024年鋼筋結構施工合同
- 2025年度拆除工程安全防護材料供應協(xié)議3篇
- 公路工程施工現(xiàn)場安全檢查手冊
- 公司組織架構圖(可編輯模版)
- 1汽輪機跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 禮品(禮金)上交登記臺賬
- 北師大版七年級數(shù)學上冊教案(全冊完整版)教學設計含教學反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應用
- 青少年軟件編程(Scratch)練習題及答案
- 浙江省公務員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學
- 全統(tǒng)定額工程量計算規(guī)則1994
評論
0/150
提交評論