高级会员
主题
回帖0
积分1988
阅读权限30
注册时间2012-2-14
最后登录1970-1-1
在线时间 小时
|
我认为俺学东西只学到一般会一般不会,自学的51单片机C语言编程;自己对程序的常用语句及关键字明白点了,内部硬件也明白点了;自己也能编写点很简单的程序;算是入门了吧;可就是一编程就不明白了该如何写,遇到要实现的功能,想去实现,但脑子里却一切空白,不知该怎么写才能实现所想的功能;看见论坛里比我强的学者们都能编写出来,俺就不行,编不出来;关键在于实战,可俺就是一编写就卡住了,就没思路,想不出来;程序写完编译没错;可就是没实现该功能啊!上程序了:
/*具体要求如下:
1、流水彩灯设置8个发光二极管,两个按键K1和K2;
2、上电后,8个LED灯全亮;
3、两个按键一个用于控制“流水灯”的启动和停止,
另一个用于选择“流水”的花样;
2012年3月11号"酷爱diy"晚上编写*/
#include <reg52.h>
//#include "KEY.H"
typedef unsigned char uint8 ;
typedef unsigned int uint16;
sbit Key_stop =P3^2;
sbit Key_fe =P3^3;
void delay(uint16 a) //12M 1ms
{
uint16 i,j;
for(i=0;i<a;i++)
for(j=0;j<125;j++); //j=110
}
void main()
{
uint8 m=0,n=0;
uint16 z,x,c,b;
while(1)
{
P1=0;
if(Key_stop==0)
{
delay(5);
if(Key_stop==0)
{
while(Key_stop==0);
m=m+1;
if(m>=2)
m=0;
}
if(m==1)
{
delay(5);
if(Key_fe==0)
{
while(Key_fe==0);
n=n+1;
if(n>=4)
n=0;
}
if(n==1)
{
P1=0xFE;
//z=0x01;
for(x=0;x<8;x++) //花样流水灯 临时的,后来在改
{
c=P1|0x01;
P1=c<<1;
}
}
if(n==2)
{
P1=0xF7;
//z=0x01;
for(z=8;z>0;z--) //花样流水灯 临时的,后来在改
{
b=P1|0x80;
P1=b>>1;
}
}
if(n==3)
{
P1=0;//花样流水灯 临时的,后来再改
}
}
if(m==2) P1=0xFF;
}
}
} |
|