单片机程序解释请逐行解释下这2个程序.CNTA EQU 30H COUNT EQU 31HORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START:MOV CNTA,#00H MOV COUNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0 SETB ET0 SE

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 21:38:35
单片机程序解释请逐行解释下这2个程序.CNTAEQU30HCOUNTEQU31HORG00HLJMPSTARTORG0BHLJMPT0XORG30HSTART:MOVCNTA,#00HMOVCOUNT

单片机程序解释请逐行解释下这2个程序.CNTA EQU 30H COUNT EQU 31HORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START:MOV CNTA,#00H MOV COUNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0 SETB ET0 SE
单片机程序解释
请逐行解释下这2个程序.
CNTA EQU 30H
COUNT EQU 31H
ORG 00H
LJMP START
ORG 0BH
LJMP T0X
ORG 30H
START:MOV CNTA,#00H
MOV COUNT,#00H
MOV TMOD,#01H
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT:JB P2.0,WT
MOV R6,#5
MOV R7,#248
D1:DJNZ R7,$
DJNZ R6,D1
JB P2.0,WT
INC COUNT
MOV A,COUNT
CJNE A,#03H,NEXT
MOV COUNT,#00H
NEXT:JNB P2.0,$
SJMP WT
T0X:NOP
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
MOV DPTR,#TAB
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#GRAPH
MOV A,COUNT
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A
INC CNTA
MOV A,CNTA
CJNE A,#8,NEX
MOV CNTA,#00H
NEX:RETI
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
GRAPH:DB 12H,14H,3CH,48H,3CH,14H,12H,00H
DB 00H,00H,38H,44H,44H,44H,38H,00H
DB 30H,48H,44H,22H,44H,48H,30H,00H
END

单片机程序解释请逐行解释下这2个程序.CNTA EQU 30H COUNT EQU 31HORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START:MOV CNTA,#00H MOV COUNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0 SETB ET0 SE
CNTA EQU 30H ;定义CNTA为寄存器30H
COUNT EQU 31H ;定义COUNT为寄存器31H
ORG 00H ;程序开始
LJMP START ;开始程序入口
ORG 0BH ;定时器T0中断程序入口地址,不过最好用ORG 000BH
LJMP T0X ;T0中断程序入口
ORG 0030H ;主程序开始地址,初始化开始
START:MOV CNTA,#00H ;
MOV COUNT,#00H
MOV TMOD,#01H ;定时器T0工作方式1
MOV TH0,#(65536-1000) / 256 ;这是C的方式,不知道汇编支持不支持?
MOV TL0,#(65536-1000) MOD 256
SETB TR0 ;T0计时开始
SETB ET0 ;开T0中断
SETB EA ;开总中断(你这边最好按 SETB EA
SETB ET0
SETB TR0的顺序)
WT:JB P2.0,WT ;判断P2.0,如果是高,等待.
MOV R6,#5 ;如果P2.0为低,延时开始
MOV R7,#248 ;这个延时是为了消抖
D1:DJNZ R7,$ ;以防误判
DJNZ R6,D1
JB P2.0,WT ;延时结束,继续判断P2.0的状态,如果不为低,继续等待
INC COUNT ;如果为低,COUNT加1
MOV A,COUNT ;判断COUNT的数值
CJNE A,#03H,NEXT ;如果COUNT不等于3,转到 NEXT执行
MOV COUNT,#00H ;如果是3,清COUNT为0
NEXT:JNB P2.0,$ ;等待P2.0为高
SJMP WT ;如果P2.0释放,循环
T0X:NOP ;T0中断服务程序
MOV TH0,#(65536-1000) / 256 ;重装初值
MOV TL0,#(65536-1000) MOD 256
MOV DPTR,#TAB ;把表的基址赋予DPTR
MOV A,CNTA ;把变址给A
MOVC A,@A+DPTR ;查表
MOV P3,A ;把查出的表值给P3口
MOV DPTR,#GRAPH ;把GRAPH赋予DPTR
MOV A,COUNT ;把COUNT值给A
MOV B,#8 ;
MUL AB ;AB相乘,值放A里
ADD A,CNTA ;A加CNTA的值放A里做变址
MOVC A,@A+DPTR ;查表
MOV P1,A ;查表值给P1口
INC CNTA ;连续查
MOV A,CNTA
CJNE A,#8,NEX ;不到8次,中断返回,下次接着上个地址查表
MOV CNTA,#00H ;8次到了,从头开始
NEX:RETI ;中断返回指令
TAB:DB ;表0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
GRAPH:DB 12H,14H,3CH,48H,3CH,14H,12H,00H
DB 00H,00H,38H,44H,44H,44H,38H,00H
DB 30H,48H,44H,22H,44H,48H,30H,00H
END

单片机程序解释请逐行解释下这2个程序.CNTA EQU 30H COUNT EQU 31HORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START:MOV CNTA,#00H MOV COUNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0 SETB ET0 SE 求三种方法,并且每种程序都逐行解释(也就是每句都解释), 求教:单片机C程序中,宏定义中的移位怎么解释?比如#define keyTask (U8)(1 西门子PLC程序解释 请问这string在这是啥意思能不能把这段程序解释下谢谢刚学C语言 求解释这是什么程序!作用是什么? 关于MATLAB程序解释我刚学MATLAB,看不懂以下的程序,有高手帮逐行翻译下吗?小弟在此谢过了~function [Phi,Gamma] = c2d(a,b,t)error(nargchk(3,3,nargin));error(abcdchk(a,b));[m,n] = size(a);[m,nb] = size(b);s = expm([[a b]*t; 大神解释翻译下这个C语言程序~do...while什么意思? 在语言处理程序中,解释程序的功能是() A.解释执行高级语言程序 B.将汇编语言程序编译成目标程序 C.解释执行汇编语言程序 D.将高级语言程序编译成目标程序 能不能简单地解释下计算机程序的编译过程? 求求解释哈这个程序, 数控车宏程序解释 求编写一个函数,计算f(x,y)=x的y次幂 用C语言编的我初学者 这是一道练习题 请给出程序并稍解释下 解释程序的功能是 1解释执行高级语言程序 2将高级语言程序翻译成目标程序 这两个选项的意思有什么不一样? 一些计算机的程序的计算问题!最好能一步一个解释!程序填空1、以下程序是找出50以内所有能构成直角三角形的整数组.请完成程序.Private Sub Command1_Click()For a=1 To 50For b=a To 50c=Sqr(a^2+b^2)If ____ An 求数控高手给解释解释程序内容意思另外请高手给编个内容相同的程序, 数控程序解释N04G02X53Y53R16F100M02这段程序段中各段意义? 请解释下这个c语言程序,不懂int a,b=0,c;scanf(%d,&a);while(a>10)c=a%10;b=b+c;a=a/10;printf(%d,b);