问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机流水灯正反转

发布网友 发布时间:2022-05-14 20:29

我来回答

3个回答

热心网友 时间:2023-10-28 16:21

#include <reg51.h>
#include <intrins.h>
#include "74hc595.h"
#include "delay.h"
unsigned char w,flag=0;
void delay0_5s();
void delay_t(unsigned char t);
void led();
void main()
{
PT0 = 1;
EA = 1;
EX0 = 1;
EX1 = 1;
IT0 = 1;
IT1 = 1;
TMOD = 0x01;
w = 0x01;
led();
}
void led()
{
while(1)
{
P1 = w;
delay_t(2);
if(flag==0)w = _crol_(w,1);
if(flag==1)w = _cror_(w,1);
}
}
void delay0_5s()
{
unsigned char i;
for(i=0;i<0x0a;i++)
{
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(!TF0);
TF0=0;
}
}
void delay_t(unsigned char t)
{
unsigned char i;
for(i=0;i<t;i++) delay0_5s();
}
void int_0() interrupt 2 //反向点亮LED
{
flag=1;
}
void int_1() interrupt 0 //正向点亮LED
{
flag=0;
}

热心网友 时间:2023-10-28 16:21

#include <reg51.h>
#include <intrins.h>
#include "74hc595.h"
#include "delay.h"
unsigned char w,flag=0;
void delay0_5s();
void delay_t(unsigned char t);
void led();
void main()
{
PT0 = 1;
EA = 1;
EX0 = 1;
EX1 = 1;
IT0 = 1;
IT1 = 1;
TMOD = 0x01;
w = 0x01;
led();
}
void led()
{
while(1)
{
P1 = w;
delay_t(2);
if(flag==0)w = _crol_(w,1);
if(flag==1)w = _cror_(w,1);
}
}
void delay0_5s()
{
unsigned char i;
for(i=0;i<0x0a;i++)
{
TH0=0x3c;
TL0=0xb0;
TR0=1;
while(!TF0);
TF0=0;
}
}
void delay_t(unsigned char t)
{
unsigned char i;
for(i=0;i<t;i++) delay0_5s();
}
void int_0() interrupt 2 //反向点亮LED
{
flag=1;
}
void int_1() interrupt 0 //正向点亮LED
{
flag=0;
}

热心网友 时间:2023-10-28 16:22

你的 TR0=1也就是启动定时器的语句把它写到主程序里面去吧,反正他的位置不对追问这个是定时器,但我需要解决的是中断···我要让一个中断断掉另一个中断

热心网友 时间:2023-10-28 16:22

for(i=1;i=10000;i++);这条语句我就很差异,根据c定义,第一个分号是初值,第二个是循环条件,最后分号为循环执行语句。显然
for(i=1;<10000;i++);这样才对。
再说
j=7;
p0=~(1<
typedef
unsigned
char
uint8;
typedef
unsigned
int
uint16;
sbit
led=p0^0;
sbit
enled=p1^4;
sbit
addr0=p1^0;
sbit
addr1=p1^1;
sbit
addr2=p1^2;
sbit
addr3=p1^3;
main()
{
uint8
j;
uint16
i;
enled=0;
addr0=0;addr1=1;addr2=1;addr3=1;
while(1)
{
if(j==0)j=1;
else
j=j<<1;
p0=j;
for(i=1;i<10000;i++);
}
}
这是单向闪烁的,如果想左右依次来回闪的话,可以参照我这个做下调整。问题说的很透,望加分。

热心网友 时间:2023-10-28 16:22

你的 TR0=1也就是启动定时器的语句把它写到主程序里面去吧,反正他的位置不对追问这个是定时器,但我需要解决的是中断···我要让一个中断断掉另一个中断

热心网友 时间:2023-10-28 16:22

for(i=1;i=10000;i++);这条语句我就很差异,根据c定义,第一个分号是初值,第二个是循环条件,最后分号为循环执行语句。显然
for(i=1;<10000;i++);这样才对。
再说
j=7;
p0=~(1<
typedef
unsigned
char
uint8;
typedef
unsigned
int
uint16;
sbit
led=p0^0;
sbit
enled=p1^4;
sbit
addr0=p1^0;
sbit
addr1=p1^1;
sbit
addr2=p1^2;
sbit
addr3=p1^3;
main()
{
uint8
j;
uint16
i;
enled=0;
addr0=0;addr1=1;addr2=1;addr3=1;
while(1)
{
if(j==0)j=1;
else
j=j<<1;
p0=j;
for(i=1;i<10000;i++);
}
}
这是单向闪烁的,如果想左右依次来回闪的话,可以参照我这个做下调整。问题说的很透,望加分。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本wifi能够联网,但是台式机插网线网络很差 为什么这个wifi就针对一台电脑卡。 电脑连wifi看电视很卡台式电脑连接无线wifi特别卡 为什么本身台式网速特别快,可是用笔记本wifi的网速就特别慢呢... wifi很快电脑很慢是怎么回事电脑和手机连接同一个WiFi手机网速快但是... ...6个梨,要把这些梨全部放在盘子里,至少需要多少个盘子? 看图列算式,一共有多少个梨? 列式:__ 哪些原因会导致长白头发 头上白发特别多是体内缺什么呢还是病还是别的原因 ACL访问控制列表应用 MCS51单片机在RAM中30H~37H单元有连续存放的数值31~38H,将其反向存入40~47H? P1口输入/输出实验如何使LED闪亮的顺序反向(单片机) 单片机的串口接收端为什么加上一个二极管,而且还是反向的,如下图 2014年四川省乐山市夹江县教师资格证考试时间 酒店和携程合作好,还是和美团合作好?求赐教 在携程上顶酒店好还是美团? 电视背景墙装修材料哪种好 2019最流行的电视墙造型 2019和式卧室装修有什么特点 已经知道了自己的装修风格,要怎么去确定颜色基调? 哪种装修风格最耐看 处女膜破裂是什么样的 处女膜破了是怎么样的 王者荣耀虞姬5级铭文有什么用? 射手虞姬铭文怎么搭配 演了27年反派,再穷也要挑戏,终于凭《悬崖》火了,你怎么看? 大家觉得周冬雨挑戏的眼光准吗? 张智尧精通8国语言,爱挑戏,私生活至今成谜,出道20年不红的原因有哪些... 男生对你说你有没有酒精片是什么意思? 说说演员都是如何挑选剧本的呢? 愤怒时要怎样骂人 浴室地漏堵了怎么办 浴室地漏堵塞的原因 佳能50 1.4和适马旧款50 1.4镜头那个好? 如何修改电脑开机密码win7系统 写景 优秀片段 50字内 怎么修改电脑密码win7 50字写景好段 如何建立工作组?我们公司一共3台电脑,想建立工作组共享打印机 如何建立计算机工作组?怎么才能加入到别人的工作组? 百度蟹炒年糕的制作方法 蟹年糕怎么炒好吃 狮子蟹炒年糕的做法 Excel 07导入外部数据在哪儿 国庆期间全国铁路将发送多少旅客? 请问在国庆节期间坐火车,哪天人数比较少,然后车次又是哪一班呢? 精准扶贫证明怎么开 精准扶贫生要符合什么条件 精准扶贫户需要什么条件 精准扶贫需要些什么条件 精准扶贫的贫困户标准和条件 低保户怎么办理精准扶贫?