在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。
#include<reg51h>
#include<intrinsh>
仿真图效果。
迁户口是要填表的,其中有一份叫准迁证,又叫迁入证明,需要迁入地户籍机关根据你的申请来开具,这张表里会提到一个投靠人关系,在这里填写如你所说的子女投靠父母。拿着你的准迁证到你现在户口所在地户籍机关开具户口迁出证明,把你的户口从现所在地迁出,再带着所有资料到你迁入地户籍机关落户、办户口本。申请 书市镇派出所户籍科及镇居委会:本人,男, 年 月 日出生,户口在。系初婚。我妻子叫, 年 月 日出生,户口在 ,系初婚。我们于 年 月 日登记结婚,于 年 月 日生育一个女婴/男婴,姓名: ,根据相关规定,我们夫妻申请随父入户。申请人:或申请书派出所:本人住所地为,与住在地的和为关系,现因原因,请求将户口迁入父母家中,望批准。申请人:日期
1,你这个代码不会是20秒才能跑完的,一定是有其他部分在起作用。要查到真相,你要把全部代码发上才能分析清楚的。
2,u8g2库很费资源,这么大的图,如果是arduino uno的板子,静态显示也费劲,别说是移动了…
3,想达到移动显示效果,用显示屏自带的更底层的库去写,不要用u8g2,哪怕是用u8g也比它强。
这是我自己编过项目中的多字节运算子程序
有加法,除法,减乘更为简单类推一下吧
注释写得很详细了,出口入口地址也有标记
;n个数据相加子程序
;11,13,15为进位。12,14,16为相加结果,分别为低8位、中、高8位
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
ADDP: MOV 11H,#00H
MOV 12H,#00H
MOV R0,#20H ;<---"20"起始位置
MOV 12H,@R0
LOOP1: MOV A,R0
ADD A,#03H
MOV R1,A
MOV A,12H
ADD A,@R1
JNB PSW7,SI1
INC 11H
SI1: MOV 12H,A
MOV A,R1
MOV R0,A
CJNE R0,#4DH,LOOP1 ;<---"4D"终止变量,YANG YF DESIGN
MOV A,#00H
MOV 13H,#00H
MOV 14H,#00H
MOV R0,#21H ;<---"21"起始位置
MOV 14H,@R0
MOV A,14H
ADD A,11H
MOV 14H,A
LOOP2: MOV A,R0
ADD A,#03H
MOV R1,A
MOV A,14H
ADD A,@R1
JNB PSW7,SI2
INC 13H
SI2: MOV 14H,A
MOV A,R1
MOV R0,A
CJNE R0,#4EH,LOOP2 ;<---"4E"终止变量
MOV A,#00H
MOV 15H,#00H
MOV 16H,#00H
MOV R0,#22H ;<---"22"起始位置
MOV 15H,@R0
MOV A,16H
ADD A,13H
MOV 16H,A
LOOP3: MOV A,R0
ADD A,#03H
MOV R1,A
MOV A,16H
ADD A,@R1
JNB PSW7,SI3
INC 15H
SI3: MOV 16H,A
MOV A,R1
MOV R0,A
CJNE R0,#4FH,LOOP3 ;<---"4F"终止自定义位置变量 ,
MOV A,#00H
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;除法运算子程序
;支持被除数32位、除数24位,任意位长除法
;被除数需根据计时和累加组数预先置入,调试准确度调整亦调节此值!!!!!!!!
;17H、18H、19H为除数输入口,32H、33H、34H、35H为运算结果
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
SETDIV: MOV P1,#0FFH
JNB P11,MEAS_F ;当P11置1(高)为测速,置0(低)为测频
MEAS_V: MOV R2,#11111111B ;测速
MOV R3,#11101000B ;被除数R2-R5,转移至22H-25H进行变位处理
MOV R4,#00100101B ;被除数为定值,前端0的个数已知
MOV R5,#00001011B ;设被除数前端0的个数已知为y,除数前端0的个数计数为x(R0),后部循环次数为(32-y)-(24-x)=(8-y)+x
JMP STARDIV
MEAS_F: MOV R2,#00111010B ;测频 YANG YF DESIGN
MOV R3,#01100110B ;被除数R2-R5,转移至22H-25H进行变位处理
MOV R4,#00111110B ;被除数为定值,前端0的个数已知
MOV R5,#10000111B ;设被除数前端0的个数已知为y,除数前端0的个数计数为x(R0),后部循环次数为(32-y)-(24-x)=(8-y)+x
JMP STARDIV
STARDIV: MOV 22H,R2
MOV 23H,R3
MOV 24H,R4
MOV 25H,R5
MOV 17H,16H ;除数17H-19H,载入累加后12H、14H、16H结果
MOV 18H,14H
MOV 19H,12H
MOV 32H,#00H ;结果输出位32H-35H初置0 YANG YF DESIGN
MOV 33H,#00H
MOV 34H,#00H
MOV 35H,#00H
MOV R0,#00H
MOV R1,#00H
MOV 10H,#00H
CHECKFRONT: CLR C
MOV A,17H ;检查除数高位是否有空位0
RLC A
JNC MOVFRONT
JMP LOOPCOUNT
MOVFRONT: INC R0
CLR C ;除数高位空位为0时前移
MOV A,19H ;1)
RLC A
MOV 19H,A
MOV A,18H ;2)
RLC A
MOV 18H,A
MOV A,17H ;3)
RLC A
MOV 17H,A
JMP CHECKFRONT
LOOPCOUNT: MOV A,#09H ;
ADD A,R0
MOV 10H,A ;后部循环次数R0
JUDGSUB: MOV PSW,#00H
MOV A,R1
CJNE A,10H,JMP0
JMP RESULTDIV
JMP0: MOV A,22H
MOV C,ACC7 ;!!!!
MOV F0,C
CLR C ;!!!!
SUBB A,17H
JC CANOTSUB ;溢位
JNZ JMP1 ;WHEN ACC!=#00H THEN JUMP
MOV A,23H
CLR C
SUBB A,18H
JC CANOTSUB
JMP1: JNZ JMP2 ;WHEN ACC!=#00H THEN JUMP
MOV A,24H
CLR C
SUBB A,19H
JC CANOTSUB
JMP2: JMP SUBBPART
CANOTSUB: JNB F0,TURN1
JB F0,MOVDR
JMP SUBBPART
SUBBPART: CLR C
MOV A,25H
JNB PSW1,JMPSP1
JB ACC7,JMPSP1
SETB ACC7
MOV A,19H
INC A
MOV 19H,A
JMPSP1: MOV A,24H
SUBB A,19H
MOV 24H,A
MOV A,23H
SUBB A,18H
MOV 23H,A
MOV A,22H
SUBB A,17H
MOV 22H,A
ACALL SETCY_1
JB B0,MOVDL ;除数因条件右移后左移恢复
LJMP JUDGSUB
MOVDR: SETB B0
CLR C ;除数右移一位
MOV A,17H ;1)
RRC A
MOV 17H,A
MOV A,18H ;2)
RRC A
MOV 18H,A
MOV A,19H ;3)
RRC A
MOV 19H,A
MOV PSW1,C ;除数末尾移出暂存至F1
ACALL SETCY_0
JMP SUBBPART
MOVDL: MOV C,PSW1
MOV A,19H ;1)
RLC A
MOV 19H,A
MOV A,18H ;2)
RLC A
MOV 18H,A
MOV A,17H ;3)
RLC A
MOV 17H,A
CLR B0
SETB B1
JMP JUDGSUB
TURN1: CLR C
MOV A,25H ;1)
RLC A
MOV 25H,A
MOV A,24H ;2)
RLC A
MOV 24H,A
MOV A,23H ;3)
RLC A
MOV 23H,A
MOV A,22H ;4)
RLC A
MOV 22H,A
JB B1,JMPCALLSC0
ACALL SETCY_0
JMPCALLSC0: CLR B1
JMP JUDGSUB
SETCY_0: JB B2,JMPSE1 ;B2判断是否置1后第一次置0,是则忽略一次
INC R1 ;已计算次数计数
CLR C ;移入一位0
MOV A,35H
RLC A
MOV 35H,A ;输出地址32H-35H
MOV A,34H
RLC A
MOV 34H,A
MOV A,33H
RLC A
MOV 33H,A
MOV A,32H
RLC A
MOV 32H,A
CLR C
JMPSE1: CLR B2
RET
SETCY_1: INC R1 ;已计算次数计数 YANG YF DESIGN
SETB C ;移入一位1
MOV A,35H
RLC A
MOV 35H,A ;输出地址32H-35H
MOV A,34H
RLC A
MOV 34H,A
MOV A,33H
RLC A
MOV 33H,A
MOV A,32H
RLC A
MOV 32H,A
CLR C
SETB B2
RET
RESULTDIV: ;不可删 YANG YF DESIGN
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
以上就是关于51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写全部的内容,包括:51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写、子女户口投靠申请书如何写、arduino for循环 时间控制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)