您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页8路流水灯实验报告

8路流水灯实验报告

来源:华拓科技网


8路流水灯制作

班级 姓名 学号 指导老师 时间

一、 实验目的

运用STC12C4052AD制作8路流水灯电路。 二、 实验材料

STC12C4052AD单片机、LED灯、12HZ晶振、30pF瓷片电容。 三、 实验步骤

1、设计8路流水灯电路和相应单片机程序,分析工作原理,。 2、按照8路流水灯在万能板上焊接,为STC12C4052AD烧写程序。 3、调试电路。 四、实验内容

1、 8路流水灯电路图

2、单片机程序

#include //51头文件

/**************************************************/ #define DY_PORT P1 //设置LED连接的I/O组

#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域:0~65535) /**********************************************/

bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED

#define [代替名] [原名] //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1

sbit [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1; unsigned char [自定义名] ; //定义一个0~255的整数变量.例:unsigned char a; unsigned int [自定义名] ; //定义一个0~65535的整数变量

/********************************************************/ void delay (unsigned int a){ // 1ms延时程序 unsigned int i; while( --a != 0){ for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600 } //ATC51单片机在外部晶振为12MHz时i值上限为125}

/**********************************************/ void main(void){ unsigned int i; unsigned int temp; while(1){

temp=0x01;

for(i=0;i<8;i++){ //8个流水灯逐个闪动 DY_PORT=~temp; delay(DY_SPEED); //调用延时函数 temp<<=1; } temp=0x80; for(i=0;i<8;i++){ //8个流水灯反向逐个闪动 DY_PORT=~temp; delay(DY_SPEED); //调用延时函数 temp>>=1; } temp=0xFE; for(i=0;i<8;i++){ //8个流水灯依次全部点亮 DY_PORT=temp; delay(DY_SPEED); //调用延时函数 temp<<=1; } temp=0x7F; for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮 DY_PORT=temp; delay(DY_SPEED); //调用延时函数 temp>>=1; } }}

附完成作品

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务