關于這次光電設計,由于電梯模擬器的主控電路與外部設備的聯系不是太密切,因此為了提高效率,將該系統會分為兩個子系統,在PROTEL99se軟件中建立了兩個項目分別為MyDesign和tt518。兩PCB板主要通過排線進行連接。 在設計過程中,一大難點是信號的采取與放大,在本小組的設計方案中,原本只是準備在電梯上安裝一個傳感器,而且經過理論與實踐的分析可知,這種設計方案是可行的,可是為了提高可行性,在本設計中依然留了4個傳感器的接口,以防實驗的失敗。 由于,在實驗中,st168的輸出電壓可達4V以上,無放大的必要,而且暗電流引起的輸出電壓很小,可忽略不及,以及在實驗過程中,噪聲很小,因此將傳感器的輸出電壓信號直接經過施密特觸發器處理后可達5V,完全符合設計的要求。 電梯模擬器最大的特點是外部設備極多,光LED就有10多個,鍵盤有12個。為了節約單片機有限的的外部接口資源,我們小組將LED進行分組處理,形成“七段數碼管”,而且可用動態掃描的方法進行處理。而對于眾多的鍵盤,通過形成矩陣的方法進行處理,這樣只需7個接口即可完成12個按鍵的接入。
實驗報告(論文):
設計題目 模擬電梯控制器 目錄摘要(150字左右)...................................................................................................... 3 技術指標......................................................................................................................... 4 工作安排......................................................................................................................... 4 基本原理......................................................................................................................... 5 方案論證......................................................................................................................... 7 硬件電路設計................................................................................................................. 9 軟件設計....................................................................................................................... 13 結論............................................................................................................................... 14 心得體會....................................................................................................................... 14 參考文獻....................................................................................................................... 15 附錄............................................................................................................................... 16 程序流程圖................................................................................................................... 16 重要程序段................................................................................................................... 20 元器件清單................................................................................................................... 27 本設計的電路原理圖、印制板圖............................................................................... 29 摘要(150字左右)在《電子系統課程設計》中,我們了解了電子電路的基本設計過程,以及基本掌握protel99軟件的使用。本實驗在《電子系統課程設計》之后進行,主要是為了進一步培養我們構建系統的綜合能力。本實驗是設計一個基于單片機的小型光電系統---模擬電梯控制器。我們需要根據設計題目和技術指標,從工程設計和實用化的角度出發,進行電子線路的方案論證、元器件選擇、成本核算、系統優化、原理圖繪制、制板圖繪制、設計文檔整理、設計報告撰寫等。技術指標系統的實際要求:1. 采用51系列單片機2. 采用直流電機驅動 3. 采用光電方法實現樓層精確對位4. 采用鍵盤模擬電梯樓層選擇(1/2/3/4,運行方向,關門、開門)5. 采用直流電源供電系統的實際參數:供電電壓:5V單片機(C8051F310)工作電壓:3V電梯定位精度:0.5cm±0.5us*V外部晶振工作頻率:24MHz電機型號: 產品名稱: | 5V直流電機(6500轉) | 產品型號: | 5V6500 | 模擬器高度:4層 工作安排組長:歐陽兵組員:夏兵兵、伍岳、王皓具體任務安排如下,核心板原理圖的繪制:王皓控制板原理圖的繪制:伍岳核心PCB板的繪制:歐陽兵、夏兵兵控制PCB板的繪制:夏兵兵、歐陽兵顯示程序編輯:伍岳鍵盤讀入程序撰寫:夏兵兵主程序撰寫及系統的級聯與調試:歐陽兵程序流程圖的繪制及其他:王皓基本原理在本實驗中,電梯模擬器外部結構圖如下圖所示,共有4層,分別編號為1,2,3,4。采用電機驅動電梯箱體的上升與下降等操作,當電機正向旋轉的時候,電梯保持上升狀態,當電機反向旋轉的時候,電梯保持下降狀態,而當電機停止轉動時,電梯也保持靜止狀態。由于電機不具備自鎖功能,即在一定的確定電壓下保持靜止狀態,因此要在物理上采用某種措施保證電機上述功能的順利實現。經查閱相關的資料,我們發現可以利用蝸桿渦輪傳動系統來實現,見下圖,這就是利用阿基米德蝸桿的蝸桿傳動,它具有傳動平穩,振動、沖擊和噪聲均很小,而且可獲得較大的傳動比,更重要的是當蝸桿的導程角小于嚙合輪齒間的當量摩擦角時,機構具有自鎖性。
本實驗要求電梯能夠實現精確的定位功能,可使用ST168反射式觀點探測器來實現(如圖所示安裝在墻面上)。其原理示意圖如上圖所示。
關于系統的顯示部分,在電梯內有一個七段數碼管用于顯示電梯當前所處的樓層數,有四個發光二極管用于分別顯示目的樓層數如左圖右邊所示 在每個樓層的電梯入口處均安裝有發光二極管,其中一樓安裝一個,用于響應選擇上升按鍵,四樓有一個用于響應選擇下降按鍵,二樓和三樓各有兩個,分別響應上升和下降按鍵。 關于外部控制系統,采用了12個按鍵,其中分布為:電梯內共有六個,兩個用于控制電梯的開門與關門,其余均用于選擇目的樓層,電梯外則是和發光二極管的分布一樣。單片機通過對光電探測器的數據讀取電梯當前所處的位置信息,然后通過按鍵讀入相關的控制信息,經過單片機的處理,最后通過I/O端口輸出信號,控制電機的轉向,來達到控制電梯運行的目的。
各模塊間的簡單關系框圖為:
方案論證單片機:本實驗采用了新華龍電子有限公司的C8051F310單片機。其關鍵的系統參數為: 高速8051 微控制器內核 − 流水線指令結構;70%的指令的執行時間為一個或兩個系統時鐘周期 − 速度可達25MIPS(時鐘頻率為25MHz 時) − 擴展的中斷系統 存儲器 − 1280 字節內部數據RAM(1024+256) − 16KB(C8051F310/1)或8KB (C8051F312/3/4/5)FLASH 存儲器; 可在系統編程,扇區大小為512 字節 數字外設 − 29個端口I/O;所有口線均耐5V 電壓 − 硬件增強型UART、SMBus 和SPI 串口 − 4 個通用16 位計數器/定時器 − 16 位可編程計數器/定時器陣列(PCA),有5個捕捉/比較模塊 − 使用PCA或定時器和外部時鐘源的實時時鐘方式 時鐘源 − 內部可編程振蕩器:24.5MHz,±2%的精度,可支持無晶體UART 操作 − 外部振蕩器:晶體、RC、C、或外部時鐘 − 可在運行中切換時鐘源,適用于節電方式 因此,在本實驗中,C8051F310完全能滿足技術要求。 ST168:由于在本實驗中,對信息的采集要求的復雜性較低,而具有開關式輸出的光電傳感器即可滿足要求,而且成本較低。 在實驗中,ST168的輸出電壓可達4V以上,無放大的需要,暗電流引起的輸出電壓很小,可忽略不計。而且在實驗過程中,噪聲很小,為進一步提高信噪比,將模擬信號直接轉化為數字信號,可以將傳感器的輸出電壓信號直接經過施密特觸發器處理后傳送給單片機,其電壓幅值可達5V,完全符合設計的要求。 由于ST168光電傳感器對黑白顏色敏感,因此在實驗中主要利用該特性。將電梯外部涂成黑色,在中間留一白色區域(寬度在1cm左右即可,在實際生活中可適當加寬,以減少噪聲的干擾,提高系統的可靠性),或者將電梯外部涂成白色,在中間留一黑色區域。一般情況下,信號區域越小精度越高,但受噪聲影響也會越大,在本實驗中采用1cm。 按鍵與發光二極管:由于本實驗中需要使用13個按鍵(其中1個用于手工復位,其余均用于信號輸入),而需要1個七段數碼管和11個發光二極管(其中1個用于上電顯示,其余均用于信息的顯示),而C8051F310只有29個I/O端口,因此,不能采用將按鍵和發光二極管直接連接到單片機上。 可以采用矩陣等其他方法方法解決端口緊張的問題:(1)按鍵采用矩陣的方式,3*4的鍵盤矩陣即可實現利用7個I/O端口控制12個鍵盤的數據讀入任務。(2)關于大量的發光二極管的顯示問題,可以利用七段數碼管動態顯示的工作原理,將物理上分離的發光二極管在邏輯上鏈接成1七段數碼管,如本實驗中共采用了11個I/O端口,理論上最多可以連接21個發光二極管(相當于3個七段數碼管,其中7個I/O端口用于數據的傳輸,3個I/O端口用于七段數碼管的片選信號)和一個七段數碼管。 硬件電路設計硬件I/O端口資源的分配:P2口用于數據輸出;P0.2、P0.3用于外接時鐘信號的輸入;P0.0、P0.1、P0.4、P0.5、P0.6、P0.7、P1.7用于讀取鍵盤信號;P1.0用于電機驅動器使能端控制;P1.1、P1.2用于控制電機的運動狀態;P1.3、P1.4、P1.5、P1.6用于光電探測器的數據讀入任務;P3.2、P3.4、P3.4用于控制板中發光二極管發光組的選擇;file:///C:\Users\huqin\AppData\Local\Temp\msohtmlclip1\01\clip_image002.gif/C2CK用于復位和調試;P3.0、P3.1預留端口,用于實現電梯門的開關。 硬件子系統的劃分(根據PCB板來劃分):由于本實驗要求使用兩塊PCB板來實現,分別為核心板和控制板,控制板用于鍵盤信息的讀入和信息的顯示,核心版主要用于信息的處理。因此為了提高效率,將該系統會分為兩個獨立子系統,在PROTEL99se軟件中建立了兩個項目分別為MyDesign和tt519,由不同的同學來完成。最后,兩PCB板通過排線連接,進行系統的整合。 對系統進行功能模塊劃分,可分為以下幾個部分: 電源電路,由于本實驗中的大部分IC芯片的供電電壓均為+5V,因此本實驗系統采用+5V的電源供電。但是單片機的供電電壓為+3V,不能直接將單片機直接接到+5V的供電電源上。需要設計一專門的供電系統為單片機供電。其供電電路圖如下圖所示。主要是利用了LM2937將+5V電源轉換為+3V的電源。為獲得穩定的供電系統,電路中設計了大量的電容,減小電源的噪聲對系統的影響。 鍵盤電路的設計,如下圖所示 其原理為: (1)首先判斷是否有按鍵按下。其方法是使所有的行輸出均為低電平,然后讀列向輸出,如果沒有鍵按下,則讀入的列值均為1,否則會有值為0 (2)去除鍵抖動。若有按鍵按下,則延時5~10ms,再一次判斷有無鍵按下,如果此時仍有鍵按下,則認為鍵盤上有一個鍵處于穩定閉合狀態。 (3)若有鍵閉合,則求出閉合鍵的鍵值。求鍵值的方法是對鍵盤逐行掃描。先是SW1=0,,然后讀入列值,看其是否全為一,若等于,則說明該行無鍵按下。再對下一行進行掃描,若有一個值為0,則為0的該行該列的鍵被按下。
電機驅動電路,對于小功率的5V6500直流電機,本實驗采用了L293驅動芯片,驅動電路采用了德州儀器公司推薦的H橋驅動電路,其電路原理圖如下圖所示。當使能信號為低電平時,電機處于關閉狀態,當其為高電平時,電機處于開啟狀態。此時,當1A=0,2A=1時,電機右轉;當1A=1,2A=0時,電機左轉;當1A=1,2A=1時,電機靜止。
復位電路,由于傳統的復位電路是通過采用一個高電平使單片機復位,但是C8051f310對低電平有效。因此不能采用傳統的復位電路。采用如下圖所示的復位電路,當按鍵斷開時,由電源VDD提供一高電平,當按鍵按下時,電容C6、C7會被短路,此時由電源提供的高電平會被下拉成低電平,從而會使單片機發生復位。
外部晶振電路,采用傳統的時鐘信號接入電路,如上右圖所示。 顯示控制電路,由于本系統中需要處理大量的發光二極管,因此采用如下圖所示的方法,利用動態掃描的工作原理。將發光二極管分成兩組,和七段數碼管并聯接入鎖存器中,通過單片機輸出的控制信號控制DIG0、DIG1、DIG2,從而達到選擇相應的發光二極管組獲得發光能力的目的。例如,當DIG0=DIG1=1、DIG2=0時,只有D7、D8、D9處于開啟狀態,對于其他發光二極管,無論所存其中所存的是什么數據均不會發光,此時,a,b,c的狀態控制著D7、D8、D9的實際狀態,只有等于1時,相連接的發光二極管才會發光。
軟件設計在軟件部分,為使盡可能多的同學有機會親自寫源代碼,我們將系統劃分為幾個組成部分,主要分為:鍵盤讀入部分,顯示部分,延時部分和核心主程序。其中鍵盤讀入部分主要是完成外部控制參數的讀入部分,包括目標樓層的選擇和進入電梯等;顯示部分主要完成顯示當前系統所處的狀態,比如點點當前所處的樓層數,按鍵是否有效地被單片機讀入等;延時部分主要是為了實現在電梯到達目標樓層時候有一短暫的時間停留,便于乘客的上下,以及繼續實現鍵盤的讀取與顯示任務;核心程序段主要是完成系統的資源再分配、電梯運行算法的具體實現以及系統的其他程序段的連接與使用工作。 由于鍵盤讀入部分只是向相關的寄存器中寫入數據,數據的讀入由核心主程序執行,因此在資源利用方面,并不存在沖突,因此這三個部分是相互獨立的,所以只要三個部分沒有錯誤,在一起調試的時候不會出現因資源的不合理利用而導致程序編譯的失敗。 在本系統的軟件設計中主要用到的資源有:寄存器A,CY用于數據比較,R1、R2用于實現延時程序部分,R3用于保存樓層中按下的按鍵是上升的還是下降的,R4用于保存乘客選擇的目標樓層數,R5用于保存電梯目前所處的樓層數,R6表示有人在電梯外按按鍵的樓層數,R7用于保存讀入按鍵的編號。 結論經過一個多月努力,經過多次修改,將錯誤和不是很合理的地方一一修改。我們終于順利的完成了原理圖、PCB以及程序源代碼的編輯工作。 完全實現了系統的要求,在工程上具有可行性。 1. 采用51系列單片機 2. 采用直流電機驅動 3. 采用光電方法實現樓層精確對位 4. 采用鍵盤模擬電梯樓層選擇(1/2/3/4,運行方向,關門、開門) 5. 采用直流電源供電 心得體會在這一個月的時間里,尤其是后半段的日子里是我真正成長的時光,因為我發現了自己的渺小,自己的缺陷,自己的無知,以及自己的無奈。 在這次設計中讓我自己最無語的是,我沒有很好的保存修改后的文檔,結果,把錯誤的設計提交了上去,而正確的設計卻不知所蹤!做人做到我這個地步只能用失敗這個詞語來形容。更讓我看不起自己的是,犯了不可饒恕的錯誤后居然厚著臉皮希冀能夠進入實際工程調試階段。通過這件事,我徹底的認識到,粗心會對一個人的影響有多大了。雖然這次唯一的影響是我沒有機會將我的思想實現樣品化,但是假如在以后工作中出現了類似的問題,那后果又會是怎樣呢?顯然那個厚厚實誰也不想見到的。進一步分析自己,是什么造成了自己的粗心?可能是天生的嗎?顯然這是個偽命題。是緊張!是激動!每次到關鍵時刻的時候,我總會莫名其妙的緊張起來,人會處于一種莫名的亢奮中,接著腦袋里一片空白,不知所措。因此,對于我來說,錯誤是不可避免的。綜其因素是因為我太看重結果了。而我的室友們就不會出現這些問題。 其次,在考慮問題的全面性上,還存在不足,主要體現在未能時刻記住系統的各部分的設計思想以及某些設計思想的不成熟性。比如,關于系統的復位部分,由于該部分并非本人親自實現,以至于在撰寫實驗報告時發現自己對其一無所知。因為傳統的單片機是高電平復位,但是本實驗用的c8051f310采用的確是低電平有效。對于一個系統設計師來說這是致命的,不可饒恕的錯誤。而且在某些電路的設計上,只是謀求系統的功能的實現,而未考慮系統的優化,這不僅會使系統的成本上升,還會導致系統軟件架構的復雜性,因此,其實際可行性較低。 最后,也是最重要的是,TEAM,團隊的協作。像上述提到的問題,對每個人來說多多少少總是存在的,只是每個人的體現形式和場合以及強烈程度不同罷了,是不可避免的。但是,這些問題對于一個團隊來說是不存在的,因為大家可以相互彌補大家的不足之處。可惜,本人在領導團隊上,經驗不是很豐富,導致不能及時有效的調動大家的積極性。最后只能借助提交相關報告的壓力來促使隊員們的工作。然而以前,我總是一個人單獨完成一些任務,未能體會到團隊的協作能力的重要性,也就未能就該方面進行必要的培養。 參考文獻(1)《單片微型計算機原理與應用(第二版)》胡乾斌、李光斌、李玲、喻紅主編 ,華中科技大學出版社 (2)《電子技術基礎·模擬部分(第五版)》康華光主編,高等教育出版社 (3)《電子技術基礎·數字部分(第五版)》康華光主編,高等教育出版社 (4)《PROTEL電路設計教程》江思敏、姚鵬義、胡榮等編著,清華大學出版社 (5) C8051F310/1/2/3/4/5 8/16 KB ISP FLASH 微控制器 數據手冊 潘琢金 譯 (6)ULN2003數據手冊(英文版) (7)ST168數據手冊(中文版) (8)LM2937數據手冊(英文版) (9)CD40106數據手冊(英文版) (10)L293數據手冊(英文版) (11)《軟件設計師同步教程》何光明主編,清華大學出版社
- ORG 0000H
- AJMP START
- ORG 0040H
- ;系統初始化
- START:
- MOV R3,#2 ;R3=0表示向上運行,R3=1表示向下運行,R3=2表示停止
- MOV R4,#0 ;R4表示目標層數
- MOV R5,#0 ;表示當前層數
- MOV R6,#0 ;表示有人在電梯外按按鈕的樓層數
- MOV R7,#0 ;鍵盤讀入編號
- ;讀鍵盤
- MAIN: LCALL KEYBOARD
- ;開啟顯示系統
- LCALL DISPLAY
- MOV A,P1;讀光電探測器
- JNZ ACC.3,LOU1
- JNZ ACC.4,LOU2
- JNZ ACC.5,LOU3
- JNZ ACC.6,LOU4
- SJMP JUST
- LOU1: MOV R5,#1
- SJMP JUST
- LOU2: MOV R5,#2
- SJMP JUST
- LOU3: MOV R5,#3
- SJMP JUST
- LOU4: MOV R5,#4 ;記錄當前所在層數
- JUST: MOV 40H,R5 ;比較R4和R5大小
- MOV A,R4
- CJNE A,40H,UP
- CLR P1.1
- CLR P1.2;電梯保持靜止不動
- LCALL DELAY;延時一段時間;期間,仍然執行讀鍵盤和顯示程序
- SJMP MAIN
- UP: JC DOWN
- SETB P1.1
- CLR P1.2;電梯上升
- SJMP MAIN
- DOWN: CLR P1.1
- SETB P1.2;電梯下降
- SJMP MAIN
- ORG 1000H
- DELAY: MOV R1,#0FFH
- DELAY2: MOV R2,#0FFH
- DELAY1: NOP
- ACALL KEYBOARD;讀鍵盤
- ACALL DISPLAY;顯示
- MOV R4,R6
- DJNZ R2,DELAY1
- DJNZ R1,DELAY2
復制代碼- KEYBOARD:MOV 70H,A
- MOV 71H,R1
- MOV 72H,R2
- MOV 73H,R4
- MOV 74H,R6
- MOV 75H,R7
- MOV A,#00H
- MOV 76H,#0FEH
- MOV 78H,#04H
- MOV P0,#0FEH ;掃描第一行
- KEY: MOV C,P0.6
- JC L2 ;無鍵按下,跳L2
- KEY1: ACALL D10ms
- MOV C,P0.6 ;等待按鍵釋放
- JNC KEY1
- INC A
- SJMP DONE0
- L2: MOV C,P0.7
- JC L3 ;無鍵按下,跳L3
- KEY2: ACALL D10ms
- MOV C,P0.7 ;等待按鍵釋放
- JNC KEY2
- ADD A,#05H
- SJMP DONE0
- L3: MOV C,P1.7
- JC ROUND ;無鍵按下,跳ROUND
- KEY3: ACALL D10ms
- MOV C,P1.7 ;等待按鍵釋放
- JNC KEY3
- ADD A,#09H
- SJMP DONE0
- ROUND: DJNZ 78H,AGAIN
- SJMP BACK
- AGAIN: INC A
- MOV 77H,A
- MOV A,76H
- RL A
- MOV 76H,A
- MOV P0,A
- MOV A,77H
- SJMP KEY
- D10ms: MOV R1,#27H ;延時10m子程序
- DL: MOV R2,#0FFH
- DL0: DJNZ R2,DL0
- DJNZ R1,DL
- RET
- DONE0: MOV R7,A
- CJNE A,#04H,IN
- JC IN
- CJNE A,#06H,BACK
- JC BACK
- MOV R6,#01H
- CJNE A,#07H,UP
- MOV R6,#02H
- CJNE A,#09H,UP
- JC DOWN
- MOV R6,#03H
- CJNE A,#0BH,UP
- JC DOWN
- MOV R6,#04H
- DOWN: MOV R3,#01H
- SJMP BACK
- UP: MOV R3,#00H
- SJMP BACK
- IN: MOV R4,A
- BACK: MOV A,70H
- MOV R1,71H
- MOV R2,72H
- RET
復制代碼
元器件清單Bill of Material forSheet1.Bom(核心板) Used Part Type Designator Footprint ======================= ========== ========== 4 0.1uF C2 C5 C6 C11 0805 4 1K R2 R3 R5 R6 0805 2 1uF C4 C8 0805 1 1uF C7 RB.1/.2 2 2K R1 R4 0805 1 15uF C3 RB.1/.2 1 16PIN RP1 PIN16 4 20K R11 R12 R13 R14 0805 1 25MHZ Y1 XTAL-200 1 25MMJK J1 25MMJK 1 26PIN J2 IDC-26 1 330uF C1 RB.1/.2 4 510 R7 R8 R9 R10 0805 1 620 R15 0805 1 C8051F310 U1 C8051F310 2 C C9 C10 0805 1 CD40106 U3 ILEAD14 4 DIODE D2 D3 D4 D5 0805 1 DIODE-ZENER D1 0805 1 L293 C12 DIP16 1 LED D6 LED 1 LEDBOARD10 S2 JTAG 1 LM2937 U2 SP4 1 SW-PB S12 KEY310 Bill of Material forSheet2.Bom(控制板) UsedPart Type Designator Footprint ================= ========== ========== 1 26PIN J1 IDC-26 1 74HC573 U1 DIP20 11 200 R1 R2 R3 AXAIL0.3 R4 R5 R6 R7 R8 R14 R15 R1610 LED D0 D1 D2 LED D3 D4 D5 D6 D7 D8 D91 MLED LED_7 LED_1012 SW-PB S1 S2 S3 KEY310 S4 S5 S6 S7 S8 S9 S10 S11 S121 ULN2003 U3 DIP16
基于單片機八層電梯控制系統設計的所有資料下載(包含原理圖 pcb 源碼 設計文檔 實驗報告 設計論文):
電梯模擬器設計.zip
(5.94 MB, 下載次數: 178)
2017-1-5 22:27 上傳
點擊文件名下載附件
|