日韩欧美国产极速不卡一区,国产手机视频在线观看尤物,国产亚洲欧美日韩蜜芽一区,亚洲精品国产免费,亚洲二区三区无码中文,A大片亚洲AV无码一区二区三区,日韩国语国产无码123

您好,歡迎來到維庫電子市場網(wǎng) 登錄 | 免費(fèi)注冊

自動打鈴系統(tǒng)
閱讀�10019時間�2010-11-24 10:43:05

  該系�(tǒng)�(nèi)�(shè)有一服務(wù)器,該服�(wù)器透過�(wǎng)�(luò)與一個以上的自動打鈴裝置及工作站相連接,該服務(wù)器及打鈴裝置中分別設(shè)有一時鐘芯片(RTC),該等時鐘芯片系用來產(chǎn)生時間訊息,�(dāng)該打鈴裝置透過�(wǎng)�(luò)定時將時鐘芯片(RTC)所�(chǎn)生之時間訊息傳送至服務(wù)器時,該服務(wù)器在接收到該時間訊息,會將本身時鐘芯片所�(chǎn)生之時間訊息與之比較,若不符,則將其所�(chǎn)生之時間訊息回饋至各打鈴裝置�,使各打鈴裝置之時間訊息�(tǒng)一,而使所�(shè)定之打鈴時間亦統(tǒng)一,本系統(tǒng)具有打鈴時間�(tǒng)一、設(shè)備維�(hù)方便的優(yōu)�(diǎn)�

基本方案

 ?�?)基本計時和顯示功能(�12小時制顯�)。包括上下午�(biāo)�,時、分的數(shù)字顯�,秒信號指示�

 ?�?)能�(shè)置當(dāng)前時�(含上、下�,時,分)

 ?�?)能�(shí)�(xiàn)基本打鈴功能,規(guī)定:

  上午6�00起床鈴:打鈴5�、停2�、再打鈴5秒�

  下午10�30熄燈鈴:打鈴5�、停2�、再打鈴5��

  鈴聲可用小喇叭播�,凡是用到鈴聲功能的均按此處��

拓展方案

 ?�?)增加整�(diǎn)報時功能,整�(diǎn)時響�5�,要求有控制啟動和關(guān)閉功��

 ?�?)增加調(diào)整起床鈴、熄燈鈴時間的功��

  �3)增�(shè)上午4節(jié)課的上下課打鈴功�,規(guī)定如下:

  7�30 上課�8�20下課�8�30上課�9�20下課�9�40 上課�10�30下課�10�40上課�11�30下課;每次鈴�5��

軟件�(shè)�

  程序簡要說明

  1)�(shí)�(xiàn)24小時制電子鐘�8位數(shù)碼管顯示,顯示時分秒

  2)顯示格式�23-59-59(小時十位如果為0則不顯示�

  3)到預(yù)定時間啟動蜂鳴器模擬打鈴,蜂鳴器BEEP:P3.7

  4)打鈴方式分起床、熄燈鈴和上、下課鈴兩種

  5)系統(tǒng)使用4只按鍵,3只按鍵用來調(diào)整時�,另一只為�(qiáng)制打鈴按�

  6)�(diào)整選擇鍵SET[_]KEY:P1.0;通過選擇鍵選擇調(diào)整位,選中位閃爍

  7)增加鍵ADD[_]KEY:P1.1;按一次使選中位加1

  8)減少鍵DEC[_]KEY;P1.2;按一次使選中位減1

  9)如果長按ADD[_]KEY或DEC[_]KEY,識別后則�(jìn)行調(diào)時快�(jìn),此時停止閃�

  10)如果選中位是�,則按增加鍵或減少鍵都是將秒清零

  11)�(qiáng)制打鈴鍵DALING[_]KEY:P1.3;用來強(qiáng)制打鈴或�(qiáng)制關(guān)閉鈴�

  12)P0口輸出數(shù)碼管段選信號,P2口輸出數(shù)碼管位選信號。晶�12M

  源程�

  BEEP EQU P3.7  ;定義蜂鳴器(電鈴)控制信號輸出口

  ORG 0000H   ;程序入口地址

  LJMP START

  ORG 000BH   ;定時�0中斷入口地址

  LJMP TIMER[_]0

  ORG 0300H

  /*****程序開始,初始化*****/

  START:

  SETB BEEP   ;�(guān)閉蜂鳴器(電鈴)

  SETB 48H   ;使用一個bit位用于調(diào)時閃爍標(biāo)�

  SETB 47H   ;使用一個bit位用于產(chǎn)生脈沖用于調(diào)時快�(jìn)時基

  CLR  45H   ;�(guān)閉響鈴方�1�(biāo)�

  CLR  44H   ;�(guān)閉響鈴方�2�(biāo)�

  MOV R1,#0   ;�(diào)整選擇鍵功能�(biāo)志:0正常走時�1�(diào)��2�(diào)��3�(diào)�

  MOV 20H,#00H  ;用于控制秒基�(zhǔn)時鐘源的�(chǎn)�

  MOV 21H,#00H  ;清零秒寄存器

  MOV 22H,#00H  ;清零分寄存器

  MOV 23H,#00H  ;清零時寄存器

  MOV 24H,#00H  ;用于控制�(diào)時閃爍的基準(zhǔn)時鐘的產(chǎn)�

  MOV IP,#02H   ;IP,IE初始�

  MOV IE,#82H

  MOV TMOD,#01H  ;�(shè)定定時器0工作方式1

  MOV TH0,#3CH

  MOV TL0,#0B0H  ;賦定時初值,定時50ms

  SETB TR0   ;啟動定時�

  MOV SP,#40H   ;重設(shè)堆棧指針

  /*****主程�*****/

  MAIN:

  CJNE R1,#00H,MAIN1 ;是否為正常走時狀�(tài)

  LCALL BIJIAO1  ;�(diào)用起�、熄燈打鈴比較子程序

  LCALL BIJIAO2  ;�(diào)用上、下課打鈴比較子程序

  LCALL DALING1  ;�(diào)用響鈴方�1�(zhí)行子程序

  LCALL DALING2  ;�(diào)用響鈴方�2�(zhí)行子程序

  MAIN1:

  LCALL DISPLAY   ;�(diào)用顯示子程序

  LCALL KEY[_]SCAN   ;�(diào)用按鍵檢測子程序

  JZ MAIN    ;無鍵按下則返回重新循�(huán)

  LCALL SET[_]KEY   ;�(diào)用選擇鍵處理子程�

  JB 46H,MAIN   ;如果已�(jìn)行長按調(diào)整(�(diào)時快�(jìn)�,則不再�(zhí)行下面的單步�(diào)�

  LCALL ADD[_]KEY  ;�(diào)用增加鍵處理子程�

  LCALL DEC[_]KEY  ;�(diào)用減少鍵處理子程�

  LCALL DALING[_]KEY ;處理�(qiáng)制打�/�(qiáng)制關(guān)閉鈴聲鍵

  LJMP MAIN    ;重新循環(huán)

  /*****定時中斷服務(wù)程序*****/

  TIMER[_]0:

  PUSH ACC

  PUSH PSW    ;保護(hù)�(xiàn)�

  MOV TH0,#3CH

  MOV TL0,#0B0H   ;重新賦定時初�

  CPL 47H    ;�(chǎn)生脈沖用于調(diào)時快�(jìn)時基

  INC 24H

  MOV A,24H

  CJNE A,#10,ADD[_]TIME ;�(chǎn)�0.5秒基�(zhǔn)時鐘,用于調(diào)時閃�

  CPL 48H    ;取反�(diào)時閃爍標(biāo)志位

  MOV 24H,#00H

  ADD[_]TIME:

  INC 20H

  MOV A,20H

  CJNE A,#20,RETI1 ;�(chǎn)�1秒基�(zhǔn)時鐘

  MOV 20H,#00H   ;一秒鐘時間�,清�20H

  MOV A,21H

  ADD A,#01H

  DA A       ;作十�(jìn)制調(diào)�

  MOV 21H,A

  CJNE A,#60H,RETI1

  MOV 21H,#00H   ;一分鐘�

  MOV A,22H

  ADD A,#01H

  DA A

  MOV 22H,A

  CJNE A,#60H,RETI1

  MOV 22H,#00H   ;一小時�

  MOV A,23H

  ADD A,#01H

  DA A

  MOV 23H,A

  CJNE A,#24H,RETI1

  MOV 23H,#00H   ;�24�(diǎn),清零小時

  RETI1:

  POP PSW

  POP ACC    ;恢復(fù)�(xiàn)�

  RETI     ;中斷返回

  /*****顯示處理*****/

  DISPLAY:

  MOV A,21H    ;�

  ANL A,#0FH

  MOV 2FH,A   ;�(zhuǎn)換出秒個位,存�2FH

  MOV A,21H

  ANL A,#0F0H

  SWAP A

  MOV 2EH,A   ;�(zhuǎn)換出秒十�,存�2EH

  JB 46H,MIN   ;如果長按按鍵(調(diào)時快�(jìn)�,則跳過閃爍處理

  CJNE R1,#3,MIN  ;如果R1�3,閃爍秒位待�(diào)�

  JB 48H,MIN

  MOV 2FH,#0AH  ;使該位為10,查表得到使該位不顯示的輸出

  MOV 2EH,#0AH

  MIN:

  MOV A,22H    ;�

  ANL A,#0FH

  MOV 2DH,A   ;�(zhuǎn)換出分個位,存�2DH

  MOV A,22H

  ANL A,#0F0H

  SWAP A

  MOV 2CH,A   ;�(zhuǎn)換出分十�,存�2CH

  JB 46H,HOUR   ;如果長按按鍵(調(diào)時快�(jìn)�,則跳過閃爍處理

  CJNE R1,#2,HOUR  ;如果R1�2,閃爍分位待�(diào)�

  JB 48H,HOUR

  MOV 2DH,#0AH  ;使該位為10,查表得到使該位不顯示的輸出

  MOV 2CH,#0AH

  HOUR:

  MOV A,23H    ;�

  ANL A,#0FH

  MOV 2BH,A   ;�(zhuǎn)換出時個位,存�2BH

  MOV A,23H

  ANL A,#0F0H

  SWAP A

  MOV 2AH,A   ;�(zhuǎn)換出時十�,存�2AH

  JB 46H,DISP   ;如果長按按鍵(調(diào)時快�(jìn)�,則跳過閃爍處理

  CJNE R1,#1,DISP  ;如果R1�1,閃爍時位待�(diào)�

  JB 48H,DISP

  MOV 2BH,#0AH  ;使該位為10,查表得到使該位不顯示的輸出

  MOV 2AH,#0AH

  /*****�(shù)碼管動態(tài)掃描顯示*****/

  DISP:

  MOV DPTR,#TABLE

  MOV A,2FH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.7

  LCALL DELAY

  SETB P2.7   ;顯示秒個位

  MOV A,2EH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.6

  LCALL DELAY

  SETB P2.6   ;顯示秒十�

  MOV A,#0BFH

  MOV P0,A

  CLR P2.5

  LCALL DELAY

  SETB P2.5   ;顯示�-�

  MOV A,2DH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.4

  LCALL DELAY

  SETB P2.4   ;顯示分個位

  MOV A,2CH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.3

  LCALL DELAY

  SETB P2.3   ;顯示分十�

  MOV A,#0BFH

  MOV P0,A

  CLR P2.2

  LCALL DELAY

  SETB P2.2   ;顯示�-�

  MOV A,2BH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.1

  LCALL DELAY

  SETB P2.1   ;顯示時個位

  MOV DPTR,#TABLE1 ;該位使用TABLE1以消除前�

  MOV A,2AH

  MOVC A,@A+DPTR

  MOV P0,A

  CLR P2.0

  LCALL DELAY

  SETB P2.0   ;顯示時十�

  RET

  /*****按鍵檢測子程�*****/

  KEY[_]SCAN:

  CLR 46H    ;�(guān)閉長按調(diào)整(�(diào)時快�(jìn))標(biāo)�

  MOV P1,#0FFH   ;將P1口設(shè)置成輸入狀�(tài)

  MOV A,P1

  CPL A

  ANL A,#0FH    ;P1口低4位連接4個按鍵,只判斷該4�

  JZ EXIT[_]KEY   ;無鍵按下則返�

  LCALL DELAY   ;延時去抖�

  MOV A,P1   ;重新判斷

  CPL A

  ANL A,#0FH

  JZ EXIT[_]KEY   ;鍵盤去抖�

  MOV R5,A    ;臨時將鍵值存入R5

  MOV R4,#00H   ;用于控制�(diào)時快�(jìn)速度

  ;�(shè)置為00H是為了在�(jìn)入長按處理前加長延時區(qū)分用戶的長按與短�,防止誤快�(jìn)

  LOOP:      ;�(jìn)入長按處�

  LCALL DISPLAY  ;使長按時顯示正常

  MOV A,P1

  CPL A

  ANL A,#0FH

  JB 47H,LOOP1

  INC R4    ;�(diào)時快�(jìn)間隔時間基準(zhǔn)�

  LOOP1:

  CJNE R1,#03H,LOOP2 ;如果�(diào)秒時長按,則不處�

  LJMP LOOP3

  LOOP2:

  CJNE R4,#99H,LOOP3

  MOV R4,#70H   ;確認(rèn)用戶長按�,重新設(shè)定起始值,加快�(diào)時快�(jìn)速度

  SETB 46H   ;長按�(diào)整(�(diào)時快�(jìn))標(biāo)�

  LCALL ADD[_]KEY

  LCALL DEC[_]KEY

  LOOP3:

  JNZ LOOP    ;等待鍵釋�

  MOV A,R5   ;輸出鍵�

  RET

  EXIT[_]KEY:

  RET

  /*****延時子程�*****/

  DELAY:

  MOV R7,#150

  DJNZ R7,$

  RET

  /*****選擇鍵處理子程序*****/

  SET[_]KEY:

  CJNE R5,#01H,EXIT ;選擇鍵鍵�

  INC R1    ;�(diào)整選擇功能標(biāo)志加一

  SETB BEEP

  CJNE R1,#4,EXIT

  MOV R1,#0

  MOV 24H,#00H  ;�(diào)時閃爍基�(zhǔn)清零

  RET

  /*****增加鍵處理子程序*****/

  ADD[_]KEY:

  CJNE R5,#02H,EXIT ;增加鍵鍵�

  CJNE R1,#01H,NEXT1 ;選擇鍵功能標(biāo)志為1,調(diào)�,否則跳�

  MOV A,23H

  ADD A,#01H

  DA A

  MOV 23H,A

  CJNE A,#24H,EXIT

  MOV 23H,#00H

  NEXT1:

  CJNE R1,#02H,NEXT2 ;選擇鍵功能標(biāo)志為2,調(diào)�,否則跳�

  MOV A,22H

  ADD A,#01H

  DA A

  MOV 22H,A

  CJNE A,#60H,EXIT

  MOV 22H,#00H

  NEXT2:

  CJNE R1,#03H,EXIT ;選擇鍵功能標(biāo)志為3,調(diào)�,否則跳�

  MOV 21H,#00H  ;如增加鍵按下直接清零�

  RET

  /*****減少鍵處理子程序*****/

  DEC[_]KEY:

  CJNE R5,#04H,EXIT ;減少鍵鍵�

  CJNE R1,#01H,NEXT3 ;選擇鍵功能標(biāo)志為1,調(diào)�,否則跳�

  MOV A,23H

  ADD A,#99H

  DA A

  MOV 23H,A

  CJNE A,#99H,EXIT

  MOV 23H,#23H

  NEXT3:

  CJNE R1,#02H,NEXT4 ;選擇鍵功能標(biāo)志為2,調(diào)�,否則跳�

  MOV A,22H

  ADD A,#99H

  DA A

  MOV 22H,A

  CJNE A,#99H,EXIT

  MOV 22H,#59H

  NEXT4:

  CJNE R1,#03H,EXIT ;選擇鍵功能標(biāo)志為3,調(diào)�,否則跳�

  MOV 21H,#00H  ;如較少鍵按下直接清零�

  RET

  /*****�(qiáng)制響鈴鍵處理子程�*****/

  DALING[_]KEY:

  CJNE R5,#08H,EXIT ;選擇鍵鍵�

  CPL BEEP

  RET

  /*****萬用返回程序*****/

  EXIT:

  RET

  /*****�(shù)碼管字形編碼�*****/

  TABLE:

  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;字形顯示編碼

  TABLE1:

  DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小時位的十位�(shù)編碼,該位如果為0則不顯示

  /*****打鈴時間對比程序(起�、熄燈)*****/

  BIJIAO1:

  MOV A,23H

  CJNE A,#06H,B0

  MOV A,22H

  CJNE A,#00H,B0  ;6:00�

  SETB 45H   ;開啟響鈴方式1

  RET

  B0:  MOV A,23H

  CJNE A,#22H,EXIT[_]1

  MOV A,22H

  CJNE A,#30H,EXIT[_]1 ;22:30�

  SETB 45H   ;開啟響鈴方式1

  RET

  EXIT[_]1:

  CLR 45H

  RET

  /*****打鈴時間對比程序(上、下課)*****/

  BIJIAO2:

  MOV A,23H

  CJNE A,#07H,B1

  MOV A,22H

  CJNE A,#30H,B1  ;7:30

  SETB 44H   ;開啟響鈴方式2

  RET

  B1:  MOV A,23H

  CJNE A,#08H,B2

  MOV A,22H

  CJNE A,#20H,B2  ;8:20

  SETB 44H

  RET

  B2:  MOV A,23H

  CJNE A,#08H,B3

  MOV A,22H

  CJNE A,#30H,B3  ;8:30

  SETB 44H

  RET

  B3:  MOV A,23H

  CJNE A,#09H,B4

  MOV A,22H

  CJNE A,#20H,B4  ;9:20

  SETB 44H

  RET

  B4:  MOV A,23H

  CJNE A,#09H,B5

  MOV A,22H

  CJNE A,#40H,B5  ;9:40

  SETB 44H

  RET

  B5:  MOV A,23H

  CJNE A,#10H,B6

  MOV A,22H

  CJNE A,#30H,B6  ;10:30

  SETB 44H

  RET

  B6:  MOV A,23H

  CJNE A,#10H,B7

  MOV A,22H

  CJNE A,#40H,B7  ;10:40

  SETB 44H

  RET

  B7:  MOV A,23H

  CJNE A,#11H,EXIT[_]2

  MOV A,22H

  CJNE A,#30H,EXIT[_]2 ;11:30

  SETB 44H

  RET

  EXIT[_]2:

  CLR 44H

  RET

  /*****響鈴方式1程序(響5秒停2秒再�5秒)*****/

  DALING1:

  JNB 45H,EXIT[_]DALING

  MOV A,21H   ;響鈴起始時間由秒�(shí)時控�

  CJNE A,#00H,L1

  CLR BEEP

  L1:

  MOV A,21H

  CJNE A,#05H,L2

  SETB BEEP

  L2:

  CJNE A,#07H,L3

  CLR BEEP

  L3:

  CJNE A,#12H,EXIT[_]DALING

  SETB BEEP

  RET

  /*****響鈴方式2程序(響5秒)*****/

  DALING2:

  JNB 44H,EXIT[_]DALING

  MOV A,21H   ;響鈴起始時間由秒�(shí)時控�

  CJNE A,#00H,L4

  CLR BEEP

  L4:

  MOV A,21H

  CJNE A,#05H,EXIT[_]DALING

  SETB BEEP

  RET

  EXIT[_]DALING:

  RET

  END     ;程序�(jié)�

維庫電子�,電子知�,一查百��

已收錄詞�155781

桂平�| 临桂�| 佛教| 调兵山市| 静宁�| 安龙�| 合阳�| 北京�| 博湖�| 洛阳�| 江山�| 江口�| 神木�| 许昌�| 棋牌| 思茅�| 河西�| 栾城�| 桃园�| 咸阳�| 娄烦�| 阳春�| 眉山�| 桂阳�| 调兵山市| 潞城�| 平原�| 米易�| 晋江�| 阳春�| 彭水| 广南�| 福州�| 阜城�| 白水�| 东莞�| 浙江�| 乌鲁木齐�| 云梦�| 平利�| 临泉�|