采用實時時鐘芯片ds1302+at89c2051的紅外遙控led電子鐘_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p>  第1節(jié) 引 言………………………………………………………………… 1</p><p>  第2節(jié) 電子鐘硬件設(shè)計………………………………………………………2</p><p>  電子鐘的工作原理……………………………………………………2</p><p>

2、;  電子鐘的硬件電路……………………………………………………3</p><p>  第3節(jié) 系統(tǒng)軟件設(shè)計…………………………………………………………5</p><p><b>  一.引言</b></p><p>  自制LED電子鐘在很多電子報刊雜志上都可以見到,但大多數(shù)在斷電后都要重新設(shè)置時間等參數(shù),給使用帶來很多不便。也有用后備電池作

3、為備用電源的,但往往體積較大。本文介紹的LED電子鐘克服了以往的弊端,而且采用了家電通用的紅外遙控器進行控制,方便使用。有一路鬧鈴輸出,可以通過遙控器設(shè)置鬧鈴時間及允許與否。</p><p><b>  二.電子鐘硬件設(shè)計</b></p><p><b>  電子鐘的正面</b></p><p><b>  電子

4、鐘的背面</b></p><p><b>  工作原理 </b></p><p>  DS1302為達拉斯公司的一種實時時鐘芯片,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32768Hz晶振。AT89C2051作為主控芯片,一是對接收到的紅外遙控編碼進行判斷識別,并執(zhí)行相應的處理;第二就是定期的讀取時鐘

5、芯片DS1302中的時間并把小時和肥以示在4位LED中;第三就是對設(shè)置的鬧鈴時間與實時時間進行比較,如果時間相同且鬧鈴允許,那么蜂鳴器就會以1秒的周期鳴響一分鐘,提醒使用者。如果要停止鳴鬧,只要按遙控器相應鍵就可以關(guān)閉鬧鈴。鬧鈴時間保存在DS1302自帶的RAM中,不需要單獨的EEPROM。</p><p><b>  硬件電路 </b></p><p>  圖一為電

6、子鐘的原理圖,IC2為DS1302,電子愛好者可以向MAXIM公司索取免費樣品。Y2為 32768 Hz石英晶振,可以用普通電子表里的。IC3為三腳的塑封一體化紅外接收頭。LED1-4 為高亮度共陽數(shù)碼管。89C2051所用的晶振Y1如果沒有10MHz也可以用其他12M以內(nèi)的代替,只要修改程序中YS1和YS2的延時參數(shù),讓其保持延時長度不變就行。調(diào)整R2可以改變數(shù)碼管亮度。P1口接數(shù)碼管的八字段。數(shù)碼管左兩位顯示小時,右兩位顯示分,當顯

7、示的是鬧鈴時間時閃動。第二位和第三位的小數(shù)點作為秒閃動,注意第三位數(shù)碼管按圖一布好印制版后安裝時要旋轉(zhuǎn)180°,以便讓時和分之間出現(xiàn)“:”,最后一位小數(shù)點作為鬧鈴開關(guān)標志,亮表示鬧鈴開啟。蜂鳴器B2采用小型自帶音源的。要特別說明的是備用電源B1,可以用電池或者超級電容(10萬uF以上)。雖然DS1302在主電源掉電后,耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的那種3.6V充電電池。如果斷

8、電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容代替。100uF就可以保證1小時的正常走時。DS1302在第一</p><p><b>  軟件</b></p><p>  軟件部分的重點是對DS1302的操作以及紅外遙控的解碼。單片機解碼可參看其他文章,這里主要對設(shè)置部分作一些說明: 遙控器采用長虹彩電K11F型遙控器,遙控器按照16位地址碼,8位數(shù)據(jù)

