单片机课程设计报告-跑马灯
单片机原理与应用课程设计-基于单片机的音乐跑马灯设计
单片机原理与应用课程设计设计课题:音乐跑马灯班级:小组成员:时间:2013年1月6日音乐跑马灯的设计一、实验内容:1.使用8个发光管作跑马灯,其中有3种亮灭模式。
2.有专门的开关K1~K3用来切换跑马灯的模式。
3.每一种跑马灯模式用LED数码管进行显示1、2、3。
4.当跑马灯处于某种模式时,有对应的音乐响起。
有三首曲子可以选着。
提示:亮灭模式自己设计,可以从速度或者点亮方法上设计。
响音乐的程序可以参考实验手册上《电子音响》部分。
二、实验原理:用三个开关控制音乐跑马灯的三种模式,每一种模式都是在LED数码管显示模式的号码的同时先响音乐后闪灯。
跑马灯采用P3口作为输入口,外接三个开关用来控制跑马灯的亮灭模式。
P1口做输出口,P1口接的8个发光二极管L1~L8按16进制方式点亮发光二极管,即8个发光管相当于8位的二进制位。
当数值为1时,L1点亮;数值为2=00000010B时,L2点亮;数值为4=00000100时,L3点亮,依次类推。
不同的音符对应不同的频率,所以只要用不同频率的信号驱动喇叭,就能发出不同的音符了,所以转换为使用定时器在P1.7引脚输出某一频率的方波脉冲即可。
单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,因此单片机奏乐只需弄清楚两个概念,也就是“音调”和“节拍”。
音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间,乐谱中每一个音符都与某一个特定的频率相对应,所以只需要产生不同频率的方波信号(产生不同音调),并且延时不同的时间(产生不同节拍),即可完成音乐的播放。
三、硬件原理:1.跑马灯亮灭模式原理图,如图(1)所示。
图(1) 跑马灯亮灭模式原理图2.让喇叭响音乐的原理图,如图(2)所示。
图(2) 电子音响原理图3.使第三个LED数码管显示1、2、3、4、5,如图(3)和(4)所示。
图(3) LED共阳极连接原理图图(4) LED数据显示示意图用三个开关(K1~K3)控制音乐跑马灯的三种模式,每一种模式都是在LED 数码管显示模式的号码的同时先响音乐后闪灯。
单片机跑马灯(流水灯)控制实验报告
单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。
实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。
2.编写程序:按照题目要求编写所需程序。
3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。
程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。
2. 在程序中,我们通过P2口控制LED灯的亮灭状态。
例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。
同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。
3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。
4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。
通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。
5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器)(FPEROM—Flash Programmable and Erasable Read Only Memory 的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用A T89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
时继续,并要求有多种亮暗组合。
按键跑马灯 按键单片机 跑马灯关键词:A T89C51单片机目录摘要 (I)第一章芯片分析和设计概述 (3)第一节 AT89C51芯片分析 (3)第一节第二节 设计概述 (8)第二节第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章 芯片分析和设计概述第一节 AT89C51芯片分析ATMEL 的AT89S51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
且价廉的方案。
AT89C51AT89C51的芯片引脚图如下:的芯片引脚图如下:图1.1 AT89C51引脚图引脚图各引脚的说明和功能分析如下:各引脚的说明和功能分析如下:VCC VCC:供电电压。
:供电电压。
:供电电压。
GND GND:接地。
:接地。
:接地。
P0口:口:P0P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
时,被定义为高阻输入。
P0P0能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。
单片机跑马灯实验报告
学号14142200277序号19单片机原理与接口技术实验报告实验项目序号一实验项目名称跑马灯实验姓名卢志雄专业电子信息工程班级电信14-2BF完成时间 2016年4月2日一、实验内容实验内容为3项,其中第1、2项必做。
1、基本的流水灯。
根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。
每点亮一个LED,采用软件延时一段时间。
2、简单键控的流水灯。
不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。
松手后,又按正序点亮流水灯。
3、键控的流水灯。
上电,不点亮LED,按一下K1键,按正序点亮流水灯。
按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。
二、电路原理图图1 跑马灯实验电路原理图三、程序流程图图2 简单键控的流水灯程序流程图四、源程序1、基本的流水灯#include<reg51.h>#define uint unsigned int#define uchar unsigned charvoid delay( j ) //延时函数data uint j;{ data uint i;while(j--)for(i=0;i<250;i++);}void main( ) //主函数{ data uchar a;a=1; //保证只有一个点亮while(1) //不断循环{ P2=~a; //低电平点亮a=a<<1; //左移一位,右补0if(a==0)a=1; //全0delay(2250);} //流动点亮延时}2、简单键控的流水灯#include<reg51.h>#define uchar unsigned char #define uint unsigned int void delay(uint i){ uchar t;while(i--){for(t=0;t<120;t++);}}void main(){ data uchar a;a=1;while(P2==0xff){ P0=~a;a=a<<1;if(a==0)a=1;delay(250);}while(P2==0xfe){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);}}3、键控的流水灯#include<reg51.h>#define uchar unsigned char #define uint unsigned int void delay(uint i){ uchar t;data uchar b=0xfb;while(i--){ if(P2==0xfe) b=0xfe;if(P2==0xfd) b=0xfd;if(P2==0xfb) b=0xfb;for(t=0;t<120;t++);}}void main(){ data uchar a;a=1;while(P2==0xfe){ P0=~a;a=a<<1;if(a==0)a=1;delay(250);while(P2==0xff){P0=~a;a=a<<1;if(a==0)a=1;delay(250);}}while(P2==0xfd){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);while(P2==0xff){ P0=~a;a=a>>1;if(a==0)a=128;delay(250);}}while(P2==0xfb){ P0=0xff;}}五、实验结果1、基本的流水灯基本流水灯仿真图2、简单键控的流水灯简单键控的流水灯仿真图3、键控的流水灯键控的流水灯仿真图六、思考题回答1、采用I/O口作为输出口时要考虑哪些因素?为什么实验装置中LED要串联一个电阻?答:电压的大小(包括它能感知的最小电压作为高电平),电流的驱动能力等,同时也要要考虑它是否要加上拉电阻。
《单片机原理及应用》跑马灯
《单片机原理及应用》跑马灯设计说明书第一章设计任务此次单片机设计任务是要求:按下按键三之后,灯的上半部分(四个灯)和下半部分交替闪烁9次,按下按键四之后,灯光全亮全灭九次。
在执行跑马灯的代码时,按下按键四,执行全亮全灭的时候,再按下按键三,灯光会先执行按键三的指令,然后再执行按键四的指令,也就是说按键三比按键四的优先级高,这就是此次单片机的设计任务。
第二章硬件设计在参考之前的跑马灯模拟电路的基础上,进行改造,完成相关模拟电路的设计。
在此次硬件设计的过程中,又让我再次的熟悉了电路的组成,元件的位置以及名称和连接,还有单片机内的系统及其功能。
首先是晶振电路,单片机最小系统的三要素之一,它在不停的振荡,为单片机系统提供基准时钟信号,是单片机的“心脏”。
电容的作用是帮助晶振起振,并维持振荡信号的稳定。
其次,复位电路主要功能是完成单片机上电初始功能,同时保障在单片机程序出现跑飞时能让它恢复正常状态,其实就是一个RC电路,RC的取值根据所需的复位时间来计算。
为实现跑马灯等功能,在P1端口接上8个LED灯,同时在P3口连上四个按键,实现中断功能。
此次硬件设计中,我做的唯一不足的就是忘记修改元件的具体数据,下次必须注意。
第三章软件设计在此次软件设计中,我做的很差,存在有许多问题,中间的各个代码都出现了问题,通过此次的失败,我总结了经验,明白了中断设计的函数应该怎那么写,参考了一下往日的作业,基本弄清了这类代码应该怎么写,但是仍然不熟练,还是需要多加练习,多加思考,争取能够自己独立写出程序代码。
第四章调试过程调试失败,在改进之后的代码进入调试之后,还是成功了的。
第五章总结此次单片机设计测试中主要考察了中断系统的使用,同时在硬件的设计上也有了更多的要求,在编写代码的同时还需要自主的设计和铺设电路,此次代码编写需要考虑全面,容易缺少程序,需要细心编写。
同时,在编写代码的时候,容易出错,出错的时候不能够慌,应该细心下来思考问题所在,此次测试中,看出来了我自身写代码的经验不足,使得代码编写非常错误,还有就是平时训练的还是比较少,以后应该多加训练。
跑马灯单片机实训报告
一、前言随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。
为了提高我们的实践能力,加强理论知识与实际操作的结合,我们进行了单片机跑马灯实训。
通过本次实训,我们深入了解了单片机的基本原理,掌握了单片机的编程方法,并能够运用所学知识解决实际问题。
二、实训目的1. 熟悉单片机的硬件结构和工作原理。
2. 掌握单片机的编程方法,包括汇编语言和C语言。
3. 学会使用单片机进行简单的外设控制。
4. 提高动手能力和团队合作能力。
三、实训内容1. 实训设备(1)8051单片机开发板(2)LED灯(3)电阻(4)电源2. 实训步骤(1)搭建电路首先,我们需要搭建跑马灯的电路。
将LED灯串联,然后连接到单片机的P1口。
在LED灯的正极和负极之间串联一个电阻,用于限流。
(2)编写程序接下来,我们需要编写跑马灯的程序。
以下是用C语言编写的跑马灯程序:```c#include <reg51.h>#define LED P1void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 1275; j++);}void main() {while (1) {LED = 0x01; // 第一个LED灯亮 delay(500); // 延时LED = 0x02; // 第二个LED灯亮 delay(500); // 延时LED = 0x04; // 第三个LED灯亮 delay(500); // 延时LED = 0x08; // 第四个LED灯亮 delay(500); // 延时LED = 0x10; // 第五个LED灯亮 delay(500); // 延时LED = 0x20; // 第六个LED灯亮 delay(500); // 延时LED = 0x40; // 第七个LED灯亮 delay(500); // 延时LED = 0x80; // 第八个LED灯亮 delay(500); // 延时LED = 0x00; // 所有LED灯熄灭delay(500); // 延时}}```(3)编译程序将编写的程序导入到单片机开发板中,并下载到单片机中。
51单片机8个跑马灯程序设计思路
51单片机8个跑马灯程序设计思路单片机是一种集成电路,内部包含了计算机的主要组件,如中央处理单元(CPU)、存储器等。
通过编程,可以实现各种不同的功能。
在这里,我将以设计一个8个跑马灯的程序为例,来讲解单片机程序的设计思路。
1.硬件准备首先,我们需要准备一个适用于单片机的开发板,例如STC89C52,以及8个LED灯。
将LED灯连接到开发板的GPIO引脚上,并通过电阻进行限流。
使用跳线将GPIO引脚与LED灯的正极连接。
2.程序结构设计在单片机程序中,我们通常会使用循环结构。
因此,在设计跑马灯程序时,我们可以使用一个无限循环,来实现LED灯的闪烁效果。
具体的程序结构如下所示:```c#include <reg52.h>sbit led0 = P0 ^ 0; //第1个LED灯sbit led1 = P0 ^ 1; //第2个LED灯sbit led2 = P0 ^ 2; //第3个LED灯//...sbit led7 = P0 ^ 7; //第8个LED灯void mainwhile (1)//跑马灯代码}}```在这段代码中,我们首先引入头文件`reg52.h`,它包含了STC89C52的寄存器定义和常用函数的声明。
然后,我们定义了8个宏,用于表示8个LED灯所连接的引脚号。
接下来,在`main(`函数中,我们使用一个无限循环`while(1)`,来实现LED灯的闪烁效果。
3.跑马灯实现思路在无限循环中,我们需要通过对GPIO的控制来实现8个LED灯的闪烁。
具体的实现思路如下:- 首先,我们可以定义一个变量`index`,用于表示当前亮起的LED灯的索引值。
初始时,`index`的值为0,表示第一个LED灯亮起。
- 然后,我们可以使用`switch...case`语句来判断当前的`index`值,从而控制不同的LED灯亮起。
- 在每次循环中,我们可以通过对`index`的递增来实现灯的滚动效果。
单片机 跑马灯实验精选全文
可编辑修改精选全文完整版实验一跑马灯实验一、实验内容1、基本的流水灯根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。
每点亮一个LED,采用软件延时一段时间。
2、简单键控的流水灯不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。
松手后,又按正序点亮流水灯。
3、键控的流水灯上电,不点亮LED,按一下K1键,按正序点亮流水灯。
按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。
二、实验方案1、总体方案设计考虑到K4键未被使用,所以将实验内容中的三项合并到一个主函数中:K4键代替实验内容第二项中的K1键;单片机一开机即执行实验内容第一项;K1、K2、K3键实现实验内容第三项。
所用硬件:AT89C52、BUTTON、LED-BLUE、电源输入:P2.0-K1;P2.1-K2;P2.2-K3;P2.3-K4。
低电平有效输出:P0.0~P0.7-D0~D7。
LED组连线采用共阳极,低电平有效软件设计:软件延时采用延时函数delay(t),可调整延迟时间:void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}由于涉及到按键变化所以要设置一个变量oldK保留按键键值,要在延时程序中检测是否按键,当按键后立即设置oldK的值。
按键判断采用在while循环中利用条件语句判断P2的值然后执行该键对应的代码段,达到相应的响应。
为了让K4键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点亮,利用全局变量n来记录灯号,利用算法即可实现。
主要算法:1、全局变量的定义:uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;2、顺序、逆序点亮流水灯:void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}3、实验内容第二项流水灯灯亮顺序变换:void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){out=D[n];n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}4、对应实验内容第一项,开机顺序点亮流水灯:while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}2、实验原理图图2-1 实验原理图3、程序流程图图2-2 程序流程图三、源程序#include"reg51.h"#define uchar unsigned char#define uint unsigned int#define out P0uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;//记录当前亮的灯号void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}void delay10ms(){uint i;for(i=0;i<10000;i++);}void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}int delay4(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK){ //按键变化退出循环return 1;}}return 0;}void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}void main(){oldK=K[0];while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}while(1){out=AllOff;if((P2&0x0f)!=0x0f){//检测有键按下delay10ms();//延时10ms再去检测//P2.0_K1键按下正序点亮流水灯if(P2==K[1]){oldK=K[1];while(1){forward();if(P2!=K[1]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.1_K2键按下逆序点亮流水灯if(P2==K[2]){while(1){backward();if(P2!=K[2]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.2_K3键按下关闭全部LEDif(P2==K[3]){oldK=K[3];out=AllOff;}//P2.3_K4键按下长按逆序点亮流水灯,不按正序点亮流水灯,直到其他键按下停止if(P2==K[4]){hold();}}}}四、实验结果1、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。
单片机内部结构测试报告-跑马灯
单片机内部结构测试报告姓名:苏汉生班别:09机械1班学号:0915020045指导老师:庞志目录1.跑马灯实验12.跑马灯实验23.跑马灯实验34.按键实验、蜂鸣器5.定时器数码管显示6.看门狗实验7.AD数模转换实验程序运行分析一、跑马灯实验11.测试程序名称:跑马灯实验12.程序功能介绍:跑马灯1的程序功能主要是控制LED灯闪亮的顺序,使八个LED灯按照程序设定闪亮。
但对按键和其他元件不起任何控制作用。
3.程序相关的电路图:8位流水灯电路4.程序总体(主函数)流程图:5(1)(3)1ms延时函数:(4)N ms掩饰函数:6.程序涉及的技术解析:unsigned charLED_table[]={0xFE,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF ,0x7F,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0 xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB,0xBD,0x7 E,0xFF,0x00};上述这个语句用到了一维数组,命名为LED_table,该数组一共有37个元素,每一个元素是一个十六进制的数,这些十六进制的数代表着开发板上的LED灯闪亮的规律(输出1为不亮,输出0为亮)。
PORTA = 0xFF;DDRA = 0xFF;DDRE=0XFF;PORTE=0XFF;上述语句是I/O口(端口A寄存器)的初始化,A口的8个脚控制开发板上的8个LED灯。
初始化A口设置为输出,8个引脚分别为1111 1111,LED等为全灭的状态。
单片机与LED灯之间连接了一个74HC573八进制3态非反转透明锁存器,E口2脚接在74HC573锁存器的使能端。
当锁存使能端为高电平1时,锁存对于数据是透明的(也就是说输出同步);当锁存使能端为低电平0时,符合建立时间和保持时间的数据会被锁存。
单片机跑马灯实验报告
单片机跑马灯实验报告摘要:本实验通过使用单片机来控制LED灯进行跑马灯效果的展示。
通过简单的电路连接和编程,我们成功实现了单片机跑马灯的功能。
实验结果表明,单片机跑马灯是一种简单而有效的显示系统,可广泛应用于娱乐和装饰等领域。
引言:跑马灯效果是一种常见且受欢迎的LED显示效果,它可以不断地循环显示LED灯的亮灭轮廓,给人们带来视觉上的愉悦。
单片机是一种可编程的微控制器,广泛应用于电子系统的控制和管理。
在本实验中,我们将利用单片机来实现跑马灯效果,通过编程控制LED灯的亮灭来模拟跑马灯的效果。
材料和方法:本实验所需材料如下:1. 单片机开发板2. LED灯3. 面包板4. 连接线实验步骤:1. 将单片机开发板放置在面包板上,确保连接稳固。
2. 将LED灯连接到面包板上,按照电路图正确连接。
3. 接通电源,将USB线连接到单片机开发板上。
4. 在计算机上打开开发板的编程软件。
5. 编写程序代码,实现跑马灯的效果。
6. 将程序代码下载到单片机开发板中。
7. 观察LED灯的亮灭情况,检查是否实现了跑马灯效果。
结果和讨论:经过实验,我们成功实现了单片机跑马灯的效果。
LED灯按照指定的顺序循环亮灭,产生出跑马灯的效果。
通过调整程序代码,我们可以控制跑马灯的速度和亮灭顺序,使其更加多样化和有趣。
单片机跑马灯是一种简单而有效的LED显示系统。
它可以应用于各种场景,包括室内和室外的装饰灯,新闻标语显示,广告牌等。
跑马灯效果不仅能够吸引人们的目光,还可以起到一定的宣传和广告效果。
总结:通过本次实验,我们了解了单片机的基本原理和应用,并成功实现了单片机跑马灯的效果。
单片机跑马灯具有简单、低成本、可编程等优点,适用于各种需要循环显示效果的场景。
未来,我们可以探索更多有趣的跑马灯效果,并将其应用于实际项目中。
在这个数字化时代,单片机跑马灯有着广阔的应用前景,希望能够为人们的生活和工作带来更多的灵感和乐趣。
单片机课程设计跑马灯
单片机课程设计跑马灯一、教学目标本节课的教学目标是使学生掌握单片机的基本原理和编程方法,通过设计和实现一个跑马灯项目,培养学生运用单片机技术解决实际问题的能力。
具体目标如下:1.知识目标:a.了解单片机的基本结构和原理;b.掌握单片机的编程语言和编程方法;c.熟悉单片机的硬件接口和外围电路。
2.技能目标:a.能够使用单片机开发工具进行程序编写和烧录;b.能够根据项目需求设计单片机的程序;c.能够搭建单片机的硬件电路并进行调试。
3.情感态度价值观目标:a.培养学生对科技创新的兴趣和热情;b.培养学生团队合作精神和自主学习能力;c.培养学生关注社会问题并运用技术解决实际问题的意识。
二、教学内容本节课的教学内容主要包括以下几个部分:1.单片机的基本原理和结构;2.单片机的编程语言和编程方法;3.跑马灯项目的需求分析和设计;4.跑马灯项目的编程和调试;5.跑马灯项目的硬件电路搭建和调试。
三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解单片机的基本原理、编程语言和编程方法,使学生掌握相关知识;2.案例分析法:通过分析跑马灯项目的需求,引导学生学会项目分析和设计;3.实验法:通过搭建跑马灯项目的硬件电路和编程调试,使学生掌握单片机的实际应用;4.讨论法:在课堂上鼓励学生提问、讨论,促进学生之间的交流和合作。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《单片机原理与应用》;2.参考书:单片机技术的相关书籍;3.多媒体资料:单片机的原理讲解、编程方法演示、跑马灯项目案例分析等视频资料;4.实验设备:单片机开发板、外围电路元件、编程器、调试器等。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。
《单片机应用课程设计》跑马灯
目录第1章课程设计内容及要求 (5)第2章引言 (6)第3章系统硬件电路设计 (7)第4章系统软件设计 (12)第5章课程设计心得 (14)第6章参考文献 (15)第7章附录(实物图,程序清单) (16)第1章课程设计内容及要求一、设计内容:1.1.1、了解各种元器件在电路中的作用和一些芯片的功能,并学会掌握Keil和proteus两个软件;1.1.2、对照原理图在proteus软件中画出原理电路图;1.1.3、检查焊接好的硬件实物图并检验实物图效果;1.1.4、根据实物图写出程序并仿真,并结合Keil和proteus两个软件进行调试和仿真。
二、设计要求:1.2.1外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。
具体过程为:按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。
反之则蜂鸣器鸣响较短时间示意输掉游戏。
下次再按下开始键,游戏又开始;1.2.2、按下开关K1,实现跑马灯模式则进行灯循环点亮;1.2.3、按下开关K2,跑马灯停止循环,并停在LED灯中的一个;1.2.4、若是停在P1.0~P1.6中的一个,则响起短时间的音乐并表示游戏失败;1.2.5、若是停在P1.7LED灯时,则该对应的这LED 灯亮并响起较长时间的音乐并表示游戏胜利。
第2章引言跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
本设计使用AT89C2051芯片,利用P1的8个端口连接8个发光二极管,通过P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。
单片机跑马课程设计
单片机跑马课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解跑马灯程序的设计思路。
2. 使学生了解单片机编程的基本语法和指令,并能运用到跑马灯程序编写中。
3. 帮助学生掌握跑马灯程序中涉及的电子元件使用方法,如LED灯、电阻等。
技能目标:1. 培养学生动手操作单片机的能力,能够独立完成跑马灯程序的下载、调试和运行。
2. 提高学生的问题解决能力,能够分析并解决跑马灯程序中可能出现的故障。
3. 培养学生的团队协作能力,能够在小组内分工合作,共同完成跑马灯项目的设计与实现。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其创新意识和探索精神。
2. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
3. 增强学生的自信心,使其在跑马灯项目实践中感受到成功的喜悦。
本课程针对单片机跑马项目设计,结合学生年级特点,注重理论与实践相结合,旨在提高学生的动手能力、问题解决能力和团队协作能力。
课程目标具体、可衡量,为后续教学设计和评估提供明确方向。
二、教学内容1. 单片机基本原理:介绍单片机的组成、工作原理,引导学生了解和掌握单片机的基本功能和应用。
- 教材章节:第1章 单片机概述- 内容:单片机的发展历程、内部结构、工作原理。
2. 单片机编程基础:讲解单片机编程的基本语法、指令和编程环境,为学生编写跑马灯程序奠定基础。
- 教材章节:第2章 单片机编程基础- 内容:C语言基础、单片机指令系统、编程环境搭建。
3. 跑马灯程序设计:分析跑马灯程序的设计思路,教授编程技巧,让学生学会编写和调试程序。
- 教材章节:第3章 单片机程序设计实例- 内容:跑马灯程序设计原理、程序编写、调试方法。
4. 电子元件应用:介绍跑马灯项目中涉及的LED灯、电阻等元件的使用方法,指导学生进行电路搭建。
- 教材章节:第4章 电子元件及其应用- 内容:LED灯、电阻、杜邦线等元件的功能和连接方法。
5. 跑马灯项目实践:引导学生分组进行跑马灯项目的设计与实现,培养其动手能力、团队协作能力和问题解决能力。
单片机实训报告跑马灯
一、实训背景随着科技的发展,单片机作为一种重要的嵌入式系统控制单元,在工业控制、智能家居、物联网等领域得到了广泛的应用。
为了提高学生对单片机程序设计的理解和实践能力,本次实训选择了跑马灯程序设计作为实训项目。
二、实训目的1. 熟悉单片机的基本结构和编程方法。
2. 掌握Keil C51集成开发环境的使用。
3. 学习跑马灯程序的设计与实现。
4. 培养动手实践能力和团队协作精神。
三、实训内容本次实训主要分为以下几个部分:1. 电路设计:设计跑马灯的电路,包括单片机、LED灯、电阻、按键等元件。
2. 程序设计:编写跑马灯的程序,实现LED灯的正序、倒序、闪烁等功能。
3. 程序调试:在Keil C51集成开发环境中进行程序调试,确保程序正常运行。
4. 实验报告撰写:总结实训过程中的经验和收获,撰写实验报告。
四、电路设计跑马灯电路主要包括以下元件:1. 单片机:选用AT89C51单片机作为控制核心。
2. LED灯:使用8个LED灯作为显示元件。
3. 电阻:用于限流,防止LED灯烧毁。
4. 按键:用于控制跑马灯的运行模式。
电路连接方式如下:1. 将8个LED灯的正极依次连接到单片机的P1口。
2. 将8个LED灯的负极依次连接到地线。
3. 将按键的一端连接到单片机的P3.0口,另一端连接到地线。
五、程序设计跑马灯的程序采用C语言编写,主要功能包括:1. 正序跑马灯:LED灯依次点亮,从D1到D8。
2. 倒序跑马灯:LED灯依次点亮,从D8到D1。
3. 闪烁跑马灯:LED灯快速闪烁。
程序流程如下:1. 初始化单片机P1口为输出模式。
2. 根据按键输入选择跑马灯的运行模式。
3. 根据选择的模式,依次点亮LED灯。
4. 延时一段时间,然后继续点亮下一个LED灯。
5. 重复步骤3和4,直到所有LED灯点亮完毕。
程序代码如下:```c#include <reg51.h>#define LED P1void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}void main() {unsigned char i;LED = 0x01; // 正序跑马灯while (1) {for (i = 0; i < 8; i++) {delay(500); // 延时LED = (0x01 << i); // 点亮下一个LED灯}}}```六、程序调试在Keil C51集成开发环境中,将程序代码编译生成HEX文件,然后将HEX文件烧录到单片机中。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用AT89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
关键词:AT89C51单片机跑马灯按键目录摘要 (I)第一章芯片分析和设计概述 (3)第一节AT89C51芯片分析 (3)第二节设计概述 (8)第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章芯片分析和设计概述第一节AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的芯片引脚图如下:图1.1 AT89C51引脚图各引脚的说明和功能分析如下:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
stm32跑马灯实验报告
stm32跑马灯实验报告《STM32跑马灯实验报告》实验目的:本实验旨在通过使用STM32单片机,实现一个简单的跑马灯效果,以加深对STM32单片机的理解和掌握。
实验器材:1. STM32单片机开发板2. USB数据线3. LED灯4. 电阻5. 连线实验原理:STM32单片机是一款功能强大的微控制器,具有丰富的外设和强大的处理能力。
在本实验中,我们利用STM32单片机的GPIO(通用输入输出)功能,控制LED灯的亮灭,从而实现跑马灯效果。
实验步骤:1. 连接STM32单片机开发板和电脑,使用Keil或者其他编程软件进行程序编写。
2. 编写程序,通过控制GPIO口的高低电平,实现LED灯的跑马灯效果。
3. 将编写好的程序下载到STM32单片机开发板中。
4. 连接LED灯和STM32单片机的GPIO口,确保连接正确。
5. 通过电脑或者外部电源给STM32单片机供电,观察LED灯的跑马灯效果。
实验结果:经过实验,我们成功实现了STM32单片机的跑马灯效果。
LED灯在不同的GPIO口控制下,能够呈现出流畅的跑马灯效果,整个实验过程非常顺利。
实验总结:通过本次实验,我们进一步了解了STM32单片机的GPIO控制功能,掌握了如何通过编程实现LED灯的控制。
同时也加深了对STM32单片机的理解和应用能力。
在今后的学习和工作中,我们将进一步深入研究STM32单片机的应用,为实际项目的开发和应用打下坚实的基础。
通过这次实验,我们不仅掌握了STM32单片机的基本应用,还增强了对微控制器的理解和应用能力。
希望通过不断的实验和学习,我们能够更加熟练地运用STM32单片机,为未来的工程项目做出更大的贡献。
单片机跑马灯实验报告(二)
单片机跑马灯实验报告(二)引言概述:单片机跑马灯实验是一种常见的数字电路实验,也是学习单片机基础应用的重要内容。
本实验旨在通过控制单片机的IO口输出来实现多个LED灯的顺序闪烁,从而模拟跑马灯的效果。
本报告将从硬件组成、电路连接、程序设计、实验步骤和实验结果等方面进行详细阐述。
正文:1. 硬件组成:- 单片机 (例如STC89C52)- 电源 (5V 直流电源)- 电阻 (用于限流)- LED灯 (多个,不同颜色)- 连接线等2. 电路连接:- 连接单片机的引脚与LED灯、电阻等。
一般使用IO口输出来控制LED灯的开关状态,通过改变输出电平来控制灯的亮灭。
具体的连接方式可以根据单片机的datasheet或者开发板的示意图来确定。
3. 程序设计:- 使用C语言编写程序,通过编写程序控制单片机的IO口输出来实现LED灯的顺序闪烁。
基本的程序框架包括引入头文件、定义引脚、设置IO口状态、延时函数和主函数等。
4. 实验步骤:- 硬件连接完毕后,将程序通过编译、烧录等操作下载到单片机中。
- 运行程序,观察LED灯按照设定的顺序是否闪烁,是否达到跑马灯的效果。
- 可以通过改变程序中的一些参数,如延时时间、顺序等,来观察结果的变化。
5. 实验结果:- 根据实验步骤操作后,观察实验效果是否与预期相符。
- 分析实验结果,检查是否有异常情况,如LED灯不亮、顺序错误等,进行排查和修改。
- 还可进行一些扩展实验,如控制节奏变化、增加LED灯数量等。
总结:通过本次实验,我们成功实现了单片机跑马灯的效果,掌握了基本的硬件连接和程序设计方法。
在实验过程中,我们深入了解了单片机的IO口控制和LED灯驱动原理等知识。
通过不断练习和实验,我们能够熟练掌握单片机应用开发的基础技能,为日后深入学习和应用打下了良好的基础。
单片机实例之跑马灯(二)2024
单片机实例之跑马灯(二)引言概述:本文主要介绍了单片机实例中的跑马灯(二)的设计和实现。
通过使用单片机控制LED灯的亮灭顺序和频率,展示出跑马灯效果。
文章将从硬件接口的连接、软件设计、电路调试、代码优化和总结五个大点来详细讲述整个跑马灯的实现过程。
正文内容:一、硬件接口的连接1. 连接LED灯和单片机的端口引脚2. 添加合适的电阻限流器3. 连接额外的电源供给(若需要)二、软件设计1. 初始化单片机的IO接口2. 设定LED灯的控制端口为输出3. 设定相应的延时时间和频率三、电路调试1. 检查单片机和LED灯的连接是否正确2. 使用示波器测量电压和电流波形3. 调整电阻的阻值以控制LED灯的亮度4. 检查电源稳定性和供电电压四、代码优化1. 使用更高效的延时函数2. 采用位操作方式控制LED灯的亮灭3. 增加循环计数变量,实现灯光的循环移动4. 将代码分块、模块化,提高可维护性和可扩展性五、总结通过对单片机跑马灯(二)的实现过程的介绍,我们了解了硬件接口连接、软件设计、电路调试和代码优化等关键步骤。
同时,我们还学习了如何使用单片机控制LED灯的亮灭顺序和亮度,并实现了跑马灯效果。
通过不断的优化和调试,我们可以进一步提高灯光效果和系统稳定性。
总结:本文通过引言概述、正文内容和总结的方式详细介绍了单片机实例中的跑马灯(二)的设计和实现过程。
通过硬件接口的连接、软件设计、电路调试、代码优化等关键步骤的说明,读者可以了解到如何实现跑马灯效果,并通过优化和调试提高系统的稳定性和效果。
希望本文对读者的学习和实践有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、设计原理及电路图1、本电路,是利用单片机的中断定时来实现LED灯的闪烁。控制器STC89C52与我们所学的ATML的单片机AT89C52的内部结构和资源是一样的,内部有8位的CPU处理器包含(运算部件和控制部件),片内有256B的数据存储器和8KB的程序存储器,3个定时器/计数器;六个中断源(两个外部中断源INTO和INT1,两个定时/计数器T0和T1,一个串行口中断)。四个输出口P0口、P1口、P2口、P3口,LED的八个灯的控制口由P0口来控制,而采用P3口第二功能且可以在线下载程序,硬件复位端9脚在高电平是单片机复位。由于本次设计未用到其他内部资源所以就不过多的去分析。(下附STC89C52单片机引脚图)
{date=(date<<1)+1;
P1=date;i=0;
}
++k;
if(k==m)
{x=0x32;m=0x13;k=0;}
++n;
if(n==r)
{x=0x96;n=0;r=0x12;m=0x14;k=0;
++y;
if(y==2)
{x=0x64;m==0x11;n=0;k=0;r=0x23;}}
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
9:复位脚(RST/Vpd);
10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;
18、19:晶振(18=XTAL2,19=XTAL1);
20:地(Vss);
21~28:I/OP2口(P2.0~P2.7);
内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道
(2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。
(3)供电采用USB方口的方式。
三、方案设计与论证
跑马灯电路的组成方框图为:
四,主要元件介绍
(1)单片机STC89C52引脚介绍
stc89c52的内核和AT51系列单片机一样,故引脚也相同:
1~8:I/OP1口(P1.0~P1.7);
P1=date;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1 //中断服务程序
{
P1=date;
TH0=0xD8;TL0=0xF0;
i++;
if (i==x)
{
if(date==0xff)
{date=date<<1;P1=date;i=0;
}
else
单片机课程设计报告-跑马灯
武 汉 纺 织 大 学
单
片
机
课
程
设
计
报
告
设计课题:跑马灯
指导教师:刘丰
姓名:颜珊 曹坤
班级:应电092
一、设计任务
利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为0.2S并循环闪烁的跑马灯.
二、设计要求
(1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。
# include <reg51.h> //包含特殊功能寄存器库
unsigned main( )
{
TMOD=0x01;
TH0=0xD8;TL0=0xF0;
EA=1;ET0=1;
i=0;date=0xfe;x=0x64;k=0x0;n=0;y=0;m=0x11;r=0x23;
内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11 、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
29:-PSEN;
30:ALE/-PROG;
31:-EA/Vpp
32~39:I/OP0口(P0.7~P0.0);
40:+5V电源。
注:引脚功能前加“-”,说明其是低电平有效。如P3.2=-INT0。
(2)MAX232介绍
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
3、Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成A-232-F电平TIA/EI 。
第三部分是供电。15脚GND、16脚VCC(+5v)。
六、程序分析:
此设计主要是采用控制系统的定时中断来完成的,应为设计要求8LED灯循环点亮,而且第一圈的速度是0.5S走两圈后速度改成0.25S,继续两圈然后又改成1S走两圈后就回到开始状态。依据这种思路就由定时器T0工作在方式1中并定时10ms。然后由寄存器R2对10ms计数50次则P1口数据左移移位,再用一个寄存器对P1口的移位进行计数16次就是两圈,后面只要改变R2的值,就可以达到不同的速度了。具体程序如下: