基于日歷時鐘芯片的作息時間控制器的設計_第1頁
基于日歷時鐘芯片的作息時間控制器的設計_第2頁
基于日歷時鐘芯片的作息時間控制器的設計_第3頁
基于日歷時鐘芯片的作息時間控制器的設計_第4頁
基于日歷時鐘芯片的作息時間控制器的設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第1章 系統方案介紹系統以AT89S52單片機作為核心控制器件,外圍主要有實時時鐘芯片DS1307和LCD128*64液晶顯示器,通過C語言編寫程序來實現對校園作息時間進行控制。系統結構框圖1所示。1.1 單片機選型當今單片機廠商琳瑯滿目,產品性能各異。常用的單片機有很多種:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺灣Winbond(華邦)W78系列、荷蘭Pilips的PCF80C51系列、Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韓國三星公司的KS57C系列4位單片機、臺灣義隆的EM-78系列等。我們最

2、終選用了ATMEL公司的AT89C52單片機。AT89C52是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含8Kbytes的可反復擦寫的只讀程序存儲器(PEROM)和256bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統及8052產品引腳兼容,片內置通用8位中央處理器(CPU)和FLASH存儲單元,功能強大AT89C52單片機適用于許多較為復雜控制應用場合。1.2. 時鐘芯片選型DS1307是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,它是一款總線接口的時鐘日歷芯片,采用兩線與CPU進行

3、通信,片內含有8個特殊功能寄存器和56bit的SRAM。DS1307的備用電源,以便在沒有主電源的情況下能夠保存時間信息和一些重要的數據;兩個電阻為總線的上拉電阻。與其它型號的芯片比較更加適合本次設計。1.3 顯示器選型系統中采用LCD128*64作為顯示器件輸出信息。與傳統的LED數碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內容豐富等優點,而且不需要外加驅動電路,現在液晶顯示模塊已經是單片機應用設計中最常用的顯示器件了。LCD128*64可以顯示4行8個漢字,并行工作時具有8位數據總線D0-D7,和RS、R/W、E三個控制端口,串行工作時只有CS,SID,CLK三個通信口,本次設

4、計就是采用串行通信,可以節省單片機IO口的使用,工作電壓為5V,并且帶有字符對比度調節和背光設置。1.4 作息時間表根據學校實際情況對上下課打鈴在一天內的控制時間列表如下:表1-1 作息時間表上午下午時間事件時間事件6:50起床鈴1:20第五節課預備鈴8:20第一節課預備鈴1:30第五節上課鈴8:30第一節上課鈴2:15第五節下課鈴9:15第一節下課鈴2:25第六節上課鈴9:25第二節上課鈴3:10第六節下課鈴10:10第二節下課鈴3:30第七節上課鈴10:30第三節上課鈴4:15第七節上課鈴11:15第三節下課鈴4:25第八節上課鈴11:25第四節上課鈴5:10第八節下課鈴12:10第四節下

5、課鈴第2章 系統的硬件介紹2.1單片機模塊2.1.1單片機芯片圖2-1 芯片AT89S52外部管腳圖如圖2-1所示AT89S52引腳與功能1) 引腳信號介紹:P00P07 P0口8位雙向口線;P10P17 P0口8位雙向口線;P20P27 P0口8位雙向口線;P30P37 P0口8位雙向口線,ALE地址鎖存控制信號在系統擴展時,ALE用于控制把P0口輸出低8位地址送鎖存器鎖存起來,以實現低位地址和數據的隔離。此外由于ALE是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖作用。/PSEN外部程序儲器讀選取通信號在讀外部ROM時/PSEN有效(低電平),以實現外部ROM單元

6、的讀操作。/EA訪問程序存儲器控制信號:當/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當/EA信號為高電平時,則對ROM的讀操作是從內部程序存儲器開始,并可延至外部程序存儲器。RST 復位信號:當輸入的復位信號延續2個機器周期以上高電平時即為有效,用以完成單片機的復位初始化操作。XTAL1和XTAL2外接晶體引線端:當使用芯片內部時鐘時,此二引線端用于外接石英晶體和微調電空;當使用外部時鐘時,用于拉外部的時鐘脈沖信號。GND:地線VCC:+5V電源2)信號引腳的第二功能:由于工藝及標準化等原因,芯片的引腳數目是有限制的,例如MCS51系列把芯片引腳數目限定為40條,但單片機為

