程序如下:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV 38H, #0
MOV 39H, #0
MOV 3AH, #0
MOV R0, #31H
MOV R2, #4
ADD_LOOP:
MOV A, 3AH
ADD A, @R0 ;先加31H的
MOV 3AH, A
DEC R0
MOV A, 39H
ADDC A, @R0 ;再加30H的
MOV 39H, A
MOV A, 38H
ADDC A, #0
MOV 38H, A
INC R0
INC R0
INC R0 ;转到33H
DJNZ R2, ADD_LOOP ;循环加四次,和就在38H、39H、3AH(低字节)中
;――――下面求平均。右移2位,即除以4
CLR C
MOV A, 38H
RRC A
MOV B, A
MOV A, 39H
RRC A
MOV 3BH, A
MOV A, 3AH
RRC A
MOV 3CH, A
MOV A, B
RRC A
MOV A, 3BH
RRC A
MOV 3BH, A
MOV A, 3CH
RRC A
MOV 3CH, A
SJMP $ ;结束,平均值在3BH 3CH。
END
Ⅱ 单片机显示0到20后清零
硬件自动清零就是当某种条件成立,硬件会自动把该位清零。
比如定时计数器工作时,当定时时间到了,定时中断请求标志位硬件自动置位,当cpu响应了中断以后就会自动把该位清零。所谓的软件清零,就是要在程序中,通过指令把该位清零。
Ⅲ 单片机清零
这种一般这样搞还可以,程序里隔一段时间显示一次,也就是循环显示,当然还要循环检测按键,当第二次按键按下时,给那几个变量赋值,全部清零,然后就不管了,等下一次显示时就更新了,
但是你用的是液晶显示就可以不这样,每次这几个变量改变时显示一次,应为液晶显示后不会消失,方法就像楼上朋友那样,
祝你好运
Ⅳ 单片机清零程序如何写
累加器和位清零可用CLR(如:CLR
A,,,CLR
C)或者直接赋0值(如:mov
a,#00h).还有一种清零就是系统复位,赋位到初始的状态,单片机的RST脚。(当然此种复位有的是零状态(如:PC)。有的是1状态(P0~P3),还有的是不定状态(SBUF)),此种复位可手动也可上电自动,依外部电路而行
Ⅳ 单片机计数器清零
其他的和你的按键显示的程序相同,只要加如下一段清0的程序就可以了。
...按键判断/去抖程序...
CLR A
MOV TH0,A
MOV TH1,A
MOV TL0,A
MOV TL1,A
...显示程序...
不过如果你的定时器是开的话,你一清完0,定时器马上又计数了,可能显示出来的不是0,而是一个比0稍微大的数。你可以在清0之前先关闭定时器,显示完之后再开启定时器。希望我的回答对你有所参考吧。
Ⅵ 将单片机片内一组RAM单元清0的函数,大佬说一下每一步的步骤含义吧
没啥好说的,这个函数仅适用于51单片机。清零也限于从片内RAM的30h开始的32个字节。就是在主函数里调用一个专用清零函数,指定起始偏移和清零长度;在清零函数里循环赋零。
Ⅶ 单片机清零程序的原理是什么
。。。。原理就是楼上说的那样了,详细我觉得太细了也不好写。 清零就是清零,就是把原来的数替换成0,就这样。 实验报告的原理应该不用写到这样细吧。
Ⅷ 单片机的硬件清零和软件清零是什么意思有什么区别
硬件清零或者置1, 是指 一旦符合条件,单片机将自动完成动作(清0或置1)。
软件清零或者置1, 是指必须用程序才能去完成这个动作。
例子:
硬件清0:
使用中断使能寄存器的ET0和中断函数来配置定时器0, 溢出后。 中断标志TF0=1, 进入中断函数后, TF0自动清0 不用再函数中写TF0=0;
软件清0:
不用中断使能寄存器的ET0和中断函数, 只用TCON和TMOD来配置定时器0, 溢出后 中断标志TF0=1, 这时, 要在函数中写 TF0=0; 来手动清零。
Ⅸ 单片机接收到的数据 下次开机怎么吧数据清零
如果你的系统里面没有静态存储器或者其他可以掉电保存的存储器,那么不用担心数据清零的问题,一掉电自动清零了,下次开机以前的一切数据都不复存在。如果有记忆的,那么上电时直接先调一个清零程序就好。
Ⅹ 单片机清零实验怎样查看实验结果
KEIL仿真中可以查看寄存器或变量的值。