使如图所示的8个LED从一端至另一端每隔0.5s亮一个灯同时上一个灭灯(其他的均灭 即8个LED同时只有一个点亮)无限循环(其实就是跑马灯) 要求使用定时器 并且要有详尽的备注(要注明0.5s如果修改怎么改) 用最少的指令和最简单的语句 请发至2323510750@qq.com 试验成功后再送财富值
【高分悬赏】PIC单片机16F877接如图所示MPLAB—— ICD演示版 使用MPLAB烧写程序 求一个程序
答案:2 悬赏:70 手机版
解决时间 2021-02-24 13:19
- 提问者网友:皆是孤独
- 2021-02-23 17:04
最佳答案
- 五星知识达人网友:woshuo
- 2021-02-23 18:37
#include//流水灯实验
#define uchar unsigned char//宏定义
#define uint unsigned int
__CONFIG(0x3B31);//设置配置位
void delay(uint x)//延迟函数x表示毫秒
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);//嵌套
}
void main()
{
uchar i;//为下面的for循环作一个变量i
TRISD=0x00;//设置全为输出状态
while(1)//因为是流水灯所以是一个死循环,所以要在while里不要加分号
{
PORTD=0x01;//先点亮第一个二极管
for(i=8;i>0;i--)//因为有8个灯作流水灯
{
delay(500);//延迟500ms
PORTD=PORTD<<1;//让RD口左移动一位后再付给回PORTD
}
}
}
#define uchar unsigned char//宏定义
#define uint unsigned int
__CONFIG(0x3B31);//设置配置位
void delay(uint x)//延迟函数x表示毫秒
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);//嵌套
}
void main()
{
uchar i;//为下面的for循环作一个变量i
TRISD=0x00;//设置全为输出状态
while(1)//因为是流水灯所以是一个死循环,所以要在while里不要加分号
{
PORTD=0x01;//先点亮第一个二极管
for(i=8;i>0;i--)//因为有8个灯作流水灯
{
delay(500);//延迟500ms
PORTD=PORTD<<1;//让RD口左移动一位后再付给回PORTD
}
}
}
全部回答
- 1楼网友:酒安江南
- 2021-02-23 19:44
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