找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1598|回复: 2
收起左侧

小弟刚接触单片机

[复制链接]
ID:124238 发表于 2016-5-31 14:25 | 显示全部楼层 |阅读模式
题目:变速流水灯
要求:设置2个独立按键,功能是加快和减慢灯的显示速度;8个LED
速度等级为 8个等级;时间间隔范围是50MS~2s
源代码在这:
#include <reg52.h>


sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;


void main()
{
unsigned int i = 0; //定义循环变量i,用于软件延时
unsigned char cnt = 0; //定义计数变量cnt,用于移位控制


ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (1) //主循环,程序无限循环执行该循环体语句
{
P0 = ~(0x80 >> cnt); //P0等于0x80右移cnt位,控制8个LED
for (i=0; i<20000; i++); //软件延时
cnt++; //移位计数变量自加1
if (cnt >= 8) //移位计数超过7后,再重新从0开始
{
cnt = 0;
}
}
}




各位大神来一起探讨探讨
回复

使用道具 举报

ID:118380 发表于 2016-5-31 16:40 | 显示全部楼层
没看懂你的程序,你的按键在程序里没作用么。控制显示速度 为啥 在移位这里作文章。  应该只是与时间有关系么。
回复

使用道具 举报

ID:124238 发表于 2016-5-31 18:43 | 显示全部楼层
dpj蜗牛 发表于 2016-5-31 16:40
没看懂你的程序,你的按键在程序里没作用么。控制显示速度 为啥 在移位这里作文章。  应该只是与时间有关系 ...

这是流水灯的程序      按键那个我不会做    所以没有。            速度是通过按键来控制流水灯的流动速度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表