汇编程序实现平方运算
时间:11-29
来源:互联网
点击:
P1是位选,p2是段选.
ORG 0000HLJMP MAINORG 000BHLJMP INTMAIN: MOV TMOD,#01H MOV TH0,#0 MOV TL0,#1 SETB EA SETB ET0 SETB TR0MOV R6,#0 ;------------- R6用于存储1~9 MOV R4,#44H ; 刚上电时让第四个数码管显示0;--------------R1~R4用于存放四个数码管对应的段码---------DISPLAY: MOV A,R6 MOV DPTR,#TAB2 MOVC A,@A+DPTR MOV R1,A MOV A,R6 MOV DPTR,#TAB3 MOVC A,@A+DPTR MOV R2,APLAY: MOV P1,#0FFHMOV R7,#100 ;关非正常微亮 DJNZ R7,$MOV A,R4 MOV P1,#7FH MOV P2,AMOV R7,#100 ;调节亮度 DJNZ R7,$MOV P1,#0FFHMOV R7,#100 ;关非正常微亮 DJNZ R7,$ MOV A,R1 MOV P1,#0EFH MOV P2,AMOV R7,#100 ;调节亮度 DJNZ R7,$MOV P1,#0FFHMOV R7,#100 ;关非正常微亮 DJNZ R7,$ MOV A,R2 MOV P1,#0DFH MOV P2,AMOV R7,#100 ;调节亮度 DJNZ R7,$ LJMP DISPLAY;----------------------------------------------------------DELAY: MOV R7,#100 MOV R3,#100LAY: MOV R2,#20DJNZ R2,$ DJNZ R3,LAY DJNZ R7,LAY RET;***********扫描键盘子程序*************************KEYSCAN: MOV P1,#0FHJB P1.3,OFF MOV R7,#100 DJNZ R7,$ JNB P1.3,SCAN RET SCAN: MOV A,#07FHCONTINUE: MOV P1,AJNB P1.3,RECORDRR ACJNE A,#0FEH,CONTINUERECORD: MOV R0,A ;R0用于存储键码KEYDEAL: MOV A,R0CJNE A,#7FH,OFFLCALL K4OFF: MOV P1,#0FFH RETK4: INC R6 LCALL DELAY MOV A,R6 MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV R4,A CJNE R6,#10,RETURN MOV R6,#0RETURN: RET;----------------------------------------------------INT: LCALL KEYSCAN ; 键盘扫描放定时器中断里面 MOV TH0,#0 MOV TL0,#1 RETI;------------------------------------------------------TAB1: DB 44H,0DEH,62H,52H,0D8H,51H,41H,0D6H,40H,50HTAB2: DB 44H,44H,44H,44H,0DEH,62H,52H,0D8H,41H,040HTAB3: DB 44H,0DEH,0D8H,50H,41H,51H,41H,50H,0D8H,0DEH END注意:如果你使用的是STC5608单片机 运行此程序可能会出现的情况:1,数码管闪烁显示;2,数码管显示1、4、7时会卡死或者只有1、4、7可以正常显示 ,如果遇到以上情况建议换用STC5204或换质量较高的电源线然后一切就会正常了。
汇编程序平方运 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)