7、實現其功能所需要的信號數目卻遠遠超過此數,因此就出現了需要與可能的矛盾。因此,給一些信號引腳賦以雙重功能。2.1.2單片機主控模塊系統采用AT89S52單片機作為控制核心。AT89S52單片機與MCS_51系列單片機產品兼容,采用了Flash存儲器結構,可以在線下載程序,易于日后的升級。它主要負責各個模塊的初始化工作;設置定時器、寄存器的初值;讀取并處理時間、溫度等信息;處理按鍵響應;控制液晶實時顯示等。硬件電路連接如圖2-2所示。系統采用12M晶振;P2.0,P2.1,P2.2口為單片機與液晶顯示器連接的控制和通信的數據端口;C_RESET和R_RESET組成系統上電復位電路; P2.6和P

8、2.7為單片機與時鐘芯片DS1307通信的端口; P2.3為鬧鈴的控制端口;P1.6為單片機與溫度傳感器DS18B20的通信端口;P1.0,P1.1為按鍵模塊的接口。圖2-2 單片機主控電路2.2實時時鐘日歷模塊2.2.1DS1307實時時鐘芯片介紹Y2為32.768kHz的晶振,為時鐘芯片提供計時脈沖;Vbat為DS1307的備用電源,以便在沒有主電源的情況下能夠保存時間信息和一些重要的數據;兩個電阻為總線的上拉電阻。DS1307是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,它是一款總線接口的時鐘日歷芯片,采用兩線與CPU進行通信,片內含有8個特殊功能寄存器和56bit的SR

9、AM。2.2.2 DS1307的引腳功能和主要技術性能指標具有秒、分、時、日、星期、月、年的計數功能,并且具有12小時制和24小時制的計數模式,可自動調整每月的天數,具有閏年調整的功能,具有自動掉電保護和上電復位的功能。DS1307的引腳圖如圖2-3所示,采用8引腳雙列直插dip封裝,芯片內部結構圖如圖2-4所示。各個引腳功能如下:Vcc:主電源;Vbat:備份電源。當VbatVcc+0.2V時,由Vcc2向DS1307供電,當Vbat Vcc時,由Vcc向DS1307供電;GND:邏輯地;SCL:總線時鐘線;SDA:總線數據線;SQW/OUT: 圖2-3 DS1307的引腳分配圖2-4 DS

10、1307的內部結構2.2.3DS1307的內部寄存器DS1307有關日歷、時間的寄存器共有12個,其中有7個寄存器(讀時81h8Dh,寫時80h8Ch),存放的數據格式為BCD碼形式,如表2-1所示。小時寄存器(85h、84h)的位7用于定義DS1307是運行于12小時模式還是24小時模式。當為高時,選擇12小時模式。在12小時模式時,位5是,當為1時,表示PM。在24小時模式時,位5是第二個10小時位。秒寄存器(81h、80h)的位7定義為時鐘暫停標志(CH)。當該位置為1時,時鐘振蕩器停止,DS1307處于低功耗狀態;當該位置為0時,時鐘開始運行。控制寄存器(8Fh、8Eh)的位7是寫保護

11、位(WP),其它7位均置為0。在任何的對時鐘和RAM的寫操作之前,WP位必須為0。當WP位為1時,寫保護位防止對任一寄存器的寫操作。表2-1 DS1307的時間寄存器2.3 DS1307硬件設計DS1307采用與CPU進行通信,電路連接簡單。DS1307的內部振蕩電路結構如圖3-1所示,在芯片內部連接有兩個電容,目的是為了使晶振起振,所以在電路設計中就不需要另外再加電容了,電路圖如3-2所示,其中晶振為32.768kHz,經內部電路分頻后可圖3-1 DS1307的內部振蕩電路獲得一個標準的秒脈沖信號;電阻R_SCL、R_SDA是總線的上拉電阻。圖3-2 DS1307的電路連接2.4打鈴模塊設計

12、系統采用蜂鳴器作為鬧鈴輸出。電路連接如圖3-3所示。電路中采用PNP管9012來控制蜂鳴器的開關,由圖可以看出當Bell引腳為高電平時,PNP管截止,蜂鳴器不工作;當Bell引腳為低電平時,PNP管導通,蜂鳴器工作。其中R2為限流電阻。圖3-3鬧鈴電路2.5 時鐘電路設計時鐘電路用于產生單片機工作所需要的時鐘信號,而時序所研究的是指令執行中各信號之間的相互關系。單片機本身就如一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地作。圖 3-4 時鐘電路單片機內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。而在芯片的外部,XTA