9、碼以及8位數(shù)據(jù)碼的反碼發(fā)送。表一列出了各按鍵的編碼及本電子鐘對應的動作。如果采用其他遙控器,需對程序相應部分的編碼作修改。操作方法中,任意是指該鍵第一次按后,進入該狀態(tài),再次按后退出該狀態(tài)。時間設(shè)置:按“菜單”鍵進入設(shè)置狀態(tài),LED只顯示正常時間的小時,按“↑↓”鍵調(diào)整數(shù)值,按“←“、”→”鍵可在鬧鈴與正常時間之間移動。任意時刻再次按“菜單”鍵就退出設(shè)置。鬧鈴設(shè)置:鬧鈴時間在時間設(shè)置中進行。鬧鈴允許和取消可在任意時刻按“靜音”鍵。顯示開

10、關(guān):可在任意時刻按“顯示”鍵開啟和關(guān)閉顯示器。</p><p>  初始化:在按“菜單”鍵進入設(shè)置狀態(tài)后任意時刻按“日歷”鍵,初始化后的時間為 2002/12/1/12:00:00</p><p>  ;DS1302+AT89C2051的LED鐘</p><p>  ;遙控器各按鍵數(shù)據(jù)碼,可根據(jù)不同的遙控器修改對應的鍵碼</p><p> 

11、 muteM EQU 10h ;靜音鍵 鬧鈴開/關(guān)</p><p>  timerT EQU 0Ch ;菜單鍵 進入/退出設(shè)置狀態(tài)</p><p>  leftL EQU 46h ;左移鍵 </p><p>

12、  rightR EQU 47h ;右移鍵</p><p>  upU EQU 19h ;增加鍵</p><p>  downD EQU 1dh ;減少鍵</p><p>  d_off EQU 16H ;顯示鍵

13、 LED數(shù)碼管顯示/關(guān)閉</p><p>  recall EQU 44H ;日歷鍵 DS1302初始化操作</p><p>  K_on BIT P3.0 ;鬧鈴輸出</p><p>  LED1 BIT P3.3</p><p>

14、;  LED2 BIT P3.4</p><p>  LED3CLK BIT P3.5 ;DS1302</p><p>  LED4IO BIT P3.7</p><p>  RST BIT P3.1</p><p>  SECOND EQU 60H</p><p>

15、;<b>  ;60H 秒</b></p><p><b>  ;61h 分</b></p><p><b>  ;62h 時</b></p><p><b>  ;63h 日</b></p><p><b>  ;64h 月</

16、b></p><p><b>  ;65h DAY</b></p><p><b>  ;66h 年</b></p><p>  ;6Ah 鬧分 from 00(1302)</p><p>  ;6BH 鬧時 from 01(1302)</p><p&g

17、t;  ORG 0000H</p><p>  AJMP START</p><p>  ORG 0003H</p><p>  LJMP S_INT ;IRF</p><p>  ORG 000BH ;200Us</p><p>  LJMP P_INT

18、 ;</p><p>  ORG 001BH ;display LED</p><p>  LJMP DISPLAY</p><p>  ;main program</p><p>  ORG 0030H</p><p>  START: CLR RST&l

19、t;/p><p>  MOV SP,#2AH</p><p>  SETB 05H</p><p>  CLR 06H</p><p>  SETB 07H;CLR 07H</p><p>  CLR 08H</p><p>  CLR 09H</p>

20、;<p>  CLR 0AH</p><p>  CLR 0BH</p><p>  CLR 0CH</p><p>  SETB 0DH</p><p>  CLR 0EH</p><p>  CLR 0FH</p><p>  CL

21、R 10H</p><p>  CLR 11H</p><p>  MOV R2,#00H ;</p><p>  MOV R3,#00H ;</p><p>  MOV TMOD,#12H</p><p>  MOV TL1,#0e5H

22、 ;wait </p><p>  MOV TH1,#0BeH</p><p>  MOV TH0,#3FH ;200uS 3f</p><p>  MOV TL0,#3FH</p><p><b>  SETB ET0</b></p><p><b>  S

23、ETB ET1</b></p><p><b>  setb pt0</b></p><p><b>  SETB TR0</b></p><p><b>  SETB TR1</b></p><p>  SETB IT0 ;&

