广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3448 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
22862827
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x1
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
此组 组合语言 想问大家他是用何种写的
想问一下这组 组合语言它是用哪种写法

ERROR_COUNT EQU 20H
ERROR_TIME EQU 21H
ADDR EQU 37H
CNT EQU 38H
SEC EQU 39H
TIME_LO EQU 3AH
TIME_MI EQU 3BH
TIME_HI EQU 3CH
TIME_HI_1 EQU 3DH

TIMER_HI EQU 3EH
TIMER_MI EQU 3FH
TIMER_LO EQU 40H

TIME1 EQU 30H ;;INPUT FIRST
TIME2 EQU 31H
TIME3 EQU 32H
TIME4 EQU 33H
TIME5 EQU 34H
TIME6 EQU 35H

SHOW_TIMER EQU 41H
;;SET PASS
PASS1 EQU 42H ;;LOWEST
PASS2 EQU 43H
PASS3 EQU 44H
PASS4 EQU 45H ;;HIGHEST
;;INPUT PASS
IN_PASS1 EQU 46H ;;LOWEST
IN_PASS2 EQU 47H
IN_PASS3 EQU 48H
IN_PASS4 EQU 49H ;;HIGHEST



FLAG1 EQU 22H
;;FLAG1 BIT DEFINE
NUMBER_FG REG FLAG1.0
SHOW_TIME_FG REG FLAG1.1
CHECK_PASS_FG REG FLAG1.2
ERROR_COUNT_FG REG FLAG1.3

;;8051 PIN DEFINE
EN REG P2.7
RW REG P2.6
RS REG P2.5
RELAY REG P2.4
CS REG P2.3
SK REG P2.2
DI REG P2.1
DO REG P2.0

ORG 00H ;;重开机起始位址
JMP POWER_ON_START

ORG 0BH ;;计时中断 0
JMP TIME_INT0

ORG 13H ;;外部中断 1
JMP EXT_INT1_OUT2

TIME_INT0
PUSH A


DJNZ TIME_LO,TIME_INT0_OUT
MOV TIME_LO,#250
;;50 MS WILL GO HERE

;;WAIT 2 SEC
DJNZ SHOW_TIMER,SHOW_TIME_OUTX
CLR SHOW_TIME_FG
SHOW_TIME_OUTX

DJNZ TIME_MI,TIME_INT0_OUT
MOV TIME_MI,#20
;;1 SEC WILL GO HERE

INC TIMER_LO ;;秒 加 1
CLR C
MOV A,#59 ;;超过 59 秒 , 则清除为 0
SUBB A,TIMER_LO
JNC TIMER_OUT
MOV TIMER_LO,#00H
INC TIMER_MI ;;分 加 1
CLR C
MOV A,#59 ;;超过 59 分 , 则清除为 0
SUBB A,TIMER_MI
JNC TIMER_OUT
MOV TIMER_MI,#00H
INC TIMER_HI ;;时 加 1
CLR C
MOV A,#23 ;;超过 23 时 , 则清除为 0
SUBB A,TIMER_HI
JNC TIMER_OUT
MOV TIMER_HI,#00H

TIMER_OUT

DJNZ ERROR_TIME,NO_UP_11
CLR ERROR_COUNT_FG
MOV ERROR_COUNT,#00H
NO_UP_11

DJNZ TIME_HI,TIME_INT0_OUT
MOV TIME_HI,#60
;;1 MINUTE WILL GO HERE



DJNZ TIME_HI_1,TIME_INT0_OUT
MOV TIME_HI_1,#60
;;1 HOUR WILL GO HERE



;;SETB IE.2 ;;START EXT_INT1


TIME_INT0_OUT
POP A
RETI

EXT_INT1
PUSH A
PUSH B

POP B
POP A
EXT_INT1_OUT2
RETI
;****************
;* MAIN PROGRAM *
;****************
POWER_ON_START
MOV SP,#60H ;;堆叠指标 到 60H
CLR SK
CLR RELAY

