循环彩灯控制系统实验报告
- 格式:doc
- 大小:648.00 KB
- 文档页数:6
循环彩灯控制系统实验报告
一、设计要求
1、程序中由3个按钮控制每按下一个按钮都会出现不同的彩灯循环现象
二、硬件电路设计
1、单片机最小系统
(2)发光二极管的电路
三、软件设计
(一)1、在Keil uVision4.LNK上写好程序后通过
STC_ISP_V480.exe.lnk和USB口输入到
reg52.h单片机中按下开关蓝色指示灯亮,然后按下P3^7按钮发光二极管从左往右依次点亮;2、①在不复位的情况下按下P3^6时发光二极管可以做往返运动依次点亮②在复位时按下P3^6发光二极管是从右往左依次点亮的;3、①在不复位的情况下按下P3^5时发光二极管可以在从左往右或者从右往左点亮后1,3,5,7与2,4,6,8交替闪烁(在看先点亮P3^6还是P3^5 来实现从
左还是从右开始循环)②在复位时按下P3^5发光二极管是作1,3,5,7与2,4,6,8交替闪烁。
(二)说明(
“0”“1”“2”“3”“4”“5”“6”“7”按键P3^7 0X7F 0XBF 0XDF 0XEF 0XF7 0XFB 0XFD 0XFE 复位P3^6 0XFE 0XFD 0XFB 0XF7 0XEF 0XDF 0XBF 0X7F 复位
P3^5 0X7F/
0XFF 0XFF
/0XB
F
0XDF
/0XF
F
0XFF
/0XE
F
0XF7/
0XFF
0XFF
/0XF
B
0XFD
/0XF
F
0XFF
/0XF
E
复位
8421码10=A 11=B 12=C 13=D 14=E 15=F
四、系统测试
步骤
1:新建工程→New Project→选择单片机型号→Atmel→AT89C52取名→保存2:新建文档→New file→取名→保存(—3个按键控制两种LED现象.C)3:点右键→Add file to group→选择(—3个按键控制两种LED现象.C)4:点工程右键→options “output”(√)create hex file
5产出hex档→编译按钮(↓)(↓↓)(↓↓↓)
STC下载软件
1:选择单片机型号“STC89C52RC”
2:打开文件→(流水灯.hex)
3:选择COM口(裝置管理員)
4:点下载按鈕→开启电源按钮→“OK 已加密”
附录源程序清单
#include
#define uint unsigned int
#define uchar unsigned char
sbit key1 =P3^7; //第一个按键
sbit key2 =P3^6; //第二歌按键
sbit key3 =P3^5; //第三个按键
uchar A1=0,A2=0,A3=0;
void delay(uint z)
{
uint i,j;
for(i=0;i for(j=0;j<110;j++); } void O_to_E() //1,3,5,7与2,4,6,8交替闪烁{ P0=0Xaa; delay(200); P0=~0Xaa; delay(200); } { if(!key1) { delay(10); //延时 if(!key1) A1=1; } if(!key2) { delay(10); //延时 if(!key2) A2=1; } if(!key3) { delay(10); //延时 if(!key3) A3=1; } } void main() { uchar i; while(1) { if(A1) { for(i=0;i<8;i++) //从左往右亮,每盏灯亮一次{ P0=~(0x7f>>i); delay(100); } } if(A2) { for(i=0;i<8;i++) //从右往左亮,每盏灯亮一次 { P0=~(0xfe< delay(100); } } if(A3) { O_to_E(); //1,3,5,7与2,4,6,8交替闪烁 } } } 附加图片(因为手机问题从左往右跟从右往左还有左右往返的看不出来所以就拍了2张图片) 1、从左往右、从右往左、往返 2、//1,3,5,7与2,4,6,8交替闪烁 超