24、lt;/p><p>  SETB EX0 ;</p><p><b>  CLR PX0</b></p><p>  ;LCALL SET1302 ;初始化</p><p>  MOV R1,#0C1H ;取定時參數(shù)從1302中</p>

25、<p>  acall T_6061</p><p>  MOV 6AH,A ;M</p><p>  MOV R1,#0C3H</p><p>  ACALL T_6061</p><p>  MOV 6BH,A ;H</p><p>  MOV

26、 61H,#0</p><p>  MOV 62H,#0</p><p><b>  SETB EA</b></p><p><b>  sjmp $</b></p><p>  DISPLAY: PUSH ACC</p><p><b>  PUSH P

27、SW</b></p><p>  MOV TL1,#0e0H ;wait how long to display (20ms)</p><p>  MOV TH1,#0b0H</p><p>  mov dptr,#tab1</p><p>  JB 0EH,DIS2</p><

28、;p>  JB 0FH,DIS3</p><p>  JB 10H,DIS4</p><p>  JB 11H,DIS5</p><p>  JNB 0DH,D_OUT</p><p>  JNB 08H,D_GO ;定時到時,顯示閃爍</p><p>  JNB

29、 07H,D_OUT</p><p>  D_GO: MOV DPTR,#TAB1</p><p>  MOV A,62H</p><p>  ANL A,#0FH</p><p><b>  MOV B,A</b></p><p>  MOV A,62H</p&g

30、t;<p><b>  SWAP A</b></p><p>  ANL A,#07H</p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED1</p><p>  LCALL DL2M</p&

31、gt;<p>  SETB LED1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV C,07H</p><p>  MOV acc.7,C ;秒燈閃爍</p><p>  MOV

32、 P1,A</p><p>  CLR LED2</p><p>  LCALL DL2M</p><p>  SETB LED2</p><p>  mov dptr,#tab2 ;倒裝LED字段表</p><p>  MOV A,61H</p><p>

33、  ANL A,#0FH</p><p><b>  MOV B,A</b></p><p>  MOV A,61H</p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPT

34、R</p><p>  MOV C,07H</p><p>  MOV acc.6,C ;秒燈閃爍</p><p>  MOV P1,A</p><p>  CLR LED3CLK</p><p>  LCALL DL2M</p><p>  SETB LED3CLK<

35、;/p><p>  mov dptr,#tab1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV C,06H</p><p><b>  cpl c</b></p>&

36、lt;p>  MOV acc.7,C ;鬧鈴指示燈</p><p>  MOV P1,A</p><p>  CLR LED4IO</p><p>  LCALL DL2M</p><p>  SETB LED4IO</p><p>  D_OUT: SETB TR1</p>

37、<p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DIS2: AJMP DIS_2</p><p>  DIS3: AJMP DIS

38、_3</p><p>  DIS4: AJMP DIS_4</p><p>  DIS5: AJMP DIS_5</p><p>  DIS_2: mov dptr,#tab1 ;顯示設(shè)置小時</p><p>  MOV 6FH,62H</p><p>  ACALL B

39、CD_HEX</p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED1</p><p>  LCA

40、LL DL2M</p><p>  SETB LED1</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED2</p><p>  LC

41、ALL DL2M</p><p>  SETB LED2</p><p><b>  SETB TR1</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b

42、>  RETI</b></p><p>  DIS_3: MOV DPTR,#TAB2 ;顯示設(shè)置分</p><p>  MOV 6FH,61H</p><p>  ACALL BCD_HEX</p><p>  MOV B,#10</p><p><b

43、>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED3CLK</p><p>  LCALL DL2M</p><p>  SETB LED3CLK</p><p>

44、;<b>  MOV A,B</b></p><p>  MOV DPTR,#TAB1</p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED4IO</p><p>  LCALL DL2M</p>

45、<p>  SETB LED4IO</p><p><b>  SETB TR1</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b&

