国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單片機(jī)的電子棋盤

2015-05-30 15:12焦嬌李樹平
科技創(chuàng)新與應(yīng)用 2015年32期
關(guān)鍵詞:單片機(jī)

焦嬌 李樹平

摘 要:文章設(shè)計(jì)了一種基于單片機(jī)實(shí)現(xiàn)的觸摸棋盤,棋盤的硬件單元包括電源電路、晶振電路、復(fù)位電路、按鍵掃描電路、LED顯示電路和ARM微控制器電路。采用了循環(huán)動(dòng)態(tài)顯示電路,耗材達(dá)到最少,設(shè)計(jì)可靠,具有最佳節(jié)能的優(yōu)點(diǎn),該棋盤能夠穩(wěn)定顯示結(jié)果,基本模擬出了無子棋盤的特點(diǎn),運(yùn)行狀況良好。

關(guān)鍵詞:觸摸;動(dòng)態(tài)掃描;單片機(jī)

Abstract: in this paper, a touch board based on MCU, the board of the hardware unit including power supply circuit, crystal circuit, reset circuit, keyboard scanning circuit, LED display circuit and arm micro controller circuit is designed. The use of circular dynamic display circuit, supplies to reach at least, the design is reliable, with the best energy saving advantages, the board can be stable display results, the basic simulation of the sub board characteristics, running a good condition.

Keywords: touch; dynamic scanning; single chip microcomputer

1 概述

采用觸摸設(shè)計(jì),采用紅外對(duì)管與MCU的AD轉(zhuǎn)換口相連,通過動(dòng)態(tài)掃描采集AD值,從而進(jìn)行判斷是否落子,內(nèi)部集成時(shí)鐘芯片,濕度傳感器,溫度傳感器以及RC外部震蕩電路,使步時(shí)記錄更加精準(zhǔn)且掉電可保留,使用IIC協(xié)議鏈接各各功能模塊,液晶顯示濕度,溫度以及步時(shí),呼吸燈設(shè)計(jì)時(shí)尚新穎,且可免去切換顯示的麻煩,由于集成時(shí)鐘芯片,本作品可充當(dāng)電子萬年歷,掉電不丟失數(shù)據(jù)。多色點(diǎn)陣LED拼接底部顯示模塊,方便快捷且更換靈活同時(shí)易擴(kuò)充。

2 確定開發(fā)系統(tǒng)

AVR Studio IDE、匯編編譯器 ATMEL AVR Studio集成開發(fā)環(huán)境,集軟硬件仿真、調(diào)試、下載編程于一體。ICC AVR C編譯器,市面上地教科書使用它作為例程的較多,集成代碼生成向?qū)?,雖然它的各方面性能均不是特別突出,但使用較為方便。ATman AVRC編譯器支持多個(gè)模塊調(diào)試,CodeVision AVRC編譯器與KeilC51的代碼風(fēng)格最為相似,集成較多常用外圍器件的操作函數(shù),集成代碼生成向?qū)В熊浖K。

3 工作原理

最常見的鍵盤布局如圖1所示。一般由16個(gè)按鍵組成,在單片機(jī)中正好可以用一組端口實(shí)現(xiàn)16個(gè)按鍵功能,這也是在單片機(jī)系統(tǒng)中最常用的形式,4*4矩陣鍵盤的內(nèi)部電路如圖2所示。

4 電路的軟件設(shè)計(jì)

4.1 棋盤數(shù)據(jù):m_data

這是一個(gè)以4*4的二位數(shù)組,用來保存當(dāng)前棋盤的落子數(shù)據(jù)。其中,1表示落黑子,0表示落白子,-1表示無子。

4.2 清空棋盤:Clear

每一局游戲開始的時(shí)候都需要調(diào)用這個(gè)函數(shù)將棋盤清空,就是所謂的棋盤的初始化工作。這個(gè)函數(shù)主要將m_data中每一個(gè)落子位置都變?yōu)闊o子狀態(tài)。

4.3 初始化操作:Init

初始化操作包括以下步驟:(1)初始化所有的獲勝組合。(2)如果是計(jì)算機(jī)先走,則占據(jù)棋盤正中央的位置。

4.4 繪制棋子:Draw

他根據(jù)參數(shù)給定的坐標(biāo)和顏色繪制棋子。繪制的詳細(xì)過程如下:(1)將給定的棋盤坐標(biāo)換算為繪圖的像素坐標(biāo)。(2)根據(jù)坐標(biāo)繪制棋子位置圖。(3)如果先前曾下過棋子,則利用R2_NOTXORPEN將上一個(gè)繪制棋子上的最后落子指示矩形擦除。(4)在剛繪制完成的棋子四周繪制最后落子指示矩形。

4.5 左鍵消息:OnLButtonUp

作為棋盤唯一響應(yīng)的左鍵消息,也需要做不少的工作:(1)如果點(diǎn)擊時(shí)的鼠標(biāo)坐標(biāo)在合法坐標(biāo)(0,0)-(3,3)之外,亦禁止落子。(2)如果走的步數(shù)大于1步,則允許悔棋。

4.6 繪制棋盤:OnPaint

(1)裝載棋盤位圖并進(jìn)行繪制棋盤。(2)根據(jù)棋盤數(shù)據(jù)繪制相應(yīng)棋子。(3)繪制最后落子指示矩形。

4.7 勝負(fù)的判斷:Win

這是游戲中一個(gè)極其重要的算法,用來判斷當(dāng)前棋盤的形勢(shì)是哪一方獲勝。

4.8 悔棋操作:Back

5 結(jié)束語

今后做進(jìn)一步的完善,讓此系統(tǒng)變成一個(gè)界面好、使用方便、可靠性好、存儲(chǔ)量大,而且成本低、壽命長(zhǎng)的系統(tǒng)。

參考文獻(xiàn)

[1]崔永紅.C++面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:北京大學(xué)出版社,2005.

[2]鄭莉,董淵.C++語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2011.

[3]埃克爾(BruceEckel),ChuckAllison,劉宗田,袁兆山.C++編程思想[M].北京:機(jī)械工業(yè)出版社,2011.

[4]劉銳寧,宋坤.VisualC++從入門到精通[M].北京:清華大學(xué)出版社,2010.

[5]王豐,高光金.VisualC++6.0程序設(shè)計(jì)教程與實(shí)訓(xùn)[M].北京:北京大學(xué)出版社,2005.

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
基于單片機(jī)的層次漸變暖燈的研究
基于單片機(jī)的多功能智能插排
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)