【正文】
b允許選擇和管理外接程序,這是對(duì)vb的擴(kuò)充,這些擴(kuò)充增強(qiáng)了vb開發(fā)環(huán)境的能力。自從1991年推出以來,vb已經(jīng)成為最為流行的編程語言之一,vb即visual basic,visual是指可視化的編程方法,basic是指在原有basic語言的基礎(chǔ)上發(fā)展起來的編程語言,visial basci繼承了basic語言易學(xué)易用的特點(diǎn)。什么是可視化的編程方法呢?采用這種編程方法,可以不必通過代碼來描述界面上元素的外形和位置,只需要把事先建立的對(duì)象拖到屏幕上,再通過鼠標(biāo)的調(diào)節(jié)他們的位置和尺寸?,F(xiàn)在有了visual basic ,即使沒有經(jīng)過嚴(yán)格的程序設(shè)計(jì)培訓(xùn),也能開發(fā)出不錯(cuò)的程序,現(xiàn)在vb已經(jīng)有了數(shù)百個(gè)語句,函數(shù)及關(guān)鍵詞,其中有很多和windows GUI有直接關(guān)系。本打分系統(tǒng)采用了vb編程。4.打分系統(tǒng)競(jìng)賽打分時(shí)通常有多個(gè)評(píng)委,每人一個(gè)終端,各個(gè)終端通過電纜與計(jì)算機(jī)相連,由計(jì)算機(jī)按照某種評(píng)分規(guī)則計(jì)算選手的最終得分,再顯示的大屏幕上。所以,設(shè)計(jì)本系統(tǒng)首先要確定各個(gè)終端與計(jì)算機(jī)的通信問題。4.1 分終端與主機(jī)(微機(jī))的通信方式(1)并行連接方式打分終端與主機(jī)的打印口相連接,采用總線方式,如下圖所示:。打分終端打分終端數(shù)據(jù)線8位地址線34位并口大屏幕每個(gè)打分終端設(shè)置不同的地址,用地址譯碼器對(duì)地址線上的信號(hào)進(jìn)行譯碼。主機(jī)采用查詢方式讀取第個(gè)打分終端上的數(shù)據(jù)。這種方式軟件和硬件設(shè)計(jì)簡(jiǎn)單,但連線多,另外,通信距離有限(數(shù)米內(nèi))。(2)采用單獨(dú)連接的串行通信方式每一個(gè)打分終端單獨(dú)用三根通信線與主機(jī)連接,主機(jī)需要有多串口卡。如下圖所示:打分終端打分終端。多串口卡大屏幕這種方式軟件設(shè)計(jì)簡(jiǎn)單,通信距離遠(yuǎn)(數(shù)十米),但連線多,另外,且主機(jī)需要有多串口卡。(3)采用總線結(jié)構(gòu)的串行通信方式。打分終端打分終端串口顯示終端 每個(gè)打分終端設(shè)置不同的地址,主機(jī)采用查詢方式讀取第個(gè)打分終端上的數(shù)據(jù)。這種方式必須采用RS485通信,通信距離遠(yuǎn)(數(shù)十米),連線少,易于增減終端數(shù)量,但軟件設(shè)計(jì)稍復(fù)雜?;谏鲜鋈N方式的優(yōu)缺點(diǎn),我們選用了第三種方式,即RS485總線方式。4.2 打分終端設(shè)計(jì)打分終端是一個(gè)單片機(jī)系統(tǒng),包括顯示器,鍵盤、RS485接口等部件。(1) 單片機(jī) 選用MCS51系列的AT89C51,該單片機(jī)芯片內(nèi)含4KB的程序存儲(chǔ)器,有四個(gè)8位的并行口和一個(gè)串行口,兩個(gè)16位計(jì)數(shù)/定時(shí)器,5個(gè)中斷源,這些內(nèi)部資源完全可以滿足本設(shè)計(jì)的需要。(2) 顯示器 打分終端上應(yīng)有顯示器,用于顯示分值,可選用數(shù)碼液晶顯示器或LED數(shù)碼管,考慮到成本原因,本設(shè)計(jì)采用4個(gè)LED數(shù)碼管作為顯示器。為了簡(jiǎn)化設(shè)計(jì),分值可為四位整數(shù)或小數(shù)。四個(gè)LED數(shù)碼管采用動(dòng)態(tài)掃描方式。(3) 鍵盤 有12個(gè)鍵,包括10個(gè)數(shù)字鍵、一個(gè)小數(shù)點(diǎn)鍵和一個(gè)確定鍵。12鍵連接成43的矩陣,占用單片機(jī)的7根并口線,軟件上采用反轉(zhuǎn)法讀取鍵盤。(4) 打分終端數(shù)量 為了簡(jiǎn)化硬件,本設(shè)計(jì)只制作了三個(gè)打分終端。(5) 顯示終端本應(yīng)使用單片機(jī)控制大型LED數(shù)碼管顯示總得分,因條件限制,只使用4個(gè)小LED數(shù)碼管作顯示終端。4.3 軟件設(shè)計(jì)競(jìng)賽打分系統(tǒng)主機(jī)負(fù)責(zé)對(duì)終端進(jìn)行查詢,讀取分值,并進(jìn)行統(tǒng)計(jì)、顯示總分、存儲(chǔ)等。基于打分終端與主機(jī)之間采用RS485總線連接,主機(jī)上需連接RS232到RS485轉(zhuǎn)換器,我們使用了商品化的轉(zhuǎn)換器。競(jìng)賽打分時(shí)通常要去掉一個(gè)最高分和一個(gè)最低分,剩余的取平均值或總和。本課題中打分終端數(shù)量少,所以不能去掉最高分和最低分,采用求總分或求均分的方法。軟件設(shè)計(jì)為在屏幕上顯示一個(gè)表格,分別顯示每個(gè)評(píng)委的打分及統(tǒng)計(jì)的總分(或均分),如下表所示:XXX競(jìng)賽成績(jī)統(tǒng)計(jì)表評(píng)委A評(píng)委B評(píng)委C總分參賽隊(duì)員1參賽隊(duì)員2軟件除了統(tǒng)計(jì)成績(jī)外,還應(yīng)能夠保存成績(jī),并可打開以往保存的比賽成績(jī)。5.1系統(tǒng)功能框圖編輯姓名編輯比賽項(xiàng)目設(shè)置評(píng)分規(guī)則裁判人數(shù)打分系統(tǒng)主界面得分表文件名次返回打開保存另存為串行通訊 圖 ,既打分系統(tǒng)的主界面和顯示得分表的界面,在主界面我們主要是進(jìn)行打分前的設(shè)置,例如比賽的名稱,參賽選手的姓名,裁判的人數(shù),采用何種記分規(guī)則等等。而第二個(gè)主要窗口是用來顯示各選手的成績(jī)表,在該窗口中可以對(duì)各位選手的成績(jī)進(jìn)行排序,并且可以按照預(yù)先設(shè)置好的記分方式來顯示各各裁判所打的分?jǐn)?shù),并且記錄他們的總分或者是平均分?jǐn)?shù)。并且在該窗口中可以記錄保存選手的成績(jī)或者調(diào)出以往選手的成績(jī)。當(dāng)系統(tǒng)收到評(píng)委的打分時(shí),系統(tǒng)會(huì)根據(jù)打分終端的編號(hào)將數(shù)據(jù)顯示主窗口對(duì)應(yīng)的文本框中,同時(shí)填入成績(jī)表對(duì)應(yīng)的單元格中,保證兩個(gè)窗口中數(shù)據(jù)的一致性。 打分系統(tǒng)軟件設(shè)計(jì) 本軟件主要部分分為兩部分,該界面主要是顯示裁判打分,并且顯示選手姓名,編號(hào)和得分。, 1. 主窗口部分“前一選手”和“下一選手”其實(shí)現(xiàn)功能的代碼如下。Private Sub Command1_Click() 39。下一選手按鈕 If Index 1 Then = True Index = Index + 1 Call disp(Index) Else = False End IfEnd SubPrivate Sub Command2_Click() Index = Index 1 = True Call disp(Index) If In