46、gt;</p><p>  DIS_4: mov dptr,#tab1 ;顯示設(shè)置鬧時</p><p>  JNB 07H,D4_OUT ;顯示時閃爍</p><p>  MOV A,6BH</p><p>  MOV B,#0AH</p><p><

47、;b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED1</p><p>  LCALL DL2M</p><p>  SETB LED1</p><p><

48、;b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED2</p><p>  LCALL DL2M</p><p>  SETB LED2</p><p>  

49、D4_OUT: SETB TR1</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DIS_5: MOV DPTR,#TAB2</p

50、><p>  JNB 07H,D5_OUT ;顯示時閃爍</p><p>  MOV A,6AH ;顯示設(shè)置鬧分</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p> 

51、 MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED3CLK</p><p>  LCALL DL2M</p><p>  SETB LED3CLK</p><p>  MOV DPTR,#TAB1</p><p><b&

52、gt;  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,A</p><p>  CLR LED4IO</p><p>  LCALL DL2M</p><p>  SETB LED4IO</p><p> 

53、 D5_OUT: SETB TR1</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DL2M: MOV 43H,#14H

54、 ; every LED(2ms)</p><p>  DL2: MOV 44H,#14H</p><p>  DL1: NOP</p><p><b>  NOP</b></p><p>  DJNZ 44H,DL1</p><p>  DJNZ 43H,DL2</p&g

55、t;<p><b>  RET</b></p><p>  ;************************定時讀取1302時間及判斷鬧鈴時間是否到*******</p><p>  P_INT: PUSH ACC</p><p><b>  PUSH PSW</b></p><

56、p><b>  INC R2</b></p><p>  CJNE R2,#250D,P_OUT</p><p>  MOV R2,#00H</p><p><b>  INC R3</b></p><p>  CJNE R3,#10D,P_OUT</p><

57、;p>  MOV R3,#00H</p><p><b>  CPL 07H</b></p><p>  MOV P1,#0FFH</p><p>  ACALL R_1302</p><p>  OUT: JNB 06H,P_OUT</p><p>  MOV

58、A,6BH</p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p><b>  SWAP A</b></p><p><b>  ADD A,B</b></p><p>  CJNE A,

59、62H,PP_OUT</p><p>  MOV A,6AH</p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p><b>  SWAP A</b></p><p><b>  ADD A,B&l

60、t;/b></p><p>  CJNE A,61H,PP_OUT</p><p>  SETB 08H ;定時到標志</p><p>  MOV C,07H</p><p><b>  cpl c</b></p><p>  MOV K_ON,C

61、</p><p>  P_OUT: POP PSW</p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  PP_OUT: SETB K_ON</p><p><b>  CLR 08

62、H</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  ;************************有接收到遙控器信號****

63、***</p><p>  S_INT:CLR EA</p><p>  PUSH ACC</p><p>  PUSH PSW</p><p>  PUSH DPH</p><p>  PUSH DPL</p><p>  PUSH 02H</p><p

64、>  PUSH 03H</p><p>  MOV R6,#10D ;</p><p>  SB: ACALL YS1</p><p>  JB P3.2,EXIT</p><p>  DJNZ R6, SB</p><p>  JNB P3.2, $ ;</p&g

65、t;<p>  ACALL YS2 ;</p><p>  JB P3.2,EXIT</p><p>  MOV R1,#1AH ;</p><p>  MOV R2,#4D</p><p>  PP: MOV R3,#8D</p><p>  JJJJ:

66、JNB P3.2,$</p><p>  ACALL YS1</p><p>  MOV C,P3.2</p><p>  JNC UUU</p><p>  JB P3.2,$</p><p>  UUU: MOV A,@R1</p><p><b&g

67、t;  RRC A</b></p><p>  MOV @R1,A</p><p>  DJNZ R3,JJJJ</p><p><b>  INC R1</b></p><p>  DJNZ R2,PP</p><p>  ;----------------

68、---------------------</p><p>  MOV A,1AH ;</p><p>  XRL A,#40h ;判斷1AH的值是否等于遙控器低8位地址(40h)</p><p>  JNZ EXIT ;</p><p>  MOV A,1bH</p><p> 

