久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機小旋磁美容儀匯編語言版

作者:佚名   來源:本站原創   點擊數:  更新時間:2009年09月02日   【字體:

上次給大家在單片機論壇發了一個51單片機c語言做的小旋磁美容儀程序,這次再來一個匯編的,在實際應用中這個版本的程序運行起來更穩定,請大家多多指教。

ORG 0000h
AJMP MAIN
ORG 0003H
RETI
ORG 000BH
AJMP TIME0
ORG 0013H
RETI
ORG 001BH
AJMP TIME1

HOTOUT BIT P3.7
XUANOUT BIT P1.0  ;輸出發熱與旋磁引腳定義

XUANKEY BIT P3.0
HOTKEY BIT P3.1  ;定義兩個按鍵的引腳端口

HOT_LED1 BIT P1.3
HOT_LED2 BIT P1.4
XUAN_LED1 BIT P1.5
XUAN_LED2 BIT P1.6

;--------------------以上都為外接引腳的定義.

OPENBIT BIT 01H   ;01H位尋址做為開關機標志位的標識,此值存于可以實現位尋址20H單元處,20.1位。
HOTBIT BIT 02H
XUANBIT BIT 03H


MIN EQU 22H   ;時間分鐘值為存于22H單元中,可以實現位尋址
SEC  EQU 23H   ;JIA累加至20次為1秒鐘,即分鐘值自加1
JIA  EQU 29H   ;50ms每中斷一次累加1

HOTDW EQU 24H
XUANDW EQU 25H   ;將檔位標志寄存器定義,存一至四檔用。


HOTON EQU 26H
HOTON1 EQU 27H   ;存發熱占空比上升延時間值及待裝值。

HOTOFF EQU 28H

XUANON EQU 2AH   ;存旋轉占空比上升延值及待裝值。
XUANON1 EQU 2BH

XUANOFF EQU 2CH    ;存旋轉占空比下延值及待裝值。

;運行過程中的各種變量進行處理 位尋址單元剩21H、2EH與2FH

;-------------------以上皆為內部運算用的位定義.

 


DD1: MOV    R7,#15  ; 裝從20單元清0至29單元所用的標志清除次數
  MOV R0,#20H  ; 在R0裝入地址,用于間接尋址
D1:  MOV @R0,#00H
  INC R0
  DJNZ R7,D1  ;循環清零
  RET

ORG  0030H
MAIN:
  MOV SP,#2FH  ;  將堆棧定義于數據緩存區30H開始存放
  MOV TMOD,#11H    ; 將定時器0與1同置為方式一16位定時器
  MOV TH1,#0FFH
  MOV TL1,#09CH ; 將定時器1定時中斷時間設為100uS中斷一次
  MOV TH0,#3CH
  MOV TL0,#0B0H ; 將定時器0定時中斷時間設為50MS中斷一次
  MOV IP,#08H  ; 將定時器1設為最高中斷級
  MOV IE,#8AH  ; 將總中斷及兩定時器中斷開關閉合
;  SETB TR0   ; T0定時器開始工作
;  SETB TR1   ; T1定時器開始工作
  ACALL DD1   ; 調用DD1子程序,對20至2E的空間進行清零
    SETB HOT_LED1
         SETB HOT_LED2
         SETB XUAN_LED1
         SETB XUAN_LED2  ;對燈進行初始化,待機時全部不亮
  CLR  XUANOUT
  CLR  HOTOUT
  MOV MIN,#18     ;將倒計時間設為30分鐘
  ACALL KEY   ;調用按鍵檢測子程序
  MOV A,HOTDW  ;將熱檔位值賦予A
  ORL A,XUANDW ;將旋轉檔位與熱檔位進行與運算
  JNZ START  ;對A進行檢測,不為0則轉移
  AJMP MAIN

START:
  SETB OPENBIT
  SETB TR0
  SETB TR1   ;將定時器1與定時器2打開

;以下為主循環檢測判斷程序

START1:
    ;調用按鍵檢測程序
  MOV R7,HOTON
  CJNE R7,#0,OUT1;檢測HOTON是否己到0
  JNB HOTBIT,HOT_OFF
  MOV HOTON,HOTON1
  AJMP OUT1
HOT_OFF:
  MOV HOTON,HOTOFF   ;以上自START1起都是對波形值進行裝值的過程

OUT1:
  MOV R7,XUANON
  CJNE R7,#0,OUT2 ;檢測xuanon是否己到0
  JNB XUANBIT,XUAN_OFF
  MOV XUANON,XUANON1
  AJMP OUT2
XUAN_OFF:
  MOV XUANON,XUANOFF  ;以上自OUT1都是對旋轉值進行裝值的過程

OUT2:  MOV R6,MIN
  MOV A,HOTDW  ;將熱檔位值賦予A
  ORL A,XUANDW ;將旋轉檔位與熱檔位進行與運算
  JZ START2  ;對A進行檢測,不為0則轉移
  ACALL KEY
  CJNE R6,#0,START1

START2:
  CLR TR0
  CLR TR1
  AJMP MAIN  ;檢測時間到,或是檔位為0時,自動返回主程序循環狀態 