13、L1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩定的自激振蕩器。電容器C1和C2的作用是穩定頻率和快速起振,電容值的范圍在5pF30pF,典型值為30pF。晶振的頻率選擇12MHz。只要在單片機的XTAL1和XTAL2引腳外接晶體振蕩器就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。2.6 復位電路設計復位電路是使單片機的CPU或系統中的其他部件處于某一確定的初始狀態,并從這上狀態開始工作。上電復位是單片機上電時復位操作,保證單片機上電后立即進入規定的復位狀態。上電復位要求接通電源后,單片機自動實現復位操作。而按鍵復位是通過使復位端經電阻與VCC電源接通而實現的,上電和按鍵瞬間R

14、ST引腳獲得高電平,隨著電容的充電,RST引腳的高電平將逐漸下降。RST引腳的高電平只要能保持足夠的時間(2個機器周期),若采用12MHz的晶振,則復位信號持續時間應超過2S單片機就可以進行復位操作。圖 3-5 復位電路2.7鍵盤模塊設計鍵盤模塊設置了4個按鍵:KEY1,KEY2,KEY3,KEY4。其中用KEY1來控制菜單的主模式,KEY2,KEY3來調整,KEY4返回電路連接如圖2所示。2個上拉電阻可以保證在沒有按鍵輸入時,進入單片機四個I/O口的按鍵狀態均為高電平,防止干擾產生;當有按鍵按下時,相應的口線被拉低。軟件上采用查詢的方式,用定時器定時對按鍵狀態進行掃描,確保系統的實時性。2.

15、8液晶顯示模塊設計系統中采用LCD128*64作為顯示器件輸出信息。與傳統的LED數碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內容豐富等優點,而且不需要外加驅動電路,現在液晶顯示模塊已經是單片機應用設計中最常用的顯示器件了。LCD128*64可以顯示4行8個漢字,并行工作時具有8位數據總線D0-D7,和RS、R/W、E三個控制端口,串行工作時只有CS,SID,CLK三個通信口,本次設計就是采用串行通信,可以節省單片機IO口的使用,工作電壓為5V,并且帶有字符對比度調節和背光設置。管腳功能簡介:引腳號引腳名稱 方向功能說明1 VSS 模塊的電源地2 VDD 模塊的電源正端3 V0 L

16、CD 驅動電壓輸入端4 RS(CS)H/L 并行的指令/數據選擇信號;串行的片選信號5 R/W(SID)H/L 并行的讀寫選擇信號;串行的數據口6E(CLK) H/L 并行的使能信號;串行的同步時鐘7DB0 H/L 數據08 DB1 H/L 數據19 DB2 H/L 數據210DB3 H/L數據311DB4 H/L 數據412DB5 H/L 數據513DB6 H/L數據614 DB7 H/L 數據715PSB H/L 并/串行接口選擇:H-并行;L-串行16NC 空腳17 /RET H/L 復位低電平有效18NC空腳19LED_A - 背光源正極(LED+5V)20LED_K - 背光源負極(

17、LED-OV)電路連接圖圖3-6 液晶顯示電路2.9硬件原理圖:(見附錄1)2.10PCB圖:(見附錄2)第3章 元件清單3.1 元件清單表3-1 元件清單參數名稱注釋1KR15KR-SCL5KR-SDA10KR310KR610KR510KR422FC330PC132.786KY2103JR20排阻-9AT89S52DIP40BELLDS1307LCD12864HDR1X20PNP90121KR8SW-PB10KR19WR12MY1第4章 系統的軟件設計系統的軟件設計可以分為幾個部分,首先是各個模塊的底層驅動程序編寫,而后是系統聯機調試,編寫上層系統程序。本系統軟件程序主要包括:液晶LCD12