69、 XRL A,#0bfh ;再判斷高8位地址是否正確(0bfh)</p><p><b>  JNZ EXIT</b></p><p>  MOV A,1CH</p><p><b>  CPL A</b></p><p>  XRL A,1DH ;將1CH的值取反后和1D

70、H比較 不同則無效丟棄(核對數(shù)據(jù)是否準確)</p><p><b>  JNZ EXIT</b></p><p>  ACALL DO ;相應按鍵的處理</p><p>  EXIT: SETB EA</p><p><b>  POP 03H</b></p><

71、;p><b>  POP 02H</b></p><p><b>  POP DPL</b></p><p><b>  POP DPH</b></p><p><b>  POP PSW</b></p><p><b>  POP

72、 ACC</b></p><p><b>  RETI</b></p><p>  ;--------------------delay-----------------------</p><p>  YS1: MOV 70H,#16D ;延時1</p><p>  D1: MOV

73、71H,#21D</p><p>  DJNZ 71H,$</p><p>  DJNZ 70H,D1</p><p><b>  RET</b></p><p>  YS2: MOV 70H,#09D ;延時2</p><p>  D2: MOV 71H,#220D

74、</p><p>  DJNZ 71H,$</p><p>  DJNZ 70H,D2</p><p><b>  RET</b></p><p>  ;---------------------------------------------------------</p><p>  

75、TAB: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;TAB1 LED數(shù)碼管顯示表 TAB遙控器鍵值表(未用)</p><p>  ;TAB1: DB 3FH,11H,5EH,5BH,71H,6BH,6FH,19H,7FH,7bH,77H,7CH,39H,5EH,79H,71H</p><p>  tab1: DB 0C0H

76、,0F9H,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0a7h,0a1h,86h,8EH</p><p>  TAB2: DB 0c0H,0f9H,64H,70H,59H,52H,42H ;倒裝LED段碼表</p><p>  ;0CH 為設(shè)置標志,0DH為全顯示標志,0EH為顯示設(shè)置小時標志,0FH為顯示設(shè)置分標志</p>

77、<p>  ;10H 為顯示設(shè)置鬧時標志,11H為顯示設(shè)置鬧分標志</p><p><b>  ;增加鬧時靜音功能</b></p><p>  ;mute-10h,timer-0eh,left-46h,right-47h,up-19h,down-1dh</p><p>  DO: MOV A,1CH</p>

78、<p>  CJNE A,#TIMERT,REDO ;代碼不是設(shè)置/退出鍵</p><p>  JNB 0CH,SET1 ;是,則進入</p><p>  CLR 0CH ;是,已經(jīng)進入,則退出</p><p>  SETB 0DH ;恢復正常顯示</p&

79、gt;<p>  CLR 0EH</p><p>  CLR 0FH</p><p>  CLR 10H</p><p>  CLR 11H</p><p><b>  RET</b></p><p>  SET1: SETB 0CH<

80、/p><p>  SETB 0EH</p><p>  CLR 0DH</p><p>  CLR 0FH</p><p>  CLR 10H</p><p>  CLR 11H</p><p><b>  RET</b></p>

81、;<p>  REDO: CJNE A,#MUTEM,REDO1 ;不是設(shè)置鍵的處理REDO1,2,3,4...</p><p>  LJMP MUTE ;MUTE?</p><p>  REDO1: CJNE A,#D_OFF,DO_SET2</p><p>  LJMP DIS_OFF

82、 ;關(guān)閉顯示</p><p>  DO_SET2:JB 0CH,SET2 ;時間設(shè)置的處理</p><p><b>  RET</b></p><p>  SET2: CJNE A,#UPU,SET2A</p><p>  LJMP INC1 ;+加(^

83、)</p><p>  SET2A: CJNE A,#DOWND,SET2B</p><p>  LJMP DEC2 ;- 減</p><p>  SET2B: CJNE A,#RIGHTR,SET2C</p><p>  LJMP RIGHT ;RIGHT右移(>)

