Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-1
碼錶
950940 韓宗衛 950562 張又晟 950662 陳鎮國
簽署本報告所有內容為本組成員親自撰寫,並無抄襲有違學術倫理之行為,所有文責自負。
所有組員姓名:韓宗衛 張又晟 陳鎮國 (請打字輸入,以示負責)
一、 摘要(100 字)
用 Megawin 的 8051 當做硬體,寫組合語言並用組譯器寫入機器做出如市面碼表般的陽春功能,我
們做出具有倒數計時功能和上數讀秒並記錄三組數據之後可以切換顯示儲存的時間。可以提供對於時間
方面需要方便計算的人,如泡茶、泡咖啡、油炸、比賽、控制定時炸彈…等等。
二、 緣起(300 字以上)
在一次上課結束找到組員後,我們一起到餐廳吃晚餐順便討論專題要做什麼主題。點完餐後,我們
吃著東西一邊想著專題該做什麼。想著想著,突然有人說,大概是:單晶片可以用來實現生活中的一些
想法或解決一些問題,例如老師上課說教室的電腦螢幕可以讓老師去切換以利教學。過了一陣子,又有
人說,大概是:最近很流行節能減碳,如果人走出室外總是能馬上關掉電燈不知會省多少電?我們可以做
一個單晶片監控一個樓房每個房間是否有人,如果人一走出房間就自動關閉電燈電風扇。有人大概這樣
回,說:這做起來應該很複雜,而且某些部分超出我們的專業,做出來的結果難以預料以至於能得到分
數。我們似乎都默默認同。
之後我們提出的想法,大概都是屬於比較小挑戰性較低的的東西。為了使這些想法能夠有足夠的原
創性,我們一個一個把這些想法和歷屆的成品做比較後選出碼表暫定為我們的主題。
最後,雖然有人覺得還是不太妥,但用餐結束後到專題規畫結束之前也沒提出更好的。碼表就這樣
成為我們專題的主題了。但誰知道這和後還老師上課的題目如此相近呢?
三、 詳細系統製作介紹(包括:目標規格、硬體電路、軟體程式流程、原理解說等)
目標規格:
我們預定要達成具備以下兩種功能之碼表。並且參考 fig1 到 fig4,預期達到的結果流程圖。
1. 倒數計時裝置(功能 1)
需先設定欲執行的時間,然後按開始鍵進行倒數計時,當時間到時計時器停止。本次專題用一個小
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-2
型喇叭當範例。時間到時喇叭將不停地響。
2. 可紀錄型碼表(功能 2)
按下開始鍵及開始計時,此碼錶可紀錄三筆時間紀錄。在計時十每按一次紀錄鈕可紀錄一次時間,
當按滿三次時,計時器停止。此時按切換鈕可循環切換三筆資料。
key C key D
Fig. 1 一開機會顯示 0000,並且等待輸入 D 或 C 以選擇功能 1 或 2。
NO
Yes
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-3
Fig. 2 當選功能 1 時,會從 C 開始往下,進入編輯模式,編輯完按 F 使倒數開始。結束時喇叭會響。
Yes
No
Fig. 3 選擇功能 2 後會直接開始計時,按下 save 鍵會紀錄,按第二次會紀錄,按第三次會紀錄在停止。
Yes
No
Fig. 4 按下 A 鍵會顯示弟一筆 save 資料,再按會顯示第二筆,再按會顯示第三筆,再按會回到弟一筆持
續迴圈。
硬體電路:
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-4
我們這組沒有使用電路,主要使用的硬體為:
Fig. 5 MEGAWIN
Fig. 6 蜂鳴器。
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-5
程式流程與原理說明:
1. 程式架構
本次實驗採取課堂上,11/24 日,『七字節顯示、計時器、中斷處理、鍵盤輸入、功能鍵設定』之程
式為核心,並且利用其課堂所學與此程式主體去做修正。[1]
2. 倒數計時與 60 進位設計
此部份主要利用 T0_ISR,讓程式能夠執行每 0.1 秒跳動一次,設定 TH0 與 TL0 互乘為 15536,使其
數 50000T,並且設 4bh 為 4,利用下述公式算出秒數為 0.1 秒。
Frequency = 1/12 24MHz = 2 MHz
= 0.025 sec
0.025 (sec) x 4 = 0.1 (sec)
設計讓 p1 為 0 的用意是讓蜂鳴器能夠響。蜂鳴器正接 5V,負接 p1 其中一腳位。
T0_iSP執行0.1秒
進入下數模式,抓4ch值,取其個位數a
a=0?
設4ch為9,抓取4dh值取個兩位數a
a=0?
設4dh為9,抓取39h值個位數a
a=0?
使4c,4d為0,設p1為0
使a減1並且將4ch,4dh,39h值顯示在七段上
y
y
y
N
N
N
Fig. 7 功能 1 流程圖
3. 上數設定
本次利用 cy 奇標判斷是否進位,4ch 使其設 243 剩餘 10 的空間,4dh 使其 196 剩餘 60 空間,39h
給與 10 的空間。並且跟計時功能一樣,利用 t0_ISR 部份數 0.1 秒。
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-6
T0_iSP執行0.1秒
進入上數模式,抓4ch值並+1,使a=4ch+246
CY=1?
設4ch為0,抓取4dh值並+1,使a=4ch+196
CY=1?
設4d為0,抓取39h值並+1,使a=4ch+246
CY=1?
使a為0
y
y
y
N
N
N
Fig. 8 上數原理流程圖
4. 存取切換設定
原理主要是抓資料。每按一下 save 鍵會抓取七段顯示器裡的資料並儲存,當按滿三次時,Timer 0 停
止。由於七段顯示器有四個,由左至右需分別由 40h,41h,42h,43h。所以存一筆資料需要有四個 Buffer。
因為需要存三筆資料。所以需要有 12 個 Buffer。 故我們以 51h 到 5ch 之 Buffer 來存三筆資料。
當按下 save 鍵時
第一筆資料 : 51h 存 40h 資料
52h 存 41h 資料
53h 存 42h 資料
54h 存 43h 資料
當按下第二次 save 鍵時
第二筆資料 : 55h 存 40h 資料
56h 存 41h 資料
57h 存 42h 資料
58h 存 43h 資料
當按下第三次 save 鍵時
第三筆資料 : 59h 存 40h 資料
5ah 存 41h 資料
5bh 存 42h 資料
5ch 存 43h 資料
停止計時
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-7
當第一次按下 change 鍵時
第一筆資料 : 51h 傳資料給 40h
52h 傳資料給 41h
53h 傳資料給 42h
54h 傳資料給 43h
顯示資料到 display 上
按下 change 鍵第二次時
第二筆資料 : 55h 傳資料給 40h
56h 傳資料給 41h
57h 傳資料給 42h
58h 傳資料給 43h
顯示資料到 display 上
按下 change 鍵第三次時
第三筆資料 : 59h 傳資料給 40h
5ah 傳資料給 41h
5bh 傳資料給 42h
5ch 傳資料給 43h
顯示資料到 display 上
回到弟一筆資料型態
四、 實驗結果(包括:實驗數據、成果照片、結果與預期目標差異之詳實討論)
1. 上數部份成果展與介紹:
原本由 0 按 mode2 鍵開始計時,途中按了兩次 save 鍵,到第三次按下 save 鍵時,碼表停止了並且
顯示 fig9 圖。按下第一次 change 鍵,顯示 fig10,意指叫出第一次 save 時資料。按下第二次 change 鍵,
顯示 fig11,意指叫出第二次 save 資料。,按下第三次 change 鍵,叫出第三筆資料,如 fig12。
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-8
Fig. 9 按下第三次 save 顯示圖
Fig. 10 按下 change 顯示圖
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-9
Fig. 11 按下 change 第二次
Fig. 12 按下第三次 change 鍵
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-10
2. 外型成果展示:
Fig. 13 整體外觀
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-11
3. 結果與預期目標差異之詳實討論
本次預定結果很與之前規劃預期之目標的大致上完成率有 95%,有落差的部份為:
1. 原本預定倒數計時裝置之聲音為美妙的音樂,後來因為材料與節省空間跟金錢的因素,改採用蜂
鳴器,而蜂鳴器的尖銳聲音確實能達到提醒的效果,並沒有比較差,所以選擇它。
2. 原本想說規劃顯示用電路上接七段的方式,讓成果以電路板方式呈現,後來覺得既然是計時器,
必須要有精巧,外表好看,然而接到外面是多此一舉的,因此打消此念頭。
3. 原本計畫在倒數計時部份結束的時候利用 8X8 顯示提醒圖示,後來也是因為計時器的用途打消
念頭。
其餘部份皆是跟預期結果差不多,大概是這樣了。
五、 結論(包括:每位組員分工、實作過程、團隊合作、報告撰寫之心得,以及如何預備未來
專業知識之學習與自我期許)
1. 分工
Table 1 表格為此次分工的詳細報告
韓宗衛: 期初規劃 word 報告,期末 word 報告,mode1 倒數計時,外觀,材料採購
張又晟: 設計 mode2 碼表功能,期末 word 報告,說明書,鍵盤紙
陳鎮國: 功能整合,按鍵規劃,期末上台主講,期末 ppt 設計
Table 2 表格為此次分工進度詳細報告
2009/11/14 研討設計理念
2009/11/28 流程架構完成,並開始設計
2009/12/05 下數程式之設計
2009/12/11 整合離開編輯模式及下數鍵之功能
2009/12/18 下數程式設計完成並開始設計上數程式
2009/12/23 整合離開編輯模式及上數鍵之功能
2009/01/05 設計記錄鍵之功能並開始研發資料切換鍵功能
2009/01/12 資料切換鍵功能完成,進入外觀封裝程序
2. 實作過程與團隊合作
從 11/14 號起我們幾乎每周都找半天到一個地點討論專題並試著去寫組合語言。一開始,我們花了
一段時間討論“根據期初規劃我們做出來地成的成品應該是什麼樣子?“並想該如何從上課的例子去做
出我們想要的,最後決定是先把進位部份改成我們想要的再說。然後韓宗衛做出來了,就決定讓他做到
數計時功能。然後張又晟想到如做上數計時並記錄三筆資料的方法,就決定他做第二個功能。中間遇到
許多困難,我們互相討論和修改自己和其他組員的程式。最後兩個禮拜主要由陳鎮國去整合主程式的架
構,把兩人寫的程式整合在一起,遇到很多難解的 bug,最後還是做成功了。
3. 報告撰寫心得
這次的實驗大家辛苦了。雖然中間遇到不少困難,但都不斷的克服過去。感覺這次的課程學到不少
東西。相信這學期的實驗課對我們的實作訓練可以有相當大的幫助。
EE386 微電腦實驗 次系統專題實作期末報告 元智大學電機工程學系 2010/1/6
12-12
4. 如何預備未來專業知識之學習與自我期許
由這次專題我們認識到,讀課本和親手做出一個成果是有一段差距的。經由手去實現所動到的腦筋
遠比讀課本多,還會遇到不是課本理論上能夠預測的問題,順便釐清自己觀念不清的地方。而且一個好
的成品往往是許多人合作之後的成果,因為其他人常常會看見自己所看不見的盲點,還會想到自己想不
到的點子,希望我們往後讀書能夠注意到這一點。
六、 參考文獻(凡所參考之書籍、文章均須據實編列參照,以免侵犯著作權)
[1] 陳永盛網站下載區之『計時器、中斷、鍵盤編輯.pdf』