;;开机 重设 LCD
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#08H ;FUNCTION SET
ACALL W_INS
MOV A,#01H ;CLEAR DISPLAY
ACALL W_INS
MOV A,#06H ;INPUT MODE SET
ACALL W_INS
MOV A,#0CH ;DISPLAY ON/OFF
ACALL W_INS
;;开机 重设 TIMER 中断
MOV TCON,#00000100B
MOV TMOD,#00000010B
MOV IE,#10000010B
MOV TH0,#256-200 ;;200 US
MOV TL0,#256-200 ;;200 US
MOV TIME_HI_1,#60 ;;1 HOUR
MOV TIME_HI,#60 ;;1 MINUTE
MOV TIME_MI,#20 ;;1 SEC
MOV TIME_LO,#250 ;;50 MS
SETB TR0

MOV ERROR_COUNT,#00H
MOV ERROR_TIME,#60 ;;三此错误 须等 60 秒

MOV TIMER_HI,#00H ;;时钟 设为 0 HOUR
MOV TIMER_MI,#00H ;;时钟 设为 0 MINUTE
MOV TIMER_LO,#00H ;;时钟 设为 0 SECOND

MOV FLAG1,#00H

MOV SHOW_TIMER,#40


MOV ADDR,#4
MOV R0,#42H
CALL READ
MOV R0,#42H
MOV A,@R0
CJNE A,#5AH,COLD_START
;;暖开机到此
JMP POWER_ON_START1
;;冷开机到此
COLD_START
MOV ADDR,#4
MOV R0,#42H
MOV A,#5AH
MOV @R0,A
CALL ERASE
CALL WEN
CALL WRITE
CALL WDS
;;密码 预设为 0000
MOV PASS1,#00H
MOV PASS2,#00H
MOV PASS3,#00H
MOV PASS4,#00H
CALL W_CODE
POWER_ON_START1
;;LCD TABLE1 DB 'A.TIME B.SETTIME'
;;LCD TABLE2 DB 'C.INKEY D.SETKEY'
PUSH A
MOV A,#80H
ACALL W_INS
MOV CNT,#16
MOV DPTR,#TABLE1
ACALL W_STR
MOV A,#C0H
ACALL W_INS
MOV CNT,#16 ;;LCD 16 X 2 ==> 16 BYTE
MOV DPTR,#TABLE2
ACALL W_STR
POP A


CALL SCAN
MOV A,R5
CJNE A,#16,CHECK_SHOW_TIME
JMP POWER_ON_START1
CHECK_SHOW_TIME
CJNE A,#0AH,CHECK_SETTING_TIME
;;显示时间
SHOW_TIME
CALL CLRLCD
MOV SHOW_TIMER,#40
SETB SHOW_TIME_FG
SHOW_TIME_1
;;SHOW_TIME_FG = 0 时 , 返回主程式
JNB SHOW_TIME_FG,POWER_ON_START1
;;LCD 第一行显示 TIME
PUSH A
MOV A,#80H
ACALL W_INS
MOV CNT,#16
MOV DPTR,#TABLE3
ACALL W_STR
POP A

MOV A,#C4H
ACALL W_INS
MOV A,TIMER_HI ;;时
MOV B,#10
DIV AB ;;A 商 , B 余
ADD A,#30H ;;CHANGE INTO ASCII
CALL W_DATA
MOV A,B
ADD A,#30H
CALL W_DATA
MOV A,#':'
CALL W_DATA
MOV A,TIMER_MI ;;分
MOV B,#10
DIV AB ;;A 商 , B 余
ADD A,#30H
CALL W_DATA
MOV A,B
ADD A,#30H
CALL W_DATA
MOV A,#':'
CALL W_DATA
MOV A,TIMER_LO ;;秒
MOV B,#10
DIV AB ;;A 商 , B 余
ADD A,#30H
CALL W_DATA
MOV A,B
ADD A,#30H
CALL W_DATA

J ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容




献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2006-08-18 15:58 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

应该是用 2500 A.D 的 X8051 来编译


献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2006-08-20 21:11 |
sm8009008 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x5
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

有用到MOV这东西的因该只有80X51吧..
我想因该是单晶片的程式...
至于..她这是用来过啥米..我不晓得..


献花 x0 回到顶端 [2 楼] From:台湾台湾固网 | Posted:2006-09-02 18:59 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.059745 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言