84、</p><p>  SET2C: CJNE A,#LEFTL,SET2D</p><p>  LJMP LEFT ;LEFT左移(<)</p><p>  SET2D: CJNE A,#RECALL,SET2EXT ;DS1302初始化</p><p>  LJMP SET1302&l

85、t;/p><p>  SET2EXT:RET</p><p>  ;--------------------------------INC------------------------</p><p>  INC1: JB 0EH,INCH</p><p>  JB 0FH,INCM</p><p&g

86、t;  JB 10H,INC_H</p><p>  JB 11H,INC_M</p><p><b>  RET</b></p><p>  INC_H: INC 6BH ;鬧鐘小時增加</p><p>  MOV A,6BH</p>&l

87、t;p>  CJNE A,#24D,INCH3</p><p>  MOV 6BH,#0</p><p>  INCH3: MOV R1,#0C2H</p><p>  MOV R0,6BH</p><p>  ACALL SETONE ;寫入DS1302</p>

88、<p><b>  RET</b></p><p>  INC_M: INC 6AH ;鬧鐘分增加</p><p>  MOV A,6AH</p><p>  CJNE A,#60D,INCH4</p><p>  MOV 6AH,#0</p&g

89、t;<p>  INCH4: MOV R1,#0C0H</p><p>  MOV R0,6AH</p><p>  ACALL SETONE ;</p><p><b>  RET</b></p><p>  INCH: ;INC 62H

90、 ;</p><p>  MOV 6FH,62H</p><p>  ACALL BCD_HEX</p><p><b>  INC A</b></p><p>  CJNE A,#24D,INCH1</p><p>  MOV A,#0<

91、/p><p>  INCH1: MOV 6FH,A</p><p>  ACALL HEX_BCD</p><p>  MOV 62H,A</p><p>  MOV R1,#84H</p><p>  MOV R0,62H</p><p>  ACALL

92、SETONE ;</p><p><b>  RET</b></p><p>  INCM: ;INC 61H ;</p><p>  MOV 6FH,61H</p><p>  ACALL BCD_HEX</p><p>

93、;<b>  INC A</b></p><p>  CJNE A,#60D,INCH2</p><p>  MOV A,#0</p><p>  INCH2: MOV 6FH,A</p><p>  ACALL HEX_BCD</p><p>  MOV

94、 61H,A</p><p>  MOV R1,#82H</p><p>  MOV R0,61H</p><p>  ACALL SETONE ;</p><p><b>  RET</b></p><p>  ;-----------------

95、-----------------DEC----------------------</p><p>  DEC2: JB 0EH,DECH</p><p>  JB 0FH,DECM</p><p>  JB 10H,DEC_H</p><p>  JB 11H,DEC_M</p>

96、<p><b>  RET</b></p><p>  DECH: MOV 6FH,62H</p><p>  ACALL BCD_HEX</p><p><b>  DEC A</b></p><p>  CJNE A,#0FFH,DECH1</p&g

97、t;<p>  MOV A,#23</p><p>  DECH1: MOV 6FH,A</p><p>  ACALL HEX_BCD</p><p>  MOV 62H,A</p><p>  MOV R1,#84H</p><p>  MOV R0,62

98、H</p><p>  ACALL SETONE</p><p><b>  RET</b></p><p>  DECM: MOV 6FH,61H</p><p>  ACALL BCD_HEX</p><p><b>  DEC A</b>&l

99、t;/p><p>  CJNE A,#0FFH,DECM1</p><p>  MOV A,#59</p><p>  DECM1: MOV 6FH,A</p><p>  ACALL HEX_BCD</p><p>  MOV 61H,A</p><p>  M

100、OV R1,#82H</p><p>  MOV R0,61H</p><p>  ACALL SETONE</p><p><b>  RET</b></p><p>  DEC_H: DEC 6BH</p><p>  MOV A,6BH</p>

