永发信息网

单片机跑马灯编程

答案:2  悬赏:60  手机版
解决时间 2021-04-20 22:26
  • 提问者网友:斑駁影
  • 2021-04-19 22:57
P0口做输出控制8个发光二极管,使之从左向右逐一循环点亮,时间间隔1秒(一秒实现方法,使用T0,方式1.定时20ms,中断50次
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-04-19 23:23

ORG 0000H


AJMP MAIN


ORG 000BH


MOV TH0,#(65535-20000)/256;
MOV TL0,#(65535-20000) MOD 256;
INC R7


RETI


MAIN:


SETB EA
SETB ET0
MOV TMOD,#01H
MOV TH0,#(65535-20000)/256;
MOV TL0,#(65535-20000) MOD 256;
SETB TR0
MOV A,#0FFH


BB:CJNE R7,#50,$


MOV R7,#0


CLR C


RRC A


MOV P0,A
CJNE A,#00H,BB
MOV A,#0FFH


AJMP BB


END


全部回答
  • 1楼网友:北方的南先生
  • 2021-04-19 23:51

#include<reg52.h> #include <intrins.h>

int a,temp;

void intser() interrupt 1 using 0 //定时20MS { TH0=-20000/256; TL0=-20000%256; a++;

} void main() { EA=1; ET0=1; TMOD=0x01; TH0=-20000/256; TL0=-20000%256; TR0=1; temp=0xfe; while(1) { if(a==50) //判断是否到了1秒,20MS*50 { temp=_crol_(temp,1); //左移一位,_cror_ 右移 P0=temp; a=0; }

} }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