网上的这种程序比较多,也不是很难,自己学学可以编的。
下面是1~8数字循环显示
;仿照例7.7
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
;CLR P2.5
;CLR P2.7
MOV A,#03H ;控制字
MOV DPTR,#6100H;8155的命令状态口地址
MOVX @DPTR,A
DISPLY:MOV R0,#8
MOV R3,#0FEH
MOV A,R3 ;字位
LD:MOV DPTR,#6102H;B口地址
MOVX @DPTR,A ;B口
MOV DPTR,#DTAB
MOV A,R0
MOVC A,@A+DPTR ;查表
MOV DPTR,#6101H
MOVX @DPTR,A ;A口
ACALL DELAY ;延时
MOV A,R3
RL A
MOV R3,A ; 下一位
DJNZ R0,LD ;下一位循环
SJMP DISPLY ;显示了一遍循环
RET
DTAB:DB 6FH,7FH,07H,7DH,6DH
DB 66H,4FH,5BH,06H,3FH ;数字9~0
DELAY: MOV R7,#250
DELAY1: MOV R6,#250
DELAY2:MOV R5,#4
DELAY3: DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET ;延时大约2u*4*255*255=0.5s
END
追问还要用一个端口控制跑马灯的,要同步进行的
追答;仿照例7.7
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#03H ;控制字
MOV DPTR,#6100H
MOVX @DPTR,A
DISPLY:MOV R0,#3
MOV R3,#0FEH
MOV A,R3 ;字位
LD: MOV P1,A ;控制LED灯
MOV DPTR,#6102H
MOVX @DPTR,A ;B口
MOV DPTR,#DTAB
MOV A,#01H
MOVC A,@A+DPTR ;查表
MOV DPTR,#6101H
MOVX @DPTR,A ;A口
ACALL DELAY ;延时
MOV A,R3
RL A
MOV R3,A ; 下一位
DJNZ R0,LD ;下一位循环
SJMP DISPLY ;显示了一遍循环
RET
DTAB:DB 6FH,7FH,07H,7DH,6DH
DB 66H,4FH,5BH,06H,3FH ;数字9~0
DELAY: MOV R7,#250
DELAY1: MOV R6,#250
DELAY2:MOV R5,#4
DELAY3: DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET ;延时大约2u*4*255*255=0.5s
END
谢谢啊,其实我已经做出来了
追答不用客气,好好学习!
用汇编程序实现3个数码管循环闪亮(显示为8),相当于3个LED流水灯,用89c...
MOV R3,A ; 下一位 DJNZ R0,LD ;下一位循环 SJMP DISPLY ;显示了一遍循环 RET DTAB:DB 6FH,7FH,07H,7DH,6DH DB 66H,4FH,5BH,06H,3FH ;数字9~0 DELAY:MOV R7,#250 DELAY1:MOV R6,#250 DELAY2:MOV R5,#4 DELAY3: DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY...
跪求单片机89C51控制交通灯的课程设计
AT89C52是一个低电压,高性能CMOS 8位单片机, 可以用来做单片机流水灯、跑马灯。。。等实验 电路原理图见下图1,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1...
单片机89C51用汇编制作跑马灯P1控制8个LED(D1~D8)灯实现流水灯的效果...
sbit LED2 = P0^2;sbit LED3 = P0^3;sbit LED4 = P0^4;sbit LED5 = P0^5;sbit LED6 = P0^6;sbit LED7 = P0^7;unsigned char Maikuan=0;static unsigned char ledon[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar Occupy_led; \/\/占空比越大,灯越亮 bit lig...
89C51单片机 4*4矩阵键盘加流水灯问题,求个汇编程序代码。
;其实很简单,都不用判断键值,有键按下暂停2S程序如下:ORG 0000H LJMP STA ORG 000BH LJMP T0ISR ORG 0030H STA:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA MOV 30,#0FEH MOV R2,#0 CLR 00H LOOP:MOV P1,#0F0H MOV A,P1 CJNE A,#0F0H,LOOP1 SJMP LOOP...
怎么使89c51单片机用键盘的左右键控制8个led灯左右流水?
单片机流水灯的程序,在百度知道里是最多的,随便搜索一下,就可以搜索到无数个答案,有仿真图和程序,再根据你的仿真图,稍做修改就成了。那两个左右按键,要用按纽BUTTON。如下图所示的接法。要写程序,财富值太少了,恐怕没有人写。
单片机编程,共5题,采用89C51系列
类似c语言编程,做一个循环累加。在keil的调试窗口中监测i的值。(这样的操作没有什么意义,用c,vb也可以做,不要用89c51了)2,如果你是有硬件的,当然要有8位数码管把数值显示出来。就要具备BCD码知识,8位共阴或共阳数码管知识,以及必要的电路知识(能点亮8为数码管)。等等,你要加油哦!
怎么用89C51单片机实现用一个开关控制8个流水灯,要求开关按下去松开是亮...
else while(!P2_7); \/\/按下就循环,等待松开 } void main(void) \/\/主函数名 { while(1) { w(1); P1_0 = 0; w(0); P1_0 = 1;w(1); P1_1 = 0; w(0); P1_1 = 1;w(1); P1_2 = 0; w(0); P1_2 = 1;w(1); P1_3 = 0; w(0); P1_3 =...
8个LED循环点亮,延时程序
;实验目的:本程序主要实现一个简单的流水灯程序 ;即轮流点亮C口的8个灯(先点亮RC0,再熄灭RCO点亮RC1。。。);硬件要求:拨码开关S2全部置ON。include ;调用头文件 __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC ;芯片配置字,...
为什么89C51单片机的P2口不能实现循环右移?
移位后再写到P2口,是写到P2的寄存器中。当有外部引脚被拉低了,那么读出P2的状态与原寄存器P2的状态是不同的,再移位就不是想要的结果了。如果没有猜错的话,你这是数码管显示仿真电路吧,或者是流水灯吧,用P2输出位码,就会出现不能循环右移的现象。解决办法,用一个变量,如ledbit,对变量移位...
如何用89C51单片机控制74HC138译码器点亮32位LED灯? 求详细原理图。高手...
用接口线最少。功能简单的,32灯都可亮,但在同时只能亮一个灯,想要另一个灯亮,就要关掉这个,只能演示一个灯跑动的流水灯。4. 需4片74HC138,5根选择线。以上1.2.3方案,只要程序速度够,可实现各种复杂变化,包括LED灰度控制。所有芯片都可74LS系列,但74HC系列容易驱动,也比较省电。