101、;<p>  CJNE A,#0FFH,DECH3</p><p>  MOV 6BH,#23D</p><p>  DECH3: MOV R1,#0C2H</p><p>  MOV R0,6BH</p><p>  ACALL SETONE</p><p><

102、b>  RET</b></p><p>  DEC_M: DEC 6AH</p><p>  MOV A,6AH</p><p>  CJNE A,#0FFH,DECH4</p><p>  MOV 6AH,#59D</p><p>  DECH4: MOV

103、R1,#0C0H</p><p>  MOV R0,6AH</p><p>  ACALL SETONE</p><p><b>  RET</b></p><p>  ;--------------------------------RIGHT----------------------</p>

104、<p>  RIGHT: JB 0EH,RIGHT1</p><p>  JB 0FH,RIGHT2</p><p>  JB 10H,RIGHT3</p><p>  JB 11H,RIGHT4</p><p>  RET ;右移</p

105、><p>  RIGHT1: CLR 0EH</p><p>  SETB 0FH</p><p><b>  RET</b></p><p>  RIGHT2: CLR 0FH</p><p>  SETB 10H</p><p><b>

106、;  RET</b></p><p>  RIGHT3: CLR 10H</p><p>  SETB 11H</p><p><b>  RET</b></p><p>  RIGHT4: CLR 11H</p><p>  SETB 0EH</p&

107、gt;<p><b>  RET</b></p><p>  ;--------------------------------LEFT-----------------------</p><p>  LEFT: JB 0EH,LEFT1</p><p>  JB 0FH,LEFT2</p>

108、<p>  JB 10H,LEFT3</p><p>  JB 11H,LEFT4</p><p>  RET ;左移</p><p>  LEFT1: SETB 11H</p><p>  CLR 0EH</p><p>&l

109、t;b>  RET</b></p><p>  LEFT2: SETB 0EH</p><p>  CLR 0FH</p><p><b>  RET</b></p><p>  LEFT3: SETB 0FH</p><p>  CLR 10H&

110、lt;/p><p><b>  RET</b></p><p>  LEFT4: SETB 10H</p><p>  CLR 11H</p><p><b>  RET</b></p><p>  ;------------------------------M

111、UTE--------------</p><p>  MUTE: setb k_ON</p><p>  CPL 06H ;靜音</p><p>  CLR 08H</p><p><b>  RET</b></p><p>  ;------

112、-----------------------DISPLAY OFF--------</p><p>  DIS_OFF:CLR ET1</p><p>  CPL 05H</p><p>  JNB 05H,REDORE</p><p>  SETB ET1</p><p>  REDO

113、RE: RET</p><p>  ;------------------------------------初始化1302-------------------------</p><p>  SET1302: CLR RST ;2002年1月1日12:00:00</p><p>  CLR LED3CLK</p>&

114、lt;p>  MOV SECOND,#0</p><p>  MOV 61H,#0</p><p>  MOV 62H,#18 ;</p><p>  MOV 63H,#1</p><p>  MOV 64H,#1</p><p>  MOV 65H,#

115、1</p><p>  MOV 66H,#2</p><p>  SETB RST</p><p>  MOV A,#8EH</p><p>  LCALL R_BIT</p><p>  MOV A,#00H</p><p>  LCALL R_BIT</p&

116、gt;<p>  SETB LED3CLK</p><p>  CLR RST</p><p>  MOV R0,#SECOND</p><p>  MOV R7,#7</p><p>  MOV R1,#80H</p><p>  SET1302A:CLR RST<

117、;/p><p>  CLR LED3CLK</p><p>  SETB RST</p><p>  MOV A,R1</p><p>  LCALL R_BIT</p><p>  MOV A,@R0</p><p>  LCALL R_BIT</p>&l

118、t;p><b>  INC R0</b></p><p><b>  INC R1</b></p><p><b>  INC R1</b></p><p>  SETB LED3CLK</p><p>  CLR RST</p>

119、<p>  DJNZ R7,SET1302A</p><p>  CLR RST</p><p>  CLR LED3CLK</p><p>  sETB LED3CLK</p><p><b>  nop</b></p><p>  CLR RST</

