我编写了个光电转速测量程序,但是用keil51调试时老是出现说是code-address expected或者是data-address expexted,不知道这到底是什么问题,下面是我的程序: BUF EQU 5AH
spcoun EQU 59H
COUNT EQU 57H
SPCALC bit 00H
ORG 0000H
AJMP START
ORG 1BH
JMP TL1
START: mov sp,#5FH
MOV P2,#0FFH
MOV P0,#0FFH
MOV TMOD,#25h
MOV TH1, #9CH
MOV TL1, #9CH
SETB TR1
SETB ET1
SETB EA
MOV COUNT,#0H
LOOP: JNB SPCALC,LOOP
mov A, spcoun+1
mov B,#10 ;当有6个叶轮时
mul AB
MOV A,B
MOV R5,#5
SUBB A,R5
JC TCL1
MOV P2.0,#0
JMP CHAGN
TCL1: MOV P2.1,#0
CHAGN: MOV A,SPCOUN
MOV B,#10
DIV AB
MOV DPTR,#DISPTAB
MOVC A, @A+DPTR
MOV BUF,A
MOV A,B
MOVC A,@A+DPTR
MOV BUF+1,A
DISP: MOV R0,#BUF
MOV R2,#2
MOV ACC,#01111111H
S1: PUSH ACC
MOV A,@R0
MOV P0,A
POP ACC
MOV P2,ACC
RR A
INC R0
DJNZ R2,S1
Jmp LOOP
TL1: PUSH ACC
PUSH PSW
CLR ET0
CLR ET1
MOV TL0,#00H
MOV TH0,#00H
MOV TL1,#9CH
MOV TH1,#9CH
MOV R5,#10000
CLR TF1
SETB TR0
SETB TR1
FWAIT: JNB TF0,FWAIT0
FWAIT1: DJNZ R5,FWAIT2
CLR TR0
CLR TR1
MOV spcoun,TH0
MOV spcoun,TL0
CLR A
MOV TH0,A
MOV TL0,A
SETB SPCOUN
MOV COUNT,#0
JMP INTEND
FWAIT2: CLR TF0
FWAIT0: SJMP FWAIT
POP PSW
POP ACC
INTEND: RETI
DISPTAB :DB 0CH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
RET
END
在KEIL里写ASM先把生成工程时自带的那个A51文件去掉
其它的看看还有啥?
又出现了问题,好不容易拼拼凑凑出来的程序,然后又是有些错误,请大侠帮忙看一下,这是我修改后的程序,没有错误,但是得不出结果,不知道是什么原因
BUF EQU 30h
spcoun EQU 33h
SPCALC bit 00H;运算标志位
ORG 0000H
JMP START
ORG 000BH ;定时中断0入口
JMP TLL1
ORG 30H
START: MOV R4,#0H
mov sp,#5FH
MOV P2,#0FFH
MOV P1,#0FFH
MOV TMOD,#01010001b;T0定时,T1计数,都为方式1
MOV TH0, #HIGH(65536-5000) ;装入计数初值
MOV TL0, #LOW(65536-5000 )
MOV TH1,#00H
MOV TL1,#00H
SETB TR0
SETB ET0 ;T0开中断
SETB EA
LOOP: JNB SPCALC,LOOP
mov A, spcoun
mov B,#10 ;当有6个叶轮时
mul AB
MOV R1,A ;将低8位数字保存在R1中
MOV R5,#5
SUBB A,R5 ;判断转的圈数
JC TCL1 ;不超过5时,绿灯亮
CLR P1.7 ;当超过五时,红灯亮
JMP CHAGN
TCL1: CLR P1.6 ;不超过5时,绿灯亮
CHAGN: MOV A,R1 ;计数器
MOV B,#10 ;16进制转化成10进制
DIV AB ;十位数保存在A中,个位数字在B中
MOV DPTR,#DISPTAB
MOVC A, @A+DPTR
MOV BUF,A
MOV A,B
MOVC A,@A+DPTR
MOV BUF+1,A
CLR SPCALC ;清除运算标志运算
Jmp $ ;等待中断
TLL1: PUSH ACC ;ACC入栈
PUSH PSW ;PSW入栈
SETB RS1 ;启动工作区1
SETB ET1 ;T1开中断
JNB TR1,STR0
JMP G1
STR0: SETB TR1
G1: INC R4 ;每过5ms,寄存器计数加1
MOV A,R4
CJNE A,#201,GO2
CLR TR1
MOV spcoun,TL1
CLR A
MOV TL1,A
MOV TH1,A
SETB SPCALC
MOV R4,#0H
GO2: MOV R0,#BUF ;数码显示程序
MOV A,@R0
MOV P2,A
SETB P1.1
CLR P1.0
INC R0
MOV A,@R0
SETB P1.0
CLR P1.1
MOV P2,A
MOV TH0, #HIGH(65536-5000) ;装入计数初值
MOV TL0, #LOW(65536-5000 )
POP PSW
POP ACC
RETI
DISPTAB :DB 0CH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
RET
END
***************************************************************************
思想决定行动,行动决定习惯,习惯决定命运.
程序员在深圳QQ群,交流产生思想碰撞.
部份专业群:
程序员在深圳c++群15195967
程序员在深圳英语学习群:23864353
程序员在深圳c++Ⅱ17409451
程序员在深圳嵌入式开发群37489763
程序员在深圳移动开发群31501597
程序员在深圳创业群33653422
部份高级程序员群:
高级群I:17538442
高级群II:7120862
部份初、中级程序员群:
第三群:2650485
第五群:29537639
第四群:28702746
第六群:10590618
第七群:10543585
第八群:12006492
第九群:19063074
第十群:2883885
第十一群:25460595
第十二群:9663807
深圳程序员QQ群联盟成立三年多,拥有三十个以上的QQ群,人数超二千多人,大量经验丰富的老手,成员从业于大公司(如微软、IBM,SUN,华为
)、来自国内著名高校和研究院成员,和有丰富实践经验的高级程序员、系统分析员(包括参加过上亿元的项目的架构师),有很热爱技术的成员
(包括自己写操作系统),还有少数女程序员。推荐:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪
6K以下的别加入) c++:15195967 mobile:31501597嵌入式:37489763
——————————————————————————————————————————
如果你不是第一次看到此广告,说明我们最近T了一些人,因为我们要不断提升群的质量,保证名副其实.
-------------------------------------------------------------------------------------
在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
3. 在网上搜索(个人推荐google~)。
4. 向你身边精于此道的朋友打听。
我想我们首先应该靠自己解决问题,然后才是问!
*****************************************************************************
T1中断入口没写,001BH.t1中断和t0中断是两个入口地址