标题:
51单片机流水灯左右循环程序+Proteus仿真图
[打印本页]
作者:
9527ddd
时间:
2022-7-12 20:10
标题:
51单片机流水灯左右循环程序+Proteus仿真图
51单片机流水灯左右循环仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif
(97.28 KB, 下载次数: 34)
下载附件
2022-7-12 20:20 上传
单片机源程序如下:
#include<reg52.h>
sfr LED = 0x80;
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,j,k;
unsigned char led;
unsigned char cnt;
unsigned char flag;
ADDR0 = 0; // 注意这里对应的74HC138芯片是怎样由低位到高位的
ADDR1 = 1;
ADDR2 = 1;
ADDR3 = 1;
ENLED = 0;
cnt = 0;
flag = 0;
/*** while(1)
{
led = 0x01;
for(j = 0;j<8;j++)
{
LED = ~led;
for(i = 0;i<5999;i++)
{
for(k = 0;k<2;k++)
{}
}
led = led << 1;//注意这里操作数的左移和右移
}
}
***/
/* while(1) //从左到右
{
LED = ~(0x01<<cnt);
for(i=0;i<59999;i++)
{};
cnt++;
if(cnt>=8)
{
cnt = 0;
}
*/
while(1) //从左到右,再从右到左
{
led = 0x01;
for(j = 0;j<8;j++)
{
LED = ~led;
for(i = 0;i<5999;i++)
{
for(k = 0;k<2;k++)
{}
}
led = led << 1;//注意这里操作数的左移和右移
}
led = 0x80;
for(j = 0;j<8;j++)
{
LED = ~led;
for(i = 0;i<5999;i++)
{
for(k = 0;k<2;k++)
{}
}
led = led >> 1;//注意这里操作数的左移和右移
}
}
}
复制代码
Keil代码与Proteus8.8仿真下载:
流水灯.zip
(92.77 KB, 下载次数: 45)
2022-7-12 20:10 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1