freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于proteus的推箱子游戲的設計畢業(yè)論文(編輯修改稿)

2025-04-03 10:17 本頁面
 

【文章內容簡介】 15D516D617D718RST10L C D 1P G 1 6 0 1 2 8 AR11kR21kC32 2 0 u F 圖 3 復位電路 液晶顯示屏與單片機接口電路 液晶顯示屏共有 18個引腳,其中 VDD、 RST 兩腳接電源, VSS、 FS CE三腳接地, CON、 FG兩腳懸空, D0~D7 分別與單片機 ~ 相連接, WR與 腳相連, RD與 腳相連, C/D 與 腳相連,電路圖見圖 4. 控鍵、喇叭與單片機接口電路 本游戲共有 6 個控件,分別是:四個方向鍵,用于控制箱子的移動方向;一個確定鍵,用于刷新初始化界面進入游戲界面;一個選關鍵,用于選關。一個喇叭,用于按鍵發(fā) 聲,以提示按鍵是否有效,電路圖見圖 4. 控件、喇叭與單片機的接線是:上移鍵接 ;左移鍵接 ;右移鍵接 11 ;下移鍵接 ;確定鍵接 ;選關鍵接 ;喇叭經過分壓式偏置共射放大電路將信號放大再與單片機 口相連,如圖 4: P 3. 1Q12N44 0 0C122 u FR151 kR220 kR32. 7 k C222 0u FR45kC322 u FL S 1S P E A K E R 圖 4 揚聲器放大電路 至此,游戲的硬件電路結構及連線全部介紹完成,仿真電路圖如圖 5 所示,整個電路圖以網(wǎng)絡標號的形式給出,避免連線過多顯得電路擁擠。 GRWRDCDP D0D1D2D3D4D5D6D7GP3P0GP4GP1 P2P GD0D1D2D3D4D5D6D7P0P1P2P3P4CDRDRWG P5P5GSPX T A L 1X T A L 2EARSTRS TEAX T A L 2X T A L 1GSPCE7RD6C/D8VSS2VDD3CON4WR5D011FS119FG1D112D213D314D415D516D617D718RST10L C D 1P G 1 6 0 1 2 8 A上下左 右確定X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115U28 0 C5 1選關L S 1S O UN D E RX1CR Y S T A LC13 0 p FC23 0 p FR11kR21kC32 2 0 u F復位 圖 5 推箱子游戲硬件電路圖 12 3 推箱子游戲的軟件部分設計 本部分主要介紹游戲的軟件部分設計,包括液晶屏驅動代碼設計;初始化代碼設計游戲時間代碼設計;游戲關數(shù)代碼設計;游戲步數(shù)代碼設計;過關代碼設計;方向控制代碼設計;按鍵發(fā)聲代碼設計;數(shù)據(jù)表格設計等幾個方面,現(xiàn)就對這幾個方面做具體分析。 液晶屏驅動代碼設計 [5] 讀狀態(tài)程序 unsigned char Read_State()//返回液晶顯示屏的當前狀態(tài) {unsigned char a。 P2=0xff。//讀狀態(tài)之前先將數(shù)據(jù)線拉高 _CD=1。// 為指令、狀態(tài)操作條件 _RD=0。//讀操作條件 _RD=1。//為下次讀做準備 a=Pin。//將狀態(tài)保存 return a。} 是否可讀寫程序 void Enable() {while(1) //bit0 指令寫狀態(tài)位 ,bit1 數(shù)據(jù)讀 /寫狀態(tài)位 ,為 1時候空閑 if((Read_State()amp。3)==3)break。}//如果狀態(tài)的低 2為 1則可讀寫 是否可自動讀寫程序 void Aut_Write() {while(1) //bit3 數(shù)據(jù)自動寫狀態(tài)位 ,為 1時候空閑 if((Read_State()amp。8)==8)break。} //如果狀態(tài)的第 4為 1則可自動讀寫 寫單參數(shù)程序 //Data1 為傳入的參數(shù), Com 為傳入的指令;寫入順序為先數(shù)據(jù)后寫指令。 void Write_Data1(unsigned char Data1,unsigned char Com) 13 {Enable()。//判斷是否可讀寫 _CD=0。//為數(shù)據(jù)操作條件 Pin=Data1。//將數(shù)據(jù)送數(shù)據(jù)線 _WR=0。//寫操作 _WR=1。//為下次寫做裝備 Enable()。 _CD=1。 // 為指令、狀態(tài)操作條件 Pin=Com。 //將指令送數(shù)據(jù)線 _WR=0。 _WR=1。} 寫雙參數(shù)程序 // Data1/Data2 為傳入的參數(shù), Com 為傳入的指令,先 Data1 后 Data2,最后寫指令。 void Write_Data2(unsigned char Data1,unsigned char Data2,unsigned char Com) {Enable()。//判斷是否可讀寫 _CD=0。 //為數(shù)據(jù)操作條件 Pin=Data1。 //將數(shù)據(jù) 1送數(shù)據(jù)線 _WR=0。 //寫 操作 _WR=1。 //為下次寫做裝備 Enable()。 _CD=0。 Pin=Data2。 //將數(shù)據(jù) 2送數(shù)據(jù)線 _WR=0。 _WR=1。 Enable()。 _CD=1。 Pin=Com。 //將指令送數(shù)據(jù)線 _WR=0。 _WR=1。} 寫指令程序 void Write_Com(unsigned char Com) 14 {Enable()。//判斷是否可讀寫 _CD=1。 // 為指令、狀態(tài)操作條件 Pin=Com。 //將指令送數(shù)據(jù)線 _WR=0。//寫操作 _WR=1。}//為下次寫做裝 備 寫 8 字節(jié)數(shù)據(jù)程序 // Addr 表示數(shù)據(jù)首地址, Way表示寫的方式 void Write_8_Data(unsigned char Addr,unsigned char Way) {Aut_Write()。//判斷是否能自動寫 Write_Com(AUT_WR)。//自動寫開始 Write_Data1(Addr,Way)。 Write_Com(AUT_WO)。}//自動寫結束 設置數(shù)據(jù)顯示在屏幕上的坐標程序 // (以字節(jié)為單位 ),x 表示顯示的行 (0~15), y表示顯示的列 (0~19) void Set_xy(unsigned char x,unsigned char y) {unsigned int a。a=x*20+y。 Write_Data2(aamp。0xff,a8,ADR_POS)。} 設置數(shù)據(jù)存儲起始地址 void Set_Addr(unsigned char Addr1,unsigned char Addr2) {Write_Data2(Addr1,Addr2,ADR_POS)。} CGRAM 偏置地址設置函數(shù) void Set_CGRAM() {Write_Data2(1,0,CGR_POS)。} 液晶初始化函數(shù) //(文本區(qū)首地址 D1,文本區(qū)首地址 D2, 文本區(qū)寬度 , 圖形區(qū)首地址 D1, //圖形區(qū)首地址 D2, 圖形區(qū)寬度 , 光標形狀 , 顯示方式 , 顯示開關 ) void LCD_Init(unsigned char Txt1,unsigned char Txt2,unsigned char Txt_Wide, 15 unsigned char Map1,unsigned char Map2,unsigned char Map_Wide, unsigned char Guang_Biao,unsigned char Disp_Mode,unsigned char Kai_Guan) {Write_Data2(Txt1,Txt2,TXT_STP)。 Write_Data2(Txt_Wide,0,TXT_WID)。 Write_Data2(Map1,Map2,GRH_STP)。 Write_Data2(Map_Wide,0,GRH_WID)。 Write_Com(CUR_SHP|Guang_Biao)。 Write_Com(Disp_Mode)。 Write_Com(DIS_SW|Kai_Guan)。} 顯示一個漢字子程序 //x 表示顯示的行 (0~15), y表示顯示的列 (0~19),n 表示字在表格中的位置 void Han_Zi(unsigned char x,unsigned char y,unsigned char Addr) {Set_xy(x,y)。 Write_8_Data(Addr,INC_WR)。 Write_8_Data(Addr+2,INC_WR)。 Set_xy(x+1,y)。 Write_8_Data(Addr+1,INC_WR)。 Write_8_Data(Addr+3,INC_WR)。} 清屏程序 void Clear_LCD() {unsigned int a。 Set_xy(0,0)。//從最左上角開始 for(a=0。a320。a++)//清屏 320 字節(jié) Write_8_Data(0x83,INC_WR)。}// 數(shù)據(jù)寫,地址加 1 自定義字符寫入 CGROM 函數(shù) void Write_CGORM() {unsigned int a。 Set_CGRAM()。Set_Addr(0,0x0c)。 for(a=0。a992。a++)//992 字節(jié) 16 Write_8_Data(Tab[a],INC_WR)。} 設置點顯示在屏幕上的坐標 (以位為單位 ) //x 表示顯示的行 (0~127), y表示顯示的列 (0~159),n=1 表示打一點 ,n=0 清除一點 void Point(unsigned char x,unsigned char y,bit n) {unsigned char point。 unsigned int temp。 temp=x*20+y/8+320。point=0xf7y%8。 if(n)point|=0xf8。 else pointamp。=0xf7。 Write_Data2(tempamp。0xff,temp8,0x24)。 //設置寫地址 Write_Com(point)。} 畫圓子程序,其中 x0,y0 表示圓心, R 表示半徑 //先打第一象限內的 1/4 段圓弧,再依據(jù)對稱原理打出其他 3段圓弧 void Circle(unsigned char x0,unsigned char y0,unsigned R,bit n) {unsigned char i,j=0。 Point(x0,y0,n)。 for(i=0。i=R。i++) { while(1) { if(R*Ri*i=j*j)break。 j++。} Point(x0j,y0+i,n)。Point(x0i,y0+j,n)。 //第一象限打點 Point(x0+j,y0+i,n)。Point(x0+i,y0+j,n)。 //第二象限打點 Point(x0+j,y0i,n)。Point(x0+i,y0j,n)。 //第三象限打點 Point(x0j,y0i,n)。Point(x0i,y0j,n)。 //第
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1