自学内容网 自学内容网

51单片机应用开发(进阶)---IO操作(心形灯为例)

实现目标

1、加强对单片机的IO操作;

2、以项目式锻炼学者分析问题解决问题的能力。


一、心形灯

       心形灯是一种具有心形图案的灯具,它起源于20世纪60年代的美国,最初主要用于商业广告和装饰。随着LED技术的普及,心形灯逐渐成为一种流行的装饰灯具,广泛应用于家庭、商业和公共场所的装饰。

二、原理图设计

三、程序设计

#include <REGX52.H>

unsigned char  dat[8] = {0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//顺向流水

unsigned char  dat1[8] = {0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//反向关

unsigned char  dat2[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//跑马灯

void Delay200ms();//@11.0592MHz

void  main()
{
unsigned char i = 0;
// 上电闪烁1次
P0 = 0X00;
P1 = 0X00;
P2 = 0X00;
P3 = 0X00;
Delay200ms();
Delay200ms();
P0 = 0XFF;
P1 = 0XFF;
P2 = 0XFF;
P3 = 0XFF;
Delay200ms();
Delay200ms();

while(1)
{

for(i = 0; i < 8;i++)
{
P0 = dat[i];
Delay200ms();
}
for(i = 0; i < 8;i++)
{
P1 = dat[i];
Delay200ms();
}
for(i = 0; i < 8;i++)
{
P2 = dat[i];
Delay200ms();
}

for(i = 0; i < 8;i++)
{
P3 = dat[i];
Delay200ms();
}
P0 = 0XFF;
P1 = 0XFF;
P2 = 0XFF;
P3 = 0XFF;
Delay200ms();
}
}

void Delay200ms()//@11.0592MHz
{
unsigned char i, j, k;

i = 2;
j = 103;
k = 147;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}

四、仿真实现


总结


原文地址:https://blog.csdn.net/luojuan198780/article/details/142997018

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!