• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2015-05-30 15:12:07焦嬌李樹平
      科技創(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ì),采用紅外對管與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ū)Вm然它的各方面性能均不是特別突出,但使用較為方便。ATman AVRC編譯器支持多個(gè)模塊調(diào)試,CodeVision AVRC編譯器與KeilC51的代碼風(fēng)格最為相似,集成較多常用外圍器件的操作函數(shù),集成代碼生成向?qū)?,有軟件模塊。

      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)前棋盤的形勢是哪一方獲勝。

      4.8 悔棋操作:Back

      5 結(jié)束語

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

      參考文獻(xiàn)

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

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

      [3]??藸枺˙ruceEckel),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)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機(jī)的多功能智能插排
      電子制作(2019年11期)2019-07-04 00:34:48
      基于單片機(jī)的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      小議PLC與單片機(jī)之間的串行通信及應(yīng)用
      電子制作(2018年12期)2018-08-01 00:48:04
      MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
      電子制作(2017年9期)2017-04-17 03:00:53
      基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
      電子制作(2017年19期)2017-02-02 07:08:27
      基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
      電子制作(2016年21期)2016-05-17 03:52:51
      Microchip推出兩個(gè)全新PIC單片機(jī)系列
      基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
      汉中市| 天柱县| 双柏县| 凤凰县| 泰宁县| 麻城市| 宣威市| 石狮市| 突泉县| 太仆寺旗| 盐津县| 白山市| 赤水市| 库伦旗| 沈丘县| 常宁市| 浦县| 华宁县| 山阴县| 建始县| 镇雄县| 汶上县| 陈巴尔虎旗| 电白县| 五寨县| 兰西县| 平舆县| 焦作市| 江华| 永靖县| 乐安县| 龙里县| 乐亭县| 吉隆县| 青铜峡市| 平罗县| 蓬溪县| 灵石县| 洛川县| 剑河县| 黄龙县|