1、按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,題目,:21,點撲克牌遊戲,組員,:58790008,張靜怡,58790023,陳振倫,製作動機,先前的專題就是使用,VB,程式撰寫遊戲,現在又是使用,VB,與,AVR,程式撰寫遊戲,撰寫遊戲的方面也是使用到圖形呼叫跟一些變數的轉換,只是這次的專題使用到,VB,跟,AVR,的串列傳輸,我覺得也是這次實驗的重點,所以我們才選定大家都會玩的,21,點撲克牌遊戲來做專題的主題,而主要的目的是運用,AVR,來控制,VB,的遊戲進行。,操作方法,(,一,),遊戲開始,,AVR,開始動作,,VB,處於等待,AVR,的按鍵訊號,
2、AVR,上有六個按鍵可使用前三個按鍵是,A,的押分,,B,的押分,清除分數鍵,(,退幣,),,這三個件都是純粹在,AVR,進行,然而後面的兩個按鍵是,AVR,與,VB,訊號的連結,分別的功能是,A,的要牌與,B,的要牌,當任何一方需要牌時,按下按鍵,AVR,的按鍵,,AVR,就會經串列傳輸給,VB,訊號,,A,與,B,要牌的訊號不同,所以經由,VB,判斷可以知道是那一方需要牌。,操作方法,(,二,),當,VB,接收到任何一方要牌的指令時會判斷是否是第一次的要牌,如果是第一次要牌的話,,VB,會給要牌的一方兩張牌,然後,VB,會判斷牌組的數目,如果牌組的數目超過,21,點的話,則判斷另一方為勝
3、方。,當遊戲結束的時候,由,VB,判斷之後結束,而最後一個按鍵是重新開始遊戲的按鍵。,遊戲規則,遊戲必須有兩個人才能開始,然而,A,與,B,的金額都必須有數目,(,需要投幣,),,,A,與,B,的押分都必須大於,10,分以上,(,一次押分為,10,分,),然後進行遊戲,遊戲進行時不能在加注,到遊戲最後判斷輸贏以後,勝的一方將敗的一方所有的金錢歸為自己的,並且等待另一方投幣,(,另一方有押分,),才再進行第,2,次的遊戲,也可以使用退幣鍵跟結束鍵來結束遊戲。,使用材料,7448*4:7448,是,AVR,控制七字節的元件。,AT90S4414:,為,AVR,的訊號運算中心,,也是電路的主體。,I
4、C232CPE:,是作為,AVR,與,VB,傳輸訊號的重要元件,,不管,AVR,傳送資料與接收資料都必須經過,IC232CPE,。,七字節*,4:,作為遊戲金額的顯示器,。,按鍵*,6:,遊戲押分、訊號、遊戲結束的輸入。,電路圖,(,一,),成品圖,所遭遇到的困難,(AVR),開始撰寫,AVR,程式的時候,,7448,控制的方面一開始也因為程式的關係,常常會產生亂碼的顯示,再來是串列傳輸的部分屬於比較不熟悉的地方,所以再開始測試的時候無法傳送資料,而,AVR,在接收資料方面也有問題,起初在程式接收,VB,的資料後就會產生當機的情形,但是在最後都一一解絕。,所遭遇到的困難,(VB),因為我們專題
5、主要的作判斷的地方在,VB,,而且,VB,幾乎完全都要接受,AVR,的控制,在傳輸與接收資料的方面,因為一開始的時候,AVR,的傳輸跟接收不能使用,使得,VB,再一開始的時候只有先撰寫判斷方面的程式,,VB,的亂數產生與定義排組的方面比較順利,但是也因為撲克牌的數目跟花色有時候會產生錯亂,最後是呼叫圖形的部分,因為不懂的使用陣列的方式呼叫牌組,所以就將一張張牌分別訂定大小分別經過程式的判斷顯示牌組,所以在圖形的製作上也相的的費時。,所遭遇到的問題,(,硬體,),雖然有接腳圖與,AVR,的使用電路圖,但因為電容與震盪器的型號接錯,使的串列傳輸的硬體部分掛掉,而在,IC232CPE,的方面一開始因
6、為自己笨,所以一值將訊號的接收與傳送的方面的硬體部分一直沒辦法使用。,問題解決,(AVR),我先在程式規劃,AVR,,宣告,PORTB,跟,PORTC,作為輸出的部分,,PORTD,為輸入的部分,利用程式的輸入判斷使,PORTB,跟,PORTC,經過,7448,分別輸出,傳送與接收的方面,傳送由按鍵直接傳送給,VB,,傳送分別為,A,與,B,的傳送,因為傳送的值不同,所以在,VB,可經由判斷來控制,而接受的部分使用中斷的方式判斷是否有資料從,VB,方面傳送過來,將值利用,PUCH,與,POP,記憶起來,,在判斷是不是完全收到資料,,在將所得到的資料判斷結果顯示在七字節上,這樣大致,AVR,的問
7、題都解決了。,問題解決,(VB1),當,AVR,傳值過來時,利用數值來判斷是,A,或,B,要牌的訊號在給予牌組,接收的方面先利用阿剛所給的測試程式測式是否傳送與接收正常,,VB,也經過程式判斷接收資料,(AVR,只傳送一筆資料,),,在亂數的方面,,VB,有提供函數使用,使用的方法我大概先將花色跟數目定義再經過兩次的亂數取得花色與數目在經過程式判斷呼叫所對應的圖片顯示,在,VB,也同時判斷輸入的訊號是否是第,1,次所傳送的資料,如果是第一次所接收到的資料會牌組給予兩張牌,第二次接收資料後便會只給一張牌,並且牌組最多的牌數只有五張牌。,問題解決,(VB2),在圖形呼叫的方面,將圖形分別出來以長,
8、95,、寬,70,的大小截取出來,並依亂束產生的花色與數目判斷是,52,張圖片中的哪一張,並呼叫該張圖片顯示。原本預定使用的陣列方法,因為需要判斷圖片座標跟取圖的大小等其他的變數使用,因為變數運用的方法看不太懂,所以採用比較簡單的方法取圖。,解決問題(,硬體,),硬體在,IC232CPE,的方面必須使用,22uF,的電容並且,AVR,傳送的腳位必須透過,232,傳送至,VB,,反之,VB,傳送必須接至,IC232CPE,接收腳位,震盪器選用,4MHZ,,在使用,470uF,的電容作為電壓的穩壓部分,這樣硬體方面的問題大致上都可以解決。,心得報告,1,在,AVR,寫判斷的時候,因為只需要判斷,A
9、與,B,的押分金額跟結束後集合所有金錢在贏的那一方,所以開始在,AVR,判斷的時候還算順利,接下來的串列傳送部份,因為我再判斷第四個按鍵,(A,要牌,將,A,訊號給,VB),跟第五個按鍵的,(B,要牌,將,B,訊號給,VB),,因為傳送的值不同,所以沒有用到中斷的地方,在接收的方面因為不知道程式什麼時候會接收,VB,的資料,所以我改用中斷的方式接收資料並且由,VB,傳回來的值,判斷傳回來的值決定,A,與,B,哪一方面贏,在將金錢顯示。,心得報告,2,在,VB,接收的時候,必須寫一個判斷值的程式來判斷是,A,或者是,B,要牌的訊號再加以給牌,在亂數產生的部分只要詳細看清楚使用方法就可以使用,VB,內建的亂數產生函數,(Randomize),,圖形的部分因為使用相對函數呼叫,(,一張牌的固定的花色與數目,),,所以呼叫圖片還算簡單,不過建議以後的學弟利用陣列呼叫圖片,這樣真的比較方便也可以省下製作圖形的時間。,