120、p><p><b>  nop</b></p><p>  clr led3clk</p><p>  SETB RST</p><p>  MOV A,#90H</p><p>  LCALL R_BIT</p><p>  MOV A,#101001

121、01B ;充電器設(shè)置</p><p>  LCALL R_BIT</p><p>  SETB LED3CLK</p><p>  CLR RST</p><p>  CLR LED3CLK</p><p>  SETB RST</p><p>  MOV

122、 A,#8EH</p><p>  LCALL R_BIT</p><p>  MOV A,#80H</p><p>  LCALL R_BIT</p><p>  SETB LED3CLK</p><p>  CLR RST</p><p><b>  RET

123、</b></p><p>  ;----------------------讀取一RAM ------</p><p>  T_6061: CLR RST</p><p>  CLR LED3CLK</p><p>  SETB RST</p><p>  MOV A,R1</

124、p><p>  LCALL R_BIT</p><p>  LCALL W_BIT</p><p>  SETB LED3CLK</p><p>  CLR RST</p><p><b>  RET</b></p><p>  ;----------------

125、-------------</p><p>  R_1302: MOV R0,#SECOND</p><p>  MOV R7,#7</p><p>  MOV R1,#81H</p><p>  R_1302A: CLR RST</p><p>  CLR LED3CLK</p&

126、gt;<p>  SETB RST</p><p>  MOV A,R1</p><p>  LCALL R_BIT</p><p>  LCALL W_BIT</p><p>  MOV @R0,A</p><p><b>  INC R0</b><

127、/p><p><b>  INC R1</b></p><p><b>  INC R1</b></p><p>  SETB LED3CLK</p><p>  CLR RST</p><p>  DJNZ R7,R_1302A</p>

128、<p><b>  RET</b></p><p>  ;------------------R_BIT------------------</p><p>  R_BIT: MOV R4,#8</p><p>  R_BIT1: RRC A</p><p>  MOV LED4IO,C

129、</p><p>  SETB LED3CLK</p><p>  CLR LED3CLK</p><p>  DJNZ R4,R_BIT1</p><p><b>  RET</b></p><p>  ;-------------------W_BIT--------------

130、---------</p><p>  W_BIT: MOV R4,#8</p><p>  W_BIT1: MOV C,LED4IO</p><p><b>  RRC A</b></p><p>  SETB LED3CLK</p><p>  CLR LED

131、3CLK</p><p>  DJNZ R4,W_BIT1</p><p><b>  RET</b></p><p>  ;--------------------------------------------------</p><p><b>  BCD_HEX:</b></p&g

132、t;<p>  MOV A,6FH</p><p>  ANL A,#0FH</p><p>  MOV B,A</p><p>  MOV A,6FH</p><p>  MOV 6FH,B</p><p><b>  SWAP A</b><

133、/p><p>  ANL A,#0FH</p><p>  MOV B,#0AH</p><p><b>  MUL AB</b></p><p>  ADD A,6FH</p><p>  ;MOV 6FH,A</p><p><b>

134、  RET</b></p><p><b>  HEX_BCD:</b></p><p>  MOV A,6FH</p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p><b>  SWAP

135、 A</b></p><p><b>  ADD A,B</b></p><p>  ;MOV 6FH,A</p><p><b>  RET</b></p><p>  ;-----寫一地址---R1 為地址,R0 為數(shù)據(jù)----------</p><p&

136、gt;  SETONE: CLR LED3CLK</p><p>  CLR RST</p><p>  CLR LED3CLK</p><p><b>  NOP</b></p><p>  SETB RST</p><p>  MOV A,#8EH</p&g

137、t;<p>  LCALL R_BIT</p><p>  MOV A,#00H</p><p>  LCALL R_BIT</p><p>  SETB LED3CLK</p><p>  CLR RST</p><p>  CLR LED3CLK</p><

溫馨提示

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

評論

0/150

提交評論