标题:
按键控制彩灯亮灯方式简易小程序+电路图
[打印本页]
作者:
森小胖
时间:
2017-3-27 01:21
标题:
按键控制彩灯亮灯方式简易小程序+电路图
按键控制彩灯的仿真电路图:
0.png
(30.84 KB, 下载次数: 74)
下载附件
2017-4-2 01:25 上传
0.png
(54.88 KB, 下载次数: 91)
下载附件
2017-4-2 01:24 上传
单片机源程序:
/**********************刘金森 1440302103 电子信息工程*********************/
#include<reg51.h> //51单片机头文件
#include<intrins.h> //包含crol(循环左移)函数所在的头文件
#define uint unsigned int
void delay(int z); //声明子函数
unsigned char temp; //定义一个变量,用来给P1口赋值
int i,j;
sbit Key0=P0^0;
sbit Key1=P0^1;
sbit Key2=P0^2; //定义三个按键
/**************按键控制函数************/
uint key()
{
uint temp;
Key0=0;
Key1=0;
Key2=0;
if(Key0==1)
{
delay(500); //延时500毫秒,去按键时的抖动
if(Key0==1)
{
temp=0xfc; //1111 1100B 只有两盏灯亮
P1=temp;
while(Key0)
{
delay(500);
temp=_crol_(temp,1); //将temp循环左移一位后再赋给temp
P1=temp; //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
}
}
}
else if(Key1==1)
{
delay(500); //延时500毫秒,去按键时的抖动
if(Key1==1)
{
temp=0x10; //0001 0000B 只有一盏灯不亮
P1=temp;
while(Key1)
{
delay(500);
temp=_cror_(temp,1); //将temp循环左移一位后再赋给temp
P1=temp; //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
}
}
}
else if(Key2==1)
{
delay(500); //延时500毫秒,去按键时的抖动
if(Key2==1)
{
temp=0xfd; //1111 1101B 只有一盏灯亮
P1=temp;
while(Key2)
{
delay(500);
temp=_cror_(temp,1); //将temp循环左移一位后再赋给temp
P1=temp; //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
}
}
}
return temp;
}
void delay(int z) //延时z毫秒
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*****************主函数*************/
void main()
{
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
test1.zip
(73.8 KB, 下载次数: 63)
2017-3-27 01:20 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2017-4-2 01:28
好资料,初学者有用,51黑有你更精彩
作者:
kimicoo
时间:
2017-4-2 12:10
非常好,给力!
作者:
kimicoo
时间:
2017-4-2 12:11
赞一个
作者:
hanhongyi
时间:
2018-11-2 11:17
很好 很实用 好东西
作者:
cyril2002
时间:
2018-11-2 13:44
硬件仿真是个好方向!
作者:
快乐眼泪
时间:
2018-11-2 18:57
我这菜鸟表示感谢!
作者:
931143848
时间:
2018-11-11 12:03
不错啊
作者:
956907357
时间:
2018-12-28 09:54
不错的文章
作者:
964624514
时间:
2019-4-9 12:42
不错不错不错
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1