18、8*64的底層驅動模塊、時鐘芯片DS1307的底層驅動模塊、鍵盤掃描模塊,鬧鐘模塊等。系統的軟件流程圖如圖下:4.1主程序圖4-1 主程序流程圖如上圖所示程序開始后進入定時初始化,然后進入是否調時間、是否響鈴和顯示的死循環。進入調時間程序則可按S4調時,S3調分,S2調秒,調時完畢則到是否響鈴、顯示程序。4.1.1按鍵及調時間程序數字鍵,功能鍵.鍵處理程序返回判是否有鍵按下?開始鍵處理散轉地址判確有鍵按下?調延時子程序YYNN圖4-2 按鍵流程圖圖如上圖所示此圖是處理按鍵程序的。判斷是否有鍵按下,有的話,去抖動,和判斷按鍵釋放。調整時間流程圖如下圖所示,先判斷有鍵按下,有的話則進入調整秒、分、

19、時的循環直到有S1按下為止才退出。圖4-3 調整時間流程圖4.2 定時中斷程序把定時器設為工作方式1,定時時間為50mS,則計數溢出20次即得時鐘計時最小單位秒,而20次計數可用軟件方法實現。采用中斷方式進行溢出次數累計,計滿8次為秒計時(1秒),從秒到分和從分到時的計時是通過累加和數值比較實現。其程序流程圖如下:圖4-4 定時中斷程序流程圖4.3 顯示程序執行高,低四位字符串是否完畢為8次串行口發送字節串行口接受字節清屏AC歸零顯示ONAC歸起始位 返回開始NY 圖4-5 顯示子程序流程圖如下圖所示其顯示是液晶顯示,并且帶有字符對比度調節和背光設置。4.4打鈴程序如下圖所示,進入程序先要判斷

20、是否需要打鈴,也就是是否到了打鈴時間,如果到了則執行打鈴程序,執行完后跳出,等下次再判,再執行。圖4-6系統軟件流程圖第5章 程序清單#include /定義庫函數#defineuint unsigned int /定義函數#defineuchar unsigned charucharst,mt,ht, stg, sts,mtg, mts,htg,hts ,j,i; /定義變量uchar pm11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /定義出一個顯示數組sbit k1=P33; /定義位函數sbit k2=P34;sb

21、it P1_7=P17;sbit P1_5=P15;/*延時子程序*/delay (uint v)while(v!=0) v-;/*中斷處理程序*/pint0()interrupt 1 using 2 /采用中斷0方式TH0=0x3c; /設置計數初值 TL0=0xb0; if(j!=0) /查詢計數次數是否滿20次 j-; /不滿減1 else j=20; /重新設置計數次數 st+; /秒加1if(st=60) /查詢秒是否等于60st=0; /等于60秒,秒清0 mt+; /分加1 if(mt=60) /查詢分是否等于60mt=0; /等于60分,分清0 ht+; /時加1 if(ht=

22、24) /查詢時是否等于24 ht=0; /等于24,時清0 /*顯示程序*/xscl() int a,b; /定義變量 P2=0xfe; /設置數碼管顯示位,即秒個位 P0=pmstg; /秒個位顯示值delay(300);/延時a=P27;P2=a|b;P0=pmsts;/秒十位顯示值delay(300);/延時a=P27;P2=a|b;P0=pm10; /無用位顯示delay(300);/延時a=P27;P2=a|b;P0=pmmtg;/分個位顯示值delay(300);/延時a=P27;P2=a|b;P0=pmmts; /分十位顯示值delay(300); /延時a=P27;P2=a|

23、b;P0=pm10; /無用位顯示delay(300); /延時a=P27;P2=a|b;P0=pmhtg; /時個位顯示值delay(300); /延時a=P27;P2=a|b;P0=pmhts; /時十位顯示值delay(300); /延時a=P27;P2=a|b;/*顯示處理程序*/xs() sts=st/10; stg=st%10; /把秒緩沖值處理,分別給秒個位和十位 mts=mt/10;mtg=mt%10; /把分緩沖值處理,分別給分個位和十位 hts=ht/10;htg=ht%10; /把時緩沖值處理,分別給時個位和十位 xscl(); /顯示子程序 /*按鍵處理程序,即時間調整

24、程序*/key() if(k1=0) /判斷k1是否為0,即判斷S1是否按下 xs(); xs(); /調顯示程序,即延時 if(k1=0) /去抖動 xs(); while(1) xs();if(k1=1)break;/判斷鍵釋放 TR0=0; /釋放則關中斷while(1) /調時間 xs(); /調顯示程序 if(k2=0) /判斷k2是否為0,即判斷S2是否按下 xs();xs();/調顯示程序,即延時 if(k2=0) /去抖動 st+; /秒加1 if(st=60) /查詢秒是否等于60 st=0; /等于60,秒清0 if(k3=0) /判斷k3是否為0,即判斷S3是否按下 xs

