自己写的,水品有限,轻喷~~
共设四个按钮 P0^0 正向旋转45°
P0^1 反向旋转45°
P0^2 正向一直转,再次点击后停止
P0^3 反向一直转,再次点击后停止
单片机源程序如下:
- #include<regx51.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char zhao[8]={0x02,0x06,0x04,0x0C,0x08,0x09,0x01,0x03}; //正转八相位
- unsigned char yong[8]={0x03,0x01,0x09,0x08,0x0c,0x04,0x06,0x02}; //倒转八相位
- int a=0; //数组指向起始位置
- int b=1;
-
- void delay(uint ms)//延时函数
- {
- int x,y;
- for(x = ms;x > 0;x--)
- for(y = 110;y > 0;y--);
- }
- void main()
- {
- unsigned char key;
-
- while(1) //无限循环
- {key=P0&0x03; //读取P0^1,P0^0输入,并赋值给key
- if(key==0x03);
- else{ delay(222); } //按键防抖
- if(key==0x03);
- else{
-
- switch(key)
- {
- case 0x02: //按下1
- P1=zhao[a];delay(222);break; //正转数组
- case 0x01: //按下2
- P1=yong[a];delay(222);break; //倒转数组
- }
- a++;
- if(a>7){a=0;} //a循环
- }
- }
- }
-
复制代码
所有资料51hei提供下载:
原理图.zip
(39.93 KB, 下载次数: 13)
程序.zip
(24.99 KB, 下载次数: 14)
|