;-----------------------------------以上為程序的裝值及退出條件設定檢測主循環程序

  
;---------------------------------------以下為定時器0的30分鐘倒計時
TIME0:
  MOV TH0,#3CH
  MOV TL0,#0B0H ; 將定時器0裝初值
  INC JIA   ; 對50MS進行累加
  MOV R5,JIA
  CJNE R5,#20,TOOUT; 對JIA的值進行20判斷
  MOV JIA,#0  ;對JIA值進行清零
  INC SEC   ;達到一秒時累加
  MOV R5,SEC  ; 對秒的值進行1分鐘到達的判斷
  CJNE R5,#60,TOOUT
  MOV SEC,#0
  DEC MIN
TOOUT:
  RETI
;------------------------------------以上為定時中斷0的子程序,分鐘計數

;-----------------------------------------以下為定時中斷1的子程序,占空比調節設置
TIME1:
  MOV TH1,#0FFH
  MOV TL1,#09CH ; 將定時器1裝初值
  CLR EA
  PUSH ACC
  PUSH PSW
  MOV R0,HOTDW
  CJNE R0,#0,CX1
  CLR HOTOUT
  CLR HOTBIT
  AJMP NEXT
CX1:
  DJNZ HOTON,NEXT
  CPL HOTOUT
  CPL HOTBIT
 
NEXT:
  MOV R0,XUANDW
  CJNE R0,#0,CX2
  CLR XUANOUT
  CLR XUANBIT
  AJMP NEXT1

CX2: DJNZ XUANON,NEXT1
  CPL XUANOUT
  CPL XUANBIT

NEXT1:
  POP PSW
  POP ACC
  SETB EA
  RETI
;---------------------------------------以上為定時中斷1的子程序 

;-------------------------------以下為按鍵檢測運算子程序

KEY:
  JNB HOTKEY,KEY11
  AJMP NEXTKEY
KEY11:  MOV R2,HOTDW
  CJNE R2,#0,DDDD
 
DDDD:  MOV R3,#110
  ACALL DELAY10MS
  JNB HOTKEY,KEYCX
  AJMP NEXTKEY
KEYCX:
  INC HOTDW
  MOV R2,HOTDW

  CJNE R2,#4,CL1
  MOV HOTDW,#0
  SETB HOT_LED1
  SETB HOT_LED2
CL1:  CJNE R2,#1,CL2
  MOV HOTON,#3
  MOV HOTON1,#3
  MOV HOTOFF,#7
  CLR HOT_LED1
CL2: CJNE R2,#2,CL3
  MOV  HOTON,#6
  MOV HOTON1,#6
  MOV HOTOFF,#4
  SETB HOT_LED1
  CLR HOT_LED2
CL3: CJNE R2,#3,NEXTKEY
  MOV HOTON,#9
  MOV HOTON1,#9
  MOV HOTOFF,#1
  CLR HOT_LED1

NEXTKEY:
  JNB XUANKEY,KEYCX1
  AJMP OUTKEY
KEYCX1: MOV R2,XUANDW
 CJNE R2,#0,DDD
 MOV R3,#120
 AJMP    CCC
DDD: MOV R3,#98
CCC: ACALL   DELAY10MS
 JNB XUANKEY,KEYCX2
 AJMP OUTKEY
KEYCX2:
 INC  XUANDW
 MOV  R2,XUANDW

 CJNE R2,#4,CL4
 MOV  XUANDW,#0
 SETB XUAN_LED1
 SETB XUAN_LED2
CL4:CJNE R2,#1,CL5
 MOV  XUANON,#4
 MOV  XUANON1,#4
 MOV  XUANOFF,#6
 CLR  XUAN_LED1
CL5:CJNE R2,#2,CL6
 MOV  XUANON,#7
 MOV  XUANON1,#7
 MOV  XUANOFF,#3
 SETB XUAN_LED1
 CLR  XUAN_LED2
CL6:CJNE R2,#3,OUTKEY
 MOV  XUANON,#9
 MOV  XUANON1,#9
 MOV  XUANOFF,#1
 CLR  XUAN_LED1

OUTKEY:       
  RET

DELAY10MS:
D111: MOV R4,#250
D222: DJNZ R4,D222
  DJNZ R3,D111
  RET
 END

關閉窗口

相關文章

主站蜘蛛池模板: 日韩成人av在线播放 | 欧美精品在线免费观看 | 亚洲激情视频在线 | 国产一区影院 | 久久99精品久久久久久 | 精品一区二区三区在线观看国产 | 日韩视频在线播放 | 国产成人精品免费视频大全最热 | 欧美精品v| 久久99精品久久久久久 | 91一区 | 成人日韩| 久草热线 | 中文字幕四虎 | 国产午夜精品一区二区三区嫩草 | 久久精品国产一区二区电影 | 91香蕉嫩草 | 国产精品久久久久久久久久久久冷 | 成人自拍av | 国产精品久久久久久久久久久免费看 | 国产91精品久久久久久久网曝门 | 国产精品久久 | 精品久久国产 | 国产91丝袜在线播放 | 欧美日韩一区二区三区四区 | 国产精品久久久久久久久久久久久 | 久久久久久久久久毛片 | 欧美精品久久久久 | 国产一二三区精品视频 | 天天搞天天操 | 黑人巨大精品欧美一区二区免费 | 亚洲欧美一区二区三区国产精品 | 日日夜夜视频 | 天堂一区二区三区 | 亚洲精品在线国产 | 97福利在线| 亚洲36d大奶网 | 久久国产精品久久久久久久久久 | 日韩中文一区二区三区 | 欧美在线观看一区 | 国产精品久久久久久久久久久久 |