25、(); xs();/調顯示程序,即延時 if(k2=0) /去抖動mt+; /分加1 if(mt=60)/查詢分是否等于60 mt=0; /等于60,分清0 if(k4=0) /判斷k2是否為0,即判斷S4是否按下 xs();xs();/調顯示程序,即延時 if(k4=0) /去抖動 ht+; /時加1 if(ht=24)/查詢時是否等于24 ht=0; /等于24,時清0 if(k1=0) /判斷k2是否為0,即判斷S6是否按下 xs();xs();/調顯示程序,即延時 if(k1=0) /去抖動 xs();while(1) xs();if(k1=1)break;/判斷鍵釋放 break ;

26、 /跳出調時間循環程序 TR0=1; /開中斷,返回 /* DS1307驅動程序*/* DS1307 PART START */unsigned char Write1307(unsigned char add,dat) unsigned char temp; temp=dat/10; temp=4; temp=dat%10+temp; I2C_start(); I2C_write_byte(0xD0); I2C_send_ack(0); I2C_write_byte(add); I2C_send_ack(0); I2C_write_byte(temp); I2C_send_ack(1); I

27、2C_stop(); return (0);/*/unsigned char Read1307(unsigned char add) unsigned char temp,dat; I2C_start(); I2C_write_byte(0xD0); I2C_send_ack(0); I2C_write_byte(add); I2C_send_ack(1); I2C_stop(); I2C_start(); I2C_write_byte(0xD1); I2C_send_ack(0); dat=I2C_read_byte(); I2C_send_ack(1); I2C_stop(); temp=

28、dat/16; dat=dat%16; dat=dat+temp*10; return (dat);/*/void Read_RTC(void) unsigned char i,*p;p=rtc_address; for(i=0;i7;i+) read_rtc_codei=Read1307(*p); p+; /*/void Set_RTC(void) unsigned char i,*p; p=rtc_address;for(i=0;i7;i+) Write1307(*p,set_rtc_codei);p+; /* LCD128*64驅動程序*/* LCD PART START */unsig

29、ned char code AC_TABLE=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, /第一行漢字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, /第二行漢字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, /第三行漢字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, /第四行漢字位置 ;/串口發送一個字節void SendByte(unsigned char Dbyte) unsigned char i ; for(i=0 ;i8 ;i+)

30、SCK = 0 ; Dbyte=Dbyte1 ; /左移一位 SID = CY ; /移出的位給SID SCK = 1 ; SCK = 0 ; /串口接收一個字節/僅在讀取數據的時候用到/而讀出的數據是一次只能讀出4bit的unsigned char ReceiveByte(void) unsigned char n,x,y ; x=y=0 ; for(n=0 ;n8 ;n+) x=x1 ; SCK = 0 ; SCK = 1 ; SCK = 0 ; if(SID) x+ ; for(n=0 ;n8 ;n+) y=y1 ; SCK = 0 ; SCK = 1 ; SCK = 0 ; if(SI

31、D) y+ ; return (0xf0&x)+(0x0f&y) ;void CheckBusy( void ) do SendByte(0xfc) ; /11111,RW(1),RS(0),0 while(0x80&ReceiveByte() ; /BF(.7)=1 Busyvoid WriteCommand( unsigned char Cbyte ) CS = 1 ; CheckBusy() ; SendByte(0xf8) ; /11111,RW(0),RS(0),0 SendByte(0xf0&Cbyte) ; /高四位 SendByte(0xf0&Cbyte4) ;/低四位(先執行

32、 ;) CS = 0 ;void WriteData( unsigned char Dbyte ) CS = 1 ; CheckBusy() ; SendByte(0xfa) ; /11111,RW(0),RS(1),0 SendByte(0xf0&Dbyte) ; /高四位 SendByte(0xf0&Dbyte4) ;/低四位(先執行 ;) CS = 0 ;/*unsigned char ReadData( void ) CheckBusy() ; SendByte(0xfe) ; /11111,RW(1),RS(1),0 return ReceiveByte() ;*/void Dela

33、y(unsigned int MS) unsigned char us,usn ; while(MS!=0) /for 12M usn = 2 ; while(usn!=0) us=0xf5 ; while (us!=0)us- ; ; usn- ; MS- ; void LcmInit( void ) WriteCommand(0x30) ; /8BitMCU,基本指令集合 WriteCommand(0x03) ; /AC歸0,不改變DDRAM內容 WriteCommand(0x0C) ; /顯示ON,游標OFF,游標位反白OFF WriteCommand(0x01) ; /清屏,AC歸0

34、WriteCommand(0x06) ; /寫入時,游標右移動void lcd_clear_one(void)unsigned char i;for(i=0;i16;i+)WriteData( );/文本區清RAM函數void LcmClearTXT( void ) unsigned char i ; WriteCommand(0x30) ; /8BitMCU,功能設定,基本指令集合 WriteCommand(0x80) ; /AC歸起始位 for(i=0 ;i64 ;i+) WriteData(0x20) ;void setadd(unsigned char row,unsigned cha

35、r col) WriteCommand(AC_TABLE8*row+col) ;void writeword(unsigned char row,unsigned char col,unsigned char * puts) WriteCommand(0x30) ; /8BitMCU,基本指令集合 WriteCommand(AC_TABLE8*row+col) ; /起始位置 while(*puts) != 0) /判斷字符串是否顯示完畢WriteData(*puts) ; puts+ ; void LCD_prints(unsigned char *puts)WriteCommand(0x3

36、0) ; while(*puts) != 0) /判斷字符串是否顯示完畢 WriteData(*puts) ; puts+ ; void PutStr(unsigned char row,unsigned char col,unsigned char *puts) WriteCommand(0x30) ; /8BitMCU,基本指令集合 WriteCommand(AC_TABLE8*row+col) ; /起始位置 while(*puts != 0) /判斷字符串是否顯示完畢 if(col=8) /判斷換行 /若不判斷,則自動從第一行到第三行 col=0 ; row+ ; if(row=4)

37、row=0 ; /一屏顯示完,回到屏左上角 WriteCommand(AC_TABLE8*row+col) ; WriteData(*puts) ; /一個漢字要寫兩次 puts+ ; WriteData(*puts) ; puts+ ; col+ ; /*判斷是否打鈴程序*/pan() if(ht=6)&(mt=00)&(st=00) chge();xs(); /判斷是否到了打鈴時間,到了則給 if(ht=6)&(mt=20)&(st=00) chge();xs(); /執行響鈴程序 if(ht=6)&(mt=40)&(st=00) chge();xs(); if(ht=7)&(mt=30)

38、&(st=00) chge();xs(); if(ht=8)&(mt=20)&(st=00) chge();xs(); if(ht=8)&(mt=30)&(st=00) chge();xs(); if(ht=9)&(mt=15)&(st=00) chge();xs(); if(ht=9)&(mt=25)&(st=00) chge();xs(); if(ht=10)&(mt=10)&(st=00) chge();xs(); if(ht=10)&(mt=30)&(st=00) chge();xs(); if(ht=11)&(mt=15)&(st=00) chge();xs(); if(ht=11)

39、&(mt=25)&(st=00) chge();xs(); if(ht=12)&(mt=10)&(st=00) chge();xs(); if(ht=13)&(mt=20)&(st=00) chge();xs(); if(ht=13)&(mt=30)&(st=00) chge();xs(); if(ht=14)&(mt=15)&(st=00) chge();xs(); if(ht=14)&(mt=25)&(st=00) chge();xs(); if(ht=15)&(mt=10)&(st=00) chge();xs(); if(ht=15)&(mt=30)&(st=00) chge();xs(

40、); if(ht=16)&(mt=15)&(st=00) chge();xs(); if(ht=16)&(mt=25)&(st=00) chge();xs(); if(ht=17)&(mt=10)&(st=00) chge();xs(); if(ht=18)&(mt=00)&(st=00) chge();xs(); if(ht=18)&(mt=45)&(st=00) chge();xs(); if(ht=19)&(mt=40)&(st=00) chge();xs(); if(ht=19)&(mt=50)&(st=00) chge();xs(); if(ht=20)&(mt=35)&(st=00) chge();xs(); if(ht=22)&(mt=00)&(st=00) chge();xs();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論