㈠ 單片機及外圍電路的關系
不是學這一行就最好不要轉(即不要認為把它學會後就可以用它找到比機械更好工作什麼的),因為做單片機的也沒成就感,比如以前我也是我做機械的,市面上面曾有許多流行爛大待的手機結構我曾開發過,許多小孩子手中的玩具我也開發過,當年的流行的快譯通有幾個MODEL我也做過,不過,成就感也不覺得有啊。。。況且,就普遍性來說(僅指普遍性),搞結構的機械工程師的工資要比電子工程師、軟體工程師要高,在東莞,深圳都差不多,如果你曾在那邊的公司工程部工作過。。。。
話說回頭,如果你真的是為以後做打算,比如搞什麼機電碩士,那也是機電類的,本質上是和單片機是不太著邊的。。機電類的,機電一體化,做研究生那專業就更精細了。。。。不過倒可以把模電數電搞得更清楚。。。
本人以前從事機械十多年,學單片機是迫不得已的事,因為後來工作不幹了回家搞創業,不得已,要生活啊,沒錢啊。。所以很多事就得自已來。。。其實不用猜測,如果你真的在工廠里做過,比如我之前我在的公司工程部里,手下就有機械、電子、軟體工程師,當然就很了解這些東西。基本上嘛。。。做個產品的流程就是這樣:一張美工原型圖,可以是手繪也可以是外觀效果圖,然後機械類的進行結構開發,基本上結構出來PCB的大小尺寸樣子也就出來了;軟體工程師根據功能設計要求,簡單的控制如按鈕啊顯示啦等等,那就是寫軟體的幹活;但是產品中若碰到有難度或更高的比如有高頻發射什麼的,就是硬體(電路)工程師的幹活;然後就是電子工程師的Layout,也就是電路原理圖來合理的布線(也有的公司有專門的布線員,就像機械的有繪圖員一樣),最後PCB樣辦回來,焊板也是電子工程師的幹活。。。。然後就是調試啦,軟體調軟的,電子工程師調電子部份的,最後和機械類開好的模具塑膠殼,套上去送板,然後試產,量產,最後批量生產,再最後上市場。。。。。
你問的問題,十有八九在上面里可以悟得到:不過最後說一下,簡單的控制類的產品,基本上是軟體與電路同一人完成,包括所有的調試,如果涉及到上位機,那麼你有本事的話一樣一個人可以完成,再如果你了精通機械設計,那麼還是一個人可以完成,對於我來說,簡單點的東西我就是可以一個人把所有的東西全部完成,美工,結構,電子,軟體,上位機。。。可那有什麼用?其實搞產品的,在於你個人的想法,碰到不會的,那麼你就得學。。。所以說不是固定的什麼實際中是否同一個人什麼的。。具體工作具體定。。。比如說做個LED的控制器吧。。。流程可以這樣:根據功能要求單片機選型,然後設計外圍電路,晶振、瓷片電容,上拉電阻(如果說需要的話),輸出的I/O口,單片機電源部份(一般是現成的),然後是驅動電路,比如說三極體,功能IC什麼的,驅動電源部份;完成電路設計後,即開始焊板,用實驗板(也稱洞洞板)把你設計的電路焊起來,然後寫軟體,寫完後下載到單片機里,開始調試修改,包括硬體軟體,最後覺得OK,再用市面流行的Protel或pads進行布線,布完線後發給線路板工廠製作PCB,拿到PCB樣辦後把電路需要的元件一一焊接PCB上,然後再下載你的程序調試PCB,如OK,之後你即可以做最後的驗證,比如接上大批量的燈,進行最終性能測試,最後,全部OK!即可以生產線路板,當然,這時候你的外殼什麼的做好後,直接裝在外殼里,打上螺絲或超聲波焊接外殼,貼上你的面板標簽或絲印,噴漆等外觀處理,至此,產品全部完成。。。模電、數電的深刻理論你是不需要懂太多嘀,但最少也得要基礎,太深的東東,交給專業的模塊公司去完成吧。。。。
㈡ 如何學習單片機中外圍電路設計
1、充分了解各方的設計需求,確定合適的解決方案
啟動一個硬體開發項目,原始的推動力會來自於很多方面,比如市場的需要,基於整個系統架構的需要,應用軟體部門的功能實現需要,提高系統某方面能力的需要等等,所以作為一個硬體系統的設計者,要主動的去了解各個方面的需求,並且綜合起來,提出最合適的硬體解決方案。比如A項目的原始推動力來自於公司內部的一個高層軟體小組,他們在實際當中發現原有的處理器板IP轉發能力不能滿足要求,從而對於系統的配置和使用都會造成很大的不便,所以他們提出了對新硬體的需求。根據這個目標,硬體方案中就針對性的選用了兩個高性能網路處理器,然後還需要深入的和軟體設計者交流,以確定內存大小,內部結構,對外介面和調試介面的數量及類型等等細節,比如軟體人員喜歡將控制信令通路和數據通路完全分開來,這樣在確定內部數據走向的時候要慎重考慮。項目開始之初是需要召開很多的討論會議的,應該盡量邀請所有相關部門來參與,好處有三個,第一可以充分了解大家的需要,以免在系統設計上遺漏重要的功能,第二是可以讓各個部門了解這個項目的情況,提早做好時間和人員上協作的准備,第三是從感情方面講,在設計之初各個部門就參與了進來,這個項目就變成了大家共同的一個心血結晶,會得到大家的呵護和良好合作,對完成工作是很有幫助的。
2、原理圖設計中要注意的問題
原理圖設計中要有「拿來主義」,現在的晶元廠家一般都可以提供參考設計的原理圖,所以要盡量的藉助這些資源,在充分理解參考設計的基礎上,做一些自己的發揮。當主要的晶元選定以後,最關鍵的外圍設計包括了電源,時鍾和晶元間的互連。
電源是保證硬體系統正常工作的基礎,設計中要詳細的分析:系統能夠提供的電源輸入;單板需要產生的電源輸出;各個電源需要提供的電流大小;電源電路效率;各個電源能夠允許的波動范圍;整個電源系統需要的上電順序等等。比如A項目中的網路處理器需要1.25V作為核心電壓,要求精度在+5%- -3%之間,電流需要12A左右,根據這些要求,設計中採用5V的電源輸入,利用Linear的開關電源控制器和IR的MOSFET搭建了合適的電源供應電路,精度要求決定了輸出電容的ESR選擇,並且為防止電流過大造成的電壓跌落,加入了遠端反饋的功能。
時鍾電路的實現要考慮到目標電路的抖動等要求,A項目中用到了GE的PHY器件,剛開始的時候使用一個內部帶鎖相環的零延時時鍾分配晶元提供100MHz時鍾,結果GE鏈路上出現了丟包,後來換成簡單的時鍾Buffer器件就解決了丟包問題,分析起來就是內部的鎖相環引入了抖動。
晶元之間的互連要保證數據的無誤傳輸,在這方面,高速的差分信號線具有速率高,好布線,信號完整性好等特點,A項目中的多晶元間互連均採用了高速差分信號線,在調試和測試中沒有出現問題。
3、PCB設計中要注意的問題
PCB設計中要做到目的明確,對於重要的信號線要非常嚴格的要求布線的長度和處理地環路,而對於低速和不重要的信號線就可以放在稍低的布線優先順序上。重要的部分包括:電源的分割;內存的時鍾線,控制線和數據線的長度要求;高速差分線的布線等等。
A項目中使用內存晶元實現了1G大小的DDR memory,針對這個部分的布線是非常關鍵的,要考慮到控制線和地址線的拓撲分布,數據線和時鍾線的長度差別控制等方面,在實現的過程中,根據晶元的數據手冊和實際的工作頻率可以得出具體的布線規則要求,比如同一組內的數據線長度相差不能超過多少個mil,每個通路之間的長度相差不能超過多少個mil等等。當這些要求確定後就可以明確要求PCB設計人員來實現了,如果設計中所有的重要布線要求都明確了,可以轉換成整體的布線約束,利用CAD中的自動布線工具軟體來實現PCB設計,這也是在高速PCB設計中的一個發展趨勢。
4、檢查和調試
當准備調試一塊板的時候,一定要先認真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然後用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習慣可以避免貿然上電後損壞單板。調試的過程中要有平和的心態,遇見問題是非常正常的,要做的就是多做比較和分析,逐步的排除可能的原因,要堅信「凡事都是有辦法解決的」和「問題出現一定有它的原因」,這樣最後一定能調試成功。
5、一些總結的話
現在從技術的角度來說,每個設計最終都可以做出來,但是一個項目的成功與否,不僅僅取決於技術上的實現,還與完成的時間,產品的質量,團隊的配合密切相關,所以良好的團隊協作,透明坦誠的項目溝通,精細周密的研發安排,充裕的物料和人員安排,這樣才能保證一個項目的成功。
一個好的硬體工程師實際上就是一個項目經理,他/她需要從外界交流獲取對自己設計的需求,然後匯總,分析成具體的硬體實現。還要跟眾多的晶元和方案供應商聯系,從中挑選出合適的方案,當原理圖完成後,他/她要組織同事來進行配合評審和檢查,還要和CAD工程師一起工作來完成PCB的設計。與此同時,還要准備好BOM清單,開始采購和准備物料,聯系加工廠家完成板的貼裝。在調試的過程中他/她要組織好軟體工程師來一起攻關調試,配合測試工程師一起解決測試中發現的問題,等到產品推出到現場,如果出現問題,還需要做到及時的支持。所以做一個硬體設計人員要鍛煉出良好的溝通能力,面對壓力的調節能力,同一時間處理多個事務的協調和決斷能力和良好平和的心態等等。
還有細心和認真,因為硬體設計上的一個小疏忽往往就會造成非常大的經濟損失,比如以前碰到一塊板在PCB設計完備出製造文件的時候誤操作造成了電源層和地層連在了一起,PCB板製造完畢後又沒有檢查直接上生產線貼裝,到測試的時候才發現短路問題,但是元器件已經都焊接到板上了,結果造成了幾十萬的損失。所以細心和認真的檢查,負責任的測試,不懈的學習和積累,才能使得一個硬體設計人員持續不斷的進步,而後事業有所小成。
㈢ 一個單片機工程師需學習哪些內容
1、對單片機應用場合有充分的了解,能夠在應用項目中選擇合適的單片機和外圍晶元的型號;能夠根據系統指標很快的設計出一個應用系統的體系結構;在深圳,一個項目的時間只有一個星期左右,因為這些東西誰都能做,主要看誰能夠做的又快又好;
2、熟練使用ASM和C等相應的單片機語言,有良好的編程風格和一定的編程技巧;
3、能夠進行簡單的PCB版圖設計,至少能夠設計出有一定抗干擾能力的單片機電路板; 4、對控制、信號系統有所了解,知道必要的演算法;
5、熟悉計算機方向的簡要開發,能夠使用計算機做一些簡單的主機端軟體;
6、對模擬、數字電路、匯流排等比較熟悉,能夠使用它們進行單片機的外圍介面。
㈣ 單片機外圍介面電路與工程實踐的基本信息
單片機外圍介面電路是指單片機通過外接其他電路或器件,實現與外部環境的信息交換。常見的外圍介麵包括數字輸入輸出口、模擬輸入輸出口、串列通信介面、並行通信介面等。在工程實踐中攜手,單片機外圍介面電路的設計與實現是非常重要的。根據猛啟具辯知嫌體應用場景和需求,需要進行電路設計、模擬模擬、PCB設計、軟體編程等工作。此外,還需要對接外部感測器、執行器等元件,進行信號採集、控制輸出等操作。在實踐中,需要注意單片機與外圍介面電路之間的電氣特性匹配,如電平、電流、阻抗等參數。同時,還要考慮系統的可靠性、抗干擾性、可維護性等因素。㈤ 單片機的基本外圍電路
單片機的基本外圍電路:
復位電路中電阻R1=10k時RST是高電平 ,而當R1=50時RST為低電平,很明顯R1=10k時是錯誤的,單片機一直處在復位狀態時根本無法工作。
出現這樣的原因是由於RST引腳內含三極體,即便在截止狀態時也會有少量截止電流,當R取的非常大時,微弱的截止電流通過就產生了高電平。
濾波電容
濾波電容分為高頻濾波電容和低頻濾波電容。
1、高頻濾波電容一般用104容(0.1uF),目的是短路高頻分量,保護器件免受高頻干擾。普通的IC(集成)器件的電源與地之間都要加,去除高頻干擾(空氣靜電)。
2、低頻濾波電容一般用電解電容(100uF),目的是去除低頻紋波,存儲一部分能量,穩定電源。大多接在電源介面處,大功率元器件旁邊,如:USB借口,步進電機、1602背光顯示。耐壓值至少高於系統最高電壓的2倍。
㈥ 單片機通過USB介面與計算機通訊電路圖
如圖所示:需要單片機51,溫度感測器18B02。USB轉RS485的轉串口線。直接用serialport控制項,設置通訊參數,然後向串口發數據。
比如發1,然後使用事件觸發接收單片機的數據,如果兩側通訊沒問題,電腦會收到2,然後把它顯示出來或者做喊旦中其他處理。
(6)單片機外圍介面電路與工程實踐擴展閱讀:
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中遲謹取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微鄭山處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。
外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
㈦ 單片機晶元的地是接模擬地還是數字地,~還有連單片機介面的外圍電路的地是接什麼
幾乎絕大部分的單片機系統都是模擬地,關於外圍電路就是震盪電路嘍,接個晶體再加一些電源什麼的就是最小單片機系統了。。。。望採納
㈧ 畢業論文 單片機應用研究方面的 一定要長, 最好上萬字
試題: A甲1025
參賽試題:
點陣電子顯示屏(A題)
參賽學生:馮元偉 物理與微電子學院
關童 物理與微電子學院
田立志 材料學院包裝工程
參賽學校:山東大學
指導老師:陳延俊 秦峰 王延偉 儀維
2006年9月11日
目 錄
第一部分
摘要 ……………………………………………………...3
第二部分
1.設計任務………………………………………………..4
1.1基本要求………………………………………………………….........4
1.2發揮部分……………………………………………………………….4
1.3創新部分……………………………………………………………….4
2.方案論證與比較………………………………………5
2.1 顯示部分……………………………………………………………….5
2.2 數字時鍾……………………………………………………………….5
2.3 溫度採集部分………………………………………………………….6
2.4 晶元選擇……………………………………………………………….6
2.5 鬧鈴方式的選擇……………………………………………………….6
2.6 止鬧方式的選擇……………………………………………………….6
2.7 串口通訊晶元的選擇………………………………………………….6
3. 總體方案……………………………………………….7
3.1 工作原理……………………………………………………………….7
3.2 總體設計……………………………………………………………….7
4.系統硬體設計…………………………………………7
4.1 AT89S52單片機最小系統…………………………………………...8
4.2 溫度測量模塊………………………………………………………...8
4.3 時鍾模塊……………………………………………………………..8
4.4 鍵盤模塊……………………………………………………………..9
4.5 LED點陣顯示模塊………………………………………………….10
4.6 電源的選擇………………………………………………………….11
4.7 PC機通訊……………………………………………………………12
4.8 整體電路…………………………………………………………….12
5.系統軟體設計………………………………………….7
5.1 主程序流程………………………………………………………….13
5.2 掃描子程序………………………………………………………….14
5.3 時間程序…………………………………………………………….15
5.4 PC機串口通訊程序…………………………………………………15
5.5 亮度調節程序………………………………………………………16
5.6 溫度程序…………………………………………………………….17
6.測試與結果分析……………………………………...17
6.1 基本部分測試與分析……………………………………………….17
6.2 發揮部分測試與分析……………………………………………….18
6.3 創新部分測試與分析……………………………………………….18
7.設計總結……………………………………………...18
8.參考資料……………………………………………...18
附錄……………………………………………………………18
常式…………………………………………………………......................................18
摘要 LED大屏幕顯示系統,以AT89S52單片機為核心,由鍵盤顯示、錄放音模塊、光電開關、溫度採集、定時鬧鈴、LED大屏幕顯示等功能模塊組成。基於題目基本要求,本系統對時間顯示和大屏幕顯示進行了重點設計。此外,擴展單片機外圍介面、溫度採集、非接觸式止鬧、滾動屏幕顯示、語音報時等功能。本系統大部分功能由軟體來實現,吸收了硬體軟體化的思想,大部分功能通過軟體來實現,使電路簡單明了,系統穩定性大大提高。本系統不僅成功的實現了要求的基本功能,發揮部分也得到完全的實現,而且有一定的創新功能。
關鍵字:單片機 LED大屏幕 滾屏顯示
Abstract This large LED display screen system ,based on chip microcomputer AT89S52,is composed by the following functional moles : keyboard displaying ,sound phonating. photoelectricity untouched switch,temperature gathering ,timing bell,
According to the basic requirements of the subject ,our system stresses on the realization of time displaying and large screen displaying ,Furthermore ,we also extend the primary function ,adding new functions ,such as the single chip peripheral ports ,temperature gathering ,untouched ring-stop, scroll screen display, sound timing .and so on.
Adopting the idea of hardware-to-software, most of those functions are realized by softwares, which makes the electrocircuit more concise and the system more stable ,
The design achieved and even exceeded all the required basic technical indexes
Key words: chip microcomputer large screen display system
scroll screen display
1任務設計
1.1 基本要求:設計並製作LED電子顯示屏和控制器。
1.1.1 自製一台簡易16行*32列點陣顯示的LED電子顯示屏;
1.1.2 自製顯示屏控制器,擴展鍵盤和相應的介面實現多功能顯示控制,顯示屏顯示數字和字母亮度適中,應無閃爍。
1.1.3 顯示屏通過按鍵切換顯示數字和字母;
1.1.4 顯示屏能顯示4組特定數字或者英文字母組成的句子,通過按鍵切換顯示內容;
1.1.5 能顯示4組特定漢字組成的句子,通過按鍵切換顯示內容。
1.2發揮部分:
1.2.1自製一台簡易16行*64列點陣顯示的LED電子顯示屏;
1.2.2 LED顯示屏亮度連續可調。
1.2.3 實現信息的左右滾屏顯示,預存信息的定時循環顯示;
1.2.4 實現實時時間的顯示,顯示屏數字顯示: 時∶分∶秒(例如 18∶38∶59);
1.2.5增大到10組(每組漢字8個或16個數字和字元)預存信息,信息具有掉電保護;
1.2.6實現和PC機通訊,通過PC機串口直接對顯示信息進行更新(須做PC機客戶程序);
1.3 創新部分
1.3.1 室溫的測量
1.3.2 定時鬧鈴
1.3.3 整點報時
1.3.4 非接觸止鬧
2、方案論證
2.1 顯示部分:
顯示部分是本次設計最核心的部分,對於LED8*8點陣顯示有以下兩種方案:
方案一:靜態顯示,將一幀圖像中的每一個二極體的狀態分別用0 和1 表示,若為0 ,則表示L ED 無電流,即暗狀態;若為1 則表示二極體被點亮。若給每一個發光二極體一個驅動電路,一幅畫面輸入以後,所有L ED 的狀態保持到下一幅畫。對於靜態顯示方式方式,所需的解碼驅動裝置很多,引線多而復雜,成本高,且可靠性也較低。
方案二:動態顯示,對一幅畫面進行分割,對組成畫面的各部分分別顯示,是動態顯示方式。動態顯示方式方式,可以避免靜態顯示的問題。但設計上如果處理不當,易造成亮度低,閃爍問題。因此合理的設計既應保證驅動電路易實現,又要保證圖像穩定,無閃爍。動態顯示採用多路復用技術的動態掃描顯示方式, 復用的程度不是無限增加的, 因為利用動態掃描顯示使我們看到一幅穩定畫面的實質是利用了人眼的暫留效應和發光二極體發光時間的長短, 發光的亮度等因素. 我們通過實驗發現, 當掃描刷新頻率(發光二極體的停閃頻率) 為50Hz, 發光二極體導通時間≥1m s 時, 顯示亮度較好, 無閃爍感.。
鑒於上述原因, 我們採用方案二
2.2.數字時鍾
數字時鍾是本設計的重要的部分。根據需要,可利用兩種方案實現。
方案一:本方案完全用軟體實現數字時鍾。原理為:在單片機內部存儲器設三個位元組分別存放時鍾的時、分、秒信息。利用定時器與軟體結合實現1秒定時中斷,每產生一次中斷,存儲器內相應的秒值加1;若秒值達到60,則將其清零,並將相應的分位元組值加1;若分值達到60,則清零分位元組,並將時位元組值加1;若時值達到24,則將時位元組清零。該方案具有硬體電路簡單的特點,但當單片機不上電,程序將不執行。且由於每次執行程序時,定時器都要重新賦初值,所以該時鍾精度不高。
方案二:本方案採用Dallas公司的專用時鍾晶元DS1302。該晶元內部採用石英晶體振盪器,其晶元精度不大於10ms/年,且具有完備的時鍾鬧鍾功能,因此,可直接對其以用於顯示或設置,使得軟體編程相對簡單。為保證時鍾在電網電壓不足或突然掉電等突發情況下仍能正常工作,晶元內部包含鋰電池。當電網電壓不足或突然掉電時,系統自動轉換到內部鋰電池供電系統。而且即使系統不上電,程序不執行時,鋰電池也能保證晶元的正常運行,以備隨時提供正確的時間。
基於時鍾晶元的上述優點,本設計採用方案二完成數字時鍾的功能。
2.3 溫度採集部分
能進行溫度測量是本設計的創新部分,由於現在用品追求多樣化,多功能化,所以我們決定給系統加上溫度測量顯示模塊,方便人們的生活,使該設計具有人性化。
方案一:採用熱敏電阻,可滿足 40 攝氏度至 90 攝氏度測量范圍,但熱敏電阻精度、重復性、可靠性較差,對於檢測小於 1 攝氏度的信號是不適用的。
方案二:採用溫度感測器DS18B20。DS18B20可以滿足從-55攝氏度到+125攝氏度測量范圍,且DS18B20測量精度高,增值量為0.5攝氏度,在一秒內把溫度轉化成數字,測得的溫度值的存儲在兩個八位的RAM中,單片機直接從中讀出數據轉換成十進制就是溫度,使用方便。
基於DS18b20的以上優點,我們決定選取DS18b20來測量溫度。
2.4 晶元的選擇
方案一:採取並口輸入,佔用大量I/O口資源
方案二:選取串口輸入,使用較少。所以我們選用串口輸入。串口輸入我們可以選用晶元有74HC595、74LS164、TPIC6B595。但是74HC595和74LS164兩種晶元必須加驅動才能驅動LED,而TI 公司的DMOS 器件TPIC6B595 , 除具有TTL 和CMOS 器件中移位寄存器595 的邏輯功能外, 其最大的特點是驅動功率大, 可直接用作LED的驅動。
綜合以上比較,我們選取TPIC6B595來驅動LED點陣。
2.5 鬧鈴方式的選擇
方案一:採用蜂鳴器鬧鈴,當到設定時間時,單片機向蜂鳴器送出高電平,蜂鳴器發生。採用蜂鳴器鬧鈴結構簡單,控制方便,但是發出的鬧鈴聲音單一。
方案二:採用錄音放音晶元1420鬧鈴,先對錄放音設備錄入一段音樂,當到設定時間時,單片機控制錄放音設備放音。採用錄放音電路鈴聲可以自己預先設定一段自己喜歡的音樂,符合電器設備人性化的要求。且1420晶元可以分段錄音,還具有語音報時功能。
基於錄音放音晶元1420的以上優點,我們決定採用錄放音設備鬧鈴。
2.6 止鬧方式的選擇
一般鍾表都具有鬧鍾功能,到設定時間,便自動啟動鬧鍾,發出音樂提醒人們,再由人按下止鬧按鈕停止鬧鍾工作。 一般每天只能設置一次鬧鍾、並要由人按下按鈕止鬧,使用不是很方便。
智能處理器應用可改變這種狀況,一天可按自己需要設置鬧鍾的開關、多次鬧鍾設置並可用非接觸方式止鬧。
方案一:採取遠程紅外遙控止鬧,遙控器發出特定紅外信號時,單片機接受到信號,向發音設備發出停止信號止鬧。紅外遙控止鬧控制距離遠,但是價格昂貴,增加了製造成本。
方案二:採取光電感測器,當用一物體遮擋光電感測光電感測器向單片機介面送出一個低電平,單片機立即向發音設備發出停止信號止鬧。光電感測器價格便宜,線路簡單,易於控制。
基於以上比較我們決定採用光電感測器止鬧。
2.7 串口通訊晶元的選擇
AT89S52串列口採用的是TTL電平,因此必須的有電平轉換電路,可以選擇1488,1489,MAX232A.
方案一:採用1488或1489晶元實現電平轉換,但在使用中發現這兩種晶元可靠性不高,且需要正負12V電源,使用麻煩。
方案二:採用單電源電平轉換晶元MAX232A可以使電路變得簡單,可靠。
基於以上分析,我們選用方案二,選用晶元MAX232A
2.8 電源模塊
方案一:採用干電池作為LED點陣系統的電源,由於點陣系統耗電量較大,使用干電池需經常換電池,不符合節約型社會的要求。點陣系統要懸掛在牆上,電池總量大,使用會有較大安全隱患。
方案二:採用200W/5V直流穩壓電源作為系統電源,不僅功率上可以滿足系統需要,不需要更換電源,並且比較輕便,使用更加安全可靠
基於以上分析,我們決定採用方案二
3、總體方案
3.1 工作原理:
利用單片機AT89S52單片機作為本系統的中控模塊。單片機可把由DS18B20、DS1302讀來的數據利用軟體來進行處理,從而把數據傳輸到顯示模塊,實現溫度、日歷的顯示。點陣LED電子顯示屏顯示器為主要的顯示模塊,把單片機傳來的數據顯示出來,並且可以實現滾動顯示。利用光電感測器來實現非接觸止鬧功能。在顯示電路中,主要靠按鍵來實現各種顯示要求的選擇與切換。
3.2 總體設計
設計總體框圖如圖1
4、系統硬體設計(單元電路設計及分析)
4.1 AT89S52單片機最小系統:
最小系統包括晶體振盪電路、復位開關和電源部分。圖2為AT89S52單片機的最小系統。
4.2 溫度測量模塊:
溫度測量感測器採用DALLAS公司DS18B20的單匯流排數字化溫度感測器,測溫范圍為-55℃~125℃,可編程為9位~12位A/D轉換精度,測溫解析度達到0.0625℃,採用寄生電源工作方式, CPU只需一根口線便能與DS18B20通信,佔用CPU口線少,可節省大量引線和邏輯電路。介面電路如圖3所示。
圖3 DS18B20測量電路
4.3 時鍾模塊
時鍾模塊採用DS1302晶元,DS1302 是DALLAS 公司推出的涓流充電時鍾晶元內含有一個實時時鍾/日歷和31 位元組靜態RAM 通過簡單的串列介面與單片機進行通信實時時鍾/日歷電路提供秒分時日日期月年的信息每月的天數和閏年的天數可自動調整時鍾操作可通過AM/PM 指示決定採用24 或12 小時格式DS1302 與單片機之間能簡單地採用同步串列的方式進行通信僅需用到三個口線1 RES 復位2 I/O 數據線3 SCLK串列時鍾時鍾/RAM 的讀/寫數據以一個位元組或多達31 個位元組的字元組方式通信DS1302 工作時功耗很低保持數據和時鍾信息時功率小於1mW,其接線電路如圖4
圖4 時鍾電路
4.4 鍵盤模塊
鍵盤、狀態顯示模塊:為了使軟體編程簡單,本設計利用可編程晶元8255。接法如表1所示。PA口接按鍵,PC口則用於控制狀態顯示所用LED點陣。每個按鍵都通過一個10K的上拉電阻接電源+Vcc,按鍵的另一端接地。當有鍵按下時,與該鍵相連的PA口的相應位變為低電平,單片機檢測到該變化後即轉到相應的鍵處理程序,同時在程序中點亮LED點陣。模塊電路如圖5
4.5 LED顯示模塊
點陣數據串列輸入, 器件為 移位寄存器TPIC6B595595, 門控和掃描信號常以16 點陣為一行進行並行處理。在點陣顯示中以4×8個L ED 點陣構成一個L ED 顯示單元, 採用行共陽列共陰的編排方式。其驅動分為行列兩部分, 分別來自於行、列移位寄存器, 行數據是掃描數據, 16 行中每次只有一行被驅動, 採用逐行掃描方式, 列數據則為漢字的點陣碼。。對於字元和圖形顯示也可以用點陣處理, 其顯示原理和方法相同.電路如圖6
圖6 LED顯示電路
4.6電源選擇:
200W/5V的直流穩壓電源更加安全電路圖如圖7
圖7 電源電路
4.7 PC機通訊
MAX232是標準的串口通信介面,對於一般的雙向通訊,只需要使用串列輸入口RXD(第3腳)、串列輸出TXD(第2腳)和地線(第7腳)。MAX232邏輯電平的規定如表2.
表 2 邏輯電平表
邏輯值 電平幅值 (v)
0 3+~+15
1 3-~-15
圖8 串口通訊
4.8整體電路
系統整體電路如下:
圖9 整體電路
5、系統軟體設計
5.1主程序如圖10
5.2顯示子程序流程如圖 11
5.3 顯示時間子程序流程如圖12
圖12 時間子程序流程圖
5.4 與PC串口通訊程序
5.5 LED亮度調節
圖 14 LED亮度調節
5.6溫度測量流程圖如圖15
圖15 溫度測量程序流程圖
6、測量及其結果分析
6.1 基本部分測試與分析
6.11 測試儀器:
秒錶 、溫度表、萬用電表、WAVE模擬器
6.12基本要求部分的測試與分析:
(1)系統上電後,全屏點亮,沒有暗點。接著顯示時間。按「#」鍵後時掃描鍵盤,當有1~10鍵按下時,分別顯示十段設定的數字、英文或漢字。
(2)顯示時間時通過與秒錶對比,測試的系統時間准確。
6. 2 發揮部分測試與分析:
(1) 當按下#後在按下進入亮度調節,按下「+」鍵時,亮度增加。按下「—」鍵時,亮度變弱。
(2) 可以實現文字左右移動
(3) 按下「設置時間」鍵,觀察到「鍾表」 二極體點亮,此時可對時間進行設置。按下「時間設置「進入時調試,按「+」鍵時間加。在按下「切換」鍵時,進入分調整模式,按下「+」鍵,分增加。按下「選擇」鍵時,分調整模式改為秒調整模式,按下「+」鍵秒增加。經測試該步可以很好的實現。調整時間完畢後,再按一下「鬧鍾設置」進入鬧鈴設置狀態,按下「+」鍵設定「時」增加,在按下「選擇」鍵進入分的設置,按下「+」鍵設定「分」增加。在按下「選擇」鍵進入秒設置模式,按「+」鍵秒增加。
(4)系統可以顯示10組,每組8個漢字,完成要求
6.3 創新部分測試與分析
(1)溫度測量: 鍵盤切換現場環境溫度顯示:按「功能」鍵選擇「溫度」,將溫度感測器和溫度計放入不同的測試環境中進行測試,結果如表1所示。
表1 與標准溫度計測量值比較表
溫度計示值(攝氏度) 10.3 25.2 49.7 70.1 85.5
溫度輸出(攝氏度) 10 25 50 70 86
由測試知,數字鍾的輸出與溫度計值基本上相等,誤差不大於0.5度。
(2) 當到設定時間時,開始訪一段音樂,完成定時鬧鈴功能。
(3)當用手遮擋光電感測器後,停止放音。手拿開後,不再放音,直到到設定時間。完成非接觸止鬧功能
7、設計總結
全心准備了整整一個酷暑,9月8日我們終於拿到了試題,我們一致選擇控制類題目A(LED點陣),從基本方案的制定,在到硬體電路的選擇,到製作電路製作,最後進行程序調試。在此期間我們遇到很多困難,幾乎沒有說過一次好覺,盡管很艱苦,但是我們各自分工,相互協作,一次又一次品嘗到了解決問題的喜悅,最終完成了要求的全部功能,並加入了一些創新的部分。在競賽中我們發現了自己知識的不足,通過四天三夜的奮斗,也可以說四天三夜的學習,我們學到了很多東西,最重要的是我們學會了一種精神————永不放棄。在以後的時間裡面我們會用這種精神去學習,更上一層樓。
8、參考資料
[1]《基於單片機結構的智能系統設計與實現》 沈紅衛 編 電子工業出版社
[2]《單片機原理與介面技術》 黃惠媛 編 海洋出版社
[3]《單片機應用技術》 周平 伍雲輝 編 電子科技大學出版社
[4]《8051單片機實踐與應用》 吳金戌 沈金陽 郭庭吉 編 清華大學出版社
[5]《電子設計競賽賽題解析》 黃正謹等編 東南大學出版社
附錄:
例:整屏四個字一起顯示的程序
SER EQU P1.0 ; TPIC6B595 第3腳
OE EQU P1.1;TPIC6B595 第8腳
RCK EQU P1.2;TPIC6B595 第12腳
MR EQU P1.3;TPIC6B595 第9腳
SRCLK EQU P1.4;TPIC6B595 第13腳
ORG 0000H
LJMP MAIN
ORG 0100H
;**************************主程序**********************************
MAIN: MOV SP,#70H
SETB OE
MOV 2BH,#00H
MOV 27H,#00H
START: ;初始化寄存器RAM單元
MOV R0, #30H
MOV R1,#64H ;30H~6FH單元清零
MOV A, #00H
ST: MOV @R0,A
INC R0
DJNZ R1,ST
;2Dh------定址偏址 ;整屏四個字一起顯示
LOOP:MOV DPTR,#TAB;賦查表初值
MOV R3,#56
PLAY: MOV 2DH,#00H
MOV 2FH,#10H
GG: LCALL LINE16;掃描顯示一次
MOV 2DH,#00H
DJNZ 2FH,GG
MOV A,DPL
CLR C
ADD A, #16
MOV DPL ,A
MOV A, DPH
ADDC A ,#00H
MOV DPH, A
DJNZ R3,PLAY
SJMP START
LINE16: MOV 2BH,#16;掃16行,2BH放後還剩幾行
FF: LCALL LINE1;掃描顯示一行子程序
DJNZ 2BH,FF;掃描行直到16行掃完再轉
RET
LINE1:LCALL MSTR;將顯示的內容移入內存單元
LCALL SEND;發送串口子程序
LCALL XH;選通行子程序
RET
MSTR: ;顯示內容移入內存單元
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
;$$$$$$$$$$$$$$$$$$$$$$$$$$$發送數據到串口子程序$$$$$$$$$$$$$$$$$$$$$$$$$
SEND:MOV R0,#30H
MOV R5,#8 ;一行有8個位元組,如每次顯示字數不同要作相應改動
SETB OE
SETB MR
CLR SRCLK
CLR RCK
SETB P1.6
SETB P1.7
LQ: CLR C
MOV R2,#8
MOV A,@R0
; CPL A ;TPIC6B595應該不用這一步
LCALL DD1;調用顯示一個位元組的子程序
INC R0;指向下一個顯示單元
DJNZ R5,LQ
RET
DD1: CLR SRCLK;清串列CP端
RLC A;
MOV SER,C
SETB SRCLK ;觸發串列CP端
DJNZ R2,DD1;每個位元組移8次夠了向下執行
RET
;選通行子程序
XH: CLR RCK ;將輸出CP變成低電平為上升沿做准備
NOP
SETB RCK
CLR P1.6
;CLR P1.7
MOV A,27H
MOV P0,A
CLR OE
LCALL DE25MS
INC A
SETB OE
SETB P1.6
MOV A,27H
ANL A,#0F0H
SWAP A
ADD A,#01H
SWAP A
MOV 27H,A
CLR MR
SETB MR
RET
DE25MS: MOV R5,#09H
DEL2: MOV R6,#0FH
DEL3: MOV R7,#01H
DJNZ R7,$
DJNZ R6,DEL3
DJNZ R5,DEL2
RET
TAB:
字型檔
END