【51单片机】霹雳灯实验代码

本文详细介绍了使用51单片机进行霹雳灯实验的过程,通过代码解析展示了如何控制灯光实现类似闪电的效果。适合电子爱好者和初学者了解51单片机的IO口操作及基本编程技巧。
摘要由CSDN通过智能技术生成
//霹雳灯实验
#include <reg52.h>
#define LED P0
void delay(int);					//声明延迟函数

//主程序
main()
{
   
	unsigned char i;
	LED =
#include rzmzy(); //走马拖尾右移函数 rzmyy(); //走马拖尾左移函数 sbit P1_0 = P1^0;//定义按键端口 sbit P1_1 = P1^1;//定义按键端口 sbit P1_2 = P1^2;//定义 sbit P1_3 = P1^3;//定义按键端口 sbit P1_4 = P1^4;//定义按键端口 sbit P1_5 = P1^5;//定义 sbit P1_6 = P1^6;//定义按键端口 sbit P1_7 = P3^3;//定义按键端口 void ys1ms(unsigned int s); //延时声明,修改s的数值,就可以改变时间 void delayms(unsigned int x) { unsigned int i; while(x--) { for(i=0;i<113;i++); } } void main(void) //主函数,由于模块化设计,只要修改下面各模块的排列顺序和时间,就可以实现各种变化模式 { P1=0xFF; EA=1;//打开中断,使用中断方便调试查看模式 EX0=1; //允许外部中断0中断 EX1=1; //允许外部中断1中断 PX0=1; // 外部中断0位高优先级 while(1) //无限循环 { rzmyy(); //走马拖尾左移函数 ys1ms(100); rzmzy(); //走马拖尾左移函数 ys1ms(100); } } rzmyy() //走马拖尾右移函数 { P1=0x7f; ys1ms(60); P1=0xbf; if(P1_7==1) { unsigned int a; for(a=0;a<350;a++) //调节点亮时间 { unsigned char i; P1_7 = 0; for(i = 0; i < 15; i++); //调节亮度高低 P1_7 = 1; for(i = 0; i < 50; i++); } } P1=0xdf; if(P1_6==1) { unsigned int a; for(a=0;a<350;a++) //调节点亮时间 { unsigned char i; P1_6 = 0; for(i = 0; i < 15; i++); //调节亮度高低 P1_7 = 0; for(i = 0; i < 1; i++); //调节亮度高低 P1_6 = 1; P1_7 = 1; for(i = 0; i < 50; i++); } } P1=0xef; if(P1_5==1) { unsigned int a; for(a=0;a<350;a++) //调节点亮时间 { unsigned char i; P1_5 = 0; for(i = 0; i < 15; i++); //调节亮度高低 P1_6 = 0; for(i = 0; i < 1; i++); //调节亮度高低 P1_5 = 1; P1_6 = 1; for(i = 0; i < 50; i++);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值