单片机实验流水灯实验报告

合集下载

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。

二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。

2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。

3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。

5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。

三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。

当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。

E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。

综上,画出实验电路原理图。

2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。

图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。

实验5程序流程图如图3-5,3-6所示。

图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。

实训报告单片机流水灯

实训报告单片机流水灯

一、实验目的1. 熟悉单片机的基本原理和组成,掌握51单片机的编程方法。

2. 理解单片机I/O口的使用,学会利用单片机控制LED灯的流水灯效果。

3. 提高动手实践能力,培养团队协作精神。

二、实验环境1. 实验设备:51单片机开发板、LED灯、面包板、电源、连接线等。

2. 实验软件:Proteus仿真软件、Keil uVision5集成开发环境。

三、实验原理流水灯实验是单片机入门级实验之一,通过控制单片机的I/O口输出高低电平,使LED灯依次点亮,形成流水灯效果。

实验中,利用单片机的定时器产生定时中断,每隔一定时间改变I/O口的输出状态,实现LED灯的流水灯效果。

四、实验步骤1. 打开Proteus软件,新建一个工程项目,添加51单片机开发板和LED灯等元件,绘制电路图。

2. 打开Keil uVision5,新建一个C51工程项目,选择对应的单片机型号。

3. 编写程序:(1)初始化I/O口:将P0口设置为输出模式,将P1口设置为输出模式。

(2)设置定时器:选择合适的定时器,设置定时时间,使其产生定时中断。

(3)编写中断服务程序:在中断服务程序中,改变I/O口的输出状态,实现LED灯的流水灯效果。

(4)编写主程序:在主程序中,启动定时器,进入中断服务程序。

4. 编译程序,生成HEX文件。

5. 将生成的HEX文件导入Proteus软件,运行仿真实验。

6. 观察实验现象,检查LED灯的流水灯效果是否正常。

五、实验结果与分析1. 实验现象:在Proteus软件中,LED灯依次点亮,形成流水灯效果。

2. 实验分析:通过设置定时器,每隔一定时间改变I/O口的输出状态,实现LED 灯的流水灯效果。

实验过程中,可以调整定时器的定时时间,改变流水灯的速度。

六、实验总结1. 本实验使我们对单片机的基本原理和组成有了更深入的了解。

2. 通过编写程序,掌握了51单片机的编程方法,提高了编程能力。

3. 实验过程中,我们学会了利用单片机控制LED灯,实现了流水灯效果。

51单片机流水灯实验报告

51单片机流水灯实验报告

竭诚为您提供优质文档/双击可除51单片机流水灯实验报告篇一:51单片机流水灯实验报告51单片机流水灯试验一、实验目的1.了解51单片机的引脚结构。

2.根据所学汇编语言编写代码实现LeD灯的流水功能。

3.利用开发板下载hex文件后验证功能。

二、实验器材个人电脑,80c51单片机,开发板三、实验原理单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LeD灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的p2端口,对8个LeD灯进行控制,要实现逐个亮灯即将p2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。

使用rl或rra实现位的转换。

A寄存器的位经过rra之后转换如下所示:然后将A寄存器转换一次便送给p2即moVp2,A便将转换后的数送到了p2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图五、通过仿真实验正确性代码如下:oRg0moVA,#00000001bLoop:moVp2,ARLAAcALLDeLAYsJmpLoopDeLAY:moVR1,#255DeL2:moVR2,#250DeL1:DJnZR2,DeL1DJnZR1,DeL2ReTend实验结果:六、实验总结这次试验我通过proteus仿真实现对流水灯功能的实现。

受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。

在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。

这些错误令我明白以后在试验中要步步细心,避免出错。

篇二:实验(:51单片机流水灯实验报告)一51单片机流水灯实验实验报告“流水灯”实验报告一、实验目的1.了解单片机I/o口的工作原理。

2.掌握51单片机的汇编指令。

3.熟悉汇编程序开发,调试以及仿真环境。

二、实验内容通过汇编指令对单片机I/o进行编程(本实验使用p0口),以控制八个发光二极管以一定顺序亮灭。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告:实验一:用C51实现流水灯实验实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。

实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。

使用r1或rr a实现位的转换。

实验内容:通过仿真来实现实验电路图代码如下;for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;实验结果:实验程序:#include<REG51.H>void delay();//延时函数声明void main()//主函数{unsigned charx,num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;}}void delay()//延时函数,无符号字符型变量i为形式参数{unsigned int j,k;//定义无符号字符型变量j和kfor(k=0;k<500;k++)//双重for循环语句实现软件延时for(j=0;j<100;j++);}实验总结:这次试验通过仿真实验软件实现流水灯实验,充分学会了keil 软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。

也认识到仿真实用性。

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

51单片机流水灯实验报告

51单片机流水灯实验报告

51单片机流水灯实验报告一、实验目的1.熟悉51单片机的硬件资源2.掌握51单片机的I/O口编程3.掌握51单片机的定时器/计数器编程二、实验原理流水灯是一种简单的电子设计,通过依次点亮和熄灭多个LED灯来形成流水灯的效果。

本实验使用的是51单片机,它有40个I/O口和3个定时器/计数器,可以方便地实现流水灯的效果。

三、实验器材1.51单片机开发板B数据线3.LED灯若干4.面包板5.连线材料(公对公、公对母杜邦线)四、实验过程1.准备工作:a.将51单片机开发板和LED灯连接起来,将LED灯依次插在面包板上,并与51单片机的I/O口相连接。

b.连接电脑与51开发板,使用USB数据线将它们连接起来。

2.编写程序:a. 打开Keil开发环境,新建一个工程。

b.在C代码文件中编写流水灯的控制程序,并引用51单片机的头文件和IO口控制相关的函数。

代码示例:```c#include <reg51.h>sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;sbit LED5 = P1^4;void delay(unsigned int t)while(t--)for(unsigned int i = 0; i < 125; i++);}void maiwhile(1)LED1=0;//点亮LED1delay(1000); // 延时LED1=1;//熄灭LED1LED2=0;//点亮LED2delay(1000); // 延时LED2=1;//熄灭LED2LED3=0;//点亮LED3delay(1000); // 延时LED3=1;//熄灭LED3LED4=0;//点亮LED4delay(1000); // 延时LED4=1;//熄灭LED4LED5=0;//点亮LED5delay(1000); // 延时LED5=1;//熄灭LED5}}```3.烧录程序:a.将开发板上的烧录开关调整为“USB”模式。

单片机流水灯实验报告

单片机流水灯实验报告

实验目的:实现单片机流水 灯功能
实验结果:LED灯按照预设 顺序依次点亮,实现流水灯
效果
分析与讨论:实验结果与预 期相符,验证了单片机流水
灯功能的实现。
实验结果分析
实验目的:验证单片 机流水灯控制电路的
设计与实现
实验设备:单片机、 LED灯、电阻、电源

实验步骤:编写程序、 连接电路、运行程序、
观察现象
实验过程中,对实验结果 的分析不够全面,容易导 致实验结论不准确。
实验过程中,对实验数据 的记录不够详细,容易导 致实验数据丢失。
实验过程中,对实验设备 的维护不够重视,容易导 致实验设备损坏。
实验过程中,对实验环境 的控制不够严格,容易导 致实验结果不准确。
对未来实验的展望
创新实验方法:尝试新的实 验方法,提高实验效果
掌握流水灯电路 的搭建方法
学习单片机的编 程和调试方法
掌握流水灯电路 的调试方法
添加标题
添加标题
添加标题
添加标题
培养实践操作和问题解决能力
通过实验操作, 提高动手能力
学习单片机的基 本原理和编程方

培养发现问题、 分析问题和解 决问题的能力
提高团队合作和 沟通能力
02
实验设备
单片机开发板
添加标题 添加标题 添加标题 添加标题 添加标题 添加标题
编写流水灯程序
确定流水灯的 硬件连接方式
编写流水灯控 制程序
编译并下载程 序到单片机
调试程序,确 保流水灯正常 工作
0
0
0
0
1
2
3
4
烧录程序到单片机
准备烧录器:选择合适的烧录器,如USB烧录器 连接单片机:将烧录器连接到单片机的烧录接口 打开烧录软件:启动烧录软件,选择要烧录的程序文件 开始烧录:点击烧录按钮,开始烧录程序到单片机 检查烧录结果:烧录完成后,检查单片机的运行情况,确保程序正常运行

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告方法一:通过位定义实现流水灯这种方法是最简单的方法,直接通过位定义的方法对LED灯进行操作。

不过这种方法虽然简单,不过需要做大量的重复工作,耗费大量时间,代码利用率不高。

方法二:通过数组方式实现流水灯这种方法相对于方法一来说可以节省大量时间,而且代码利用率高。

首先定义一个流水灯数组。

通过下图可以看到,数组第一个数据是16进制的0xfe,相对应的二进制是11111110。

由流水灯的硬件电路可知,LED灯的阴极接在单片机的P2口,LED灯的阳极接VCC,所以当单片机的P2口输出低电平时,相应的LED灯就会亮。

所以流水灯数组的第一个数据0xfe就是将P2.0口的LED灯点亮,数组第二个数据0xfd相应的二进制是11111101,相应的P2.1口LED就会亮,而由于P2.0口此时输出为高电平,所以对应的P2.0口LED灭。

由于是8盏LED灯,所以在main函数中使用for循环,循环8次,根据上述的分析,每一次循环都只有一盏LED灯亮,所以就达到了流水的效果。

方法三:通过移位函数方式实现流水灯循环移位函数_crol_()和_cror_()是左移和右移函数,该函数作用是将移出的高位补到低位。

注意使用移位函数时必须包含头文件intrins.h。

即#include<intrins.h>。

在主函数中先定义一个变量temp,将0xfe 赋给变量temp。

在while循环中,先将temp的值送到P2口,第一盏LED亮,然后使用循环左移函数将temp的值左移移位,最初值是11111110,执行左移函数之后,temp的值变为11111101,所以第一盏LED灯灭,第二盏LED亮,如此循环即可实现流水效果。

单片机实验报告流水灯双机通信交通灯定时时钟

单片机实验报告流水灯双机通信交通灯定时时钟

实验一流水灯实验一、实验目的1)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕捉判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪耀三下2)依据顺时针循环挨次点亮发光二极管3)经过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序按键正转闪耀反转五、实验过程中碰到的问题及解决方法1) 每次循环不论正转仍是反转程序,总先是先履行P1 口的 8 位 led 灯。

原由:在利用 KEIL 自带的库函数中的 _crol_ 和_cror_ 时,在正转和反转程序中应当调动次序的,开始没注意到。

更正后显示正常。

2)在开始实验的时候推行的是向来循环的方式,利用按键嵌套。

以后发现不理想,每次按键按到三次以上后进入死循环。

解决方案:利用一个按键,显示一次。

并加入按键开释,防备误动作。

指导老师署名:日期:实验一程序 :/******************************************************************** **************工程说明:本工程主要达成了一下功能:1,复位后演示全部功能2,灯闪耀三次3,流水灯正转4,流水灯反转函数说明:yanshi() :演示程序dengss() :闪耀程序right():正转程序left():反转程序scankey() :按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标记uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint);//1ms 延时void yanshi(void);//演示全部亮灯方式void dengss(void);//闪耀三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各样变量定义及函数申明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--)P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);P3=0xff;// 熄灭 D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等候按键开释}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等候按键开释}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等候按键开释}}}实验二准时器或实不时钟实验一、实验目的1)数码管动向显示技术2)准时器的应用3)按键功能定义二、实验实现的功能1) 经过按键能够设定准不时间,启动准时器,准不时间到,让12 个发光二极管闪耀,达成准时器功能。

单片机实验流水灯报告

单片机实验流水灯报告
过程分析
本实验主要是采用延时程序来控制“流水”的功能,同时采用中断进行亮与暗闪烁的效果,使用C52的P0口进行对LED的控制。过程的主要分析如下:
#include<reg52.h>
#include<intrins.h>
unsigned int i=0;//定义变量i;
unsigned char data x=0xfe; //定义初值;
#include<intrins.h>
unsigned int i;
unsigned char data x=0xfe;
void main()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
P0=x;
}
}
void time0() interrupt 1
1写完代码后单击project菜单再在下拉菜单中单击builttarget选项或者使用快捷键f7编译成功后再单击debug菜单在下拉菜单中单击startstopdebugsession或者使用快捷键ctrlf5点击run进行运行或者按f11进行单步运行
实验七LED流水灯程序
姓名
XXXX
学号
106032010128
void delay()//延时函数;
{
int a,j;
for(a=0;a<1000;a++)
{
for(j=0;j<100;j++)
;
}
}//主函数;
void main()
{
P0=x;

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告

单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。

每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。

2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。

三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。

单片机流水灯实验总结

单片机流水灯实验总结

篇一:单片机实验报告——流水灯电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: 2011-10-21 班级:电信092 姓名:蔡松亮学号: 910706247一、实验目的:进一步熟悉keil 仿真软件、proteus仿真软件的使用。

了解并熟悉单片机i/o口和led灯的电路结构,学会构建简单的流水灯电路。

掌握c51中单片机i/o口的编程方法和使用i/o口进行输入输出的注意事项。

二、实验原理:mcs-51系列单片机有四组8位并行i/o口,记作p0、p1、p2和p3。

每组i/o口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。

四组并行i/o端口即可以按字节操作,又可以按位操作。

当系统没有扩展外部器件时,i/o端口用作双向输入输出口;当系统作外部扩展时,使用p0、p2口作系统地址和数据总线、p3口有第二功能,与mcs-51的内部功能器件配合使用。

以p1口为例,内部结构如下图所示:图 p1口的位结构作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。

输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。

作输入时:p1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。

i/o口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和i/o接口,单片机的四个口均可作i/o口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;p0口作i/o口使用时应外接10k的上拉电阻,其它口则可不必;p2可某几根线作地址使用时,剩下的线不能作i/o口线使用;p3口的某些口线作第二功能时,剩下的口线可以单独作i/o口线使用。

三、实验环境:硬件:pc机,基本配置cpu pii以上,内存2g 软件:keil 2, proteus 7.5四、实验内容及过程:1、用proteus画流水灯电路图流程:1)、运行proteus仿真软件,单击pick from libraries,打开搜索元器件窗口,如图 1 所示:图 1 打开搜索元器件窗口2)、搜索添加元器件,如图2 所示:图2 搜索添加元器件窗口3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器件参数为c1=c2=20pf、c3=10uf;r1=r2=r3=r4=r5=r6=r7=r8=470欧姆、r9=10k欧姆;晶振=12m;vcc=5v。

单片机流水灯实验程序实验报告

单片机流水灯实验程序实验报告

单片机流水灯实验程序实验报告实验题目:流水灯实验2(利用查表方式)一、实验目的:1、学习利用查表的方式,使发光二极管(L1—L8)做舞台灯光效果的变化。

2、学习实用程序的编程规则。

二、实验仪器设备计算机一台、单片机在线系统一套(AY—MPU89S51E)三、实验电路:同实验一电路。

四、实验内容:灯光效果按如下规律显示:00111100,10000001,11000011,11100111,11111111,11100111,11000011,10000001,00000000,00011000,00111100,01111110 11111111,00000000,10101010,10101010,11001100,10000000,11000000,11100000,11110000,11111000,11111100 11111110,11111111,11111110,11111100,11111000,11110000 11100000,11000000,10000000,00000000。

扩展:自行设计花色效果表。

五、实验步骤:1、画出程序流程图。

3、程序输入到编程软件Keilc51中。

3、编译下载程序到系统实验板上的单片机中。

4、分析调试记录的内容和结果,找出程序中可能出错的地方,然后修改程序,继续调试、记录、分析,直到调试成功。

实验电路:U11939XTAL1P0.0/AD038P0.1/AD137P0.2/AD21836XTAL2P0.3/AD335P0.4/AD434 P0.5/AD533P0.6/AD6932RSTP0.7/AD721P2.0/A822P2.1/A923P2.2/A102924PSENP2.3 /A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A15110P1.0/T2P3.0/RXD2 11P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5 P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RDAT89C52程序流程图:开始(21H) 00HDPTR #TAB,(A) (21H)(A) @A+DPTR显示灯亮(A) (21H)+1N Y(A)=33?程序代码:ORG 0000HLJMP STARTORG 0100HSTART:MOV P1,#0FFHMOV 21H,#00HLOOP:MOV DPTR,#TABMOV A,21HMOVC A,@A+DPTRCPL AMOV P1,ALCALL DELAYINC 21HMOV A,21HCJNE A,#33,LOOPMOV 21H,#00HLJMP LOOPTAB: DB00111100,10000001,11000011,11100111,11111111,11100111,11000011,10000001 DB00000000,00011000,00111100,01111110,11111111,00000000,10101010,10101010 DB11001100,10000000,11000000,11100000,11110000,11111000,11111100,11111110 DB11111111,11111110,11111100,11111000,11110000,11100000,11000000,10000000, 00000000DELAY: MOV R5,#03HD0:MOV R6,#0FFHD1:MOV R7,#0FFHDJNZ R7,$DJNZ R6,D1DJNZ R5,D0RETEND程序运行正确,写入单片机后,二极管按照上述数值亮灭,展现灯光舞台效果。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告姓名:学号:班级:一、项目背景当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。

制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。

本设计为一种简单实用的单片机花样流水灯设计与制作方案。

二、项目整体方案设计根据时钟信号的脉冲输入,我们以改变每个LED点亮状态的保持的时间来改变LED的变换间隔时间,根据LED的循环点亮和时间间隔的改变设计成为一个直观的LED花样流水灯自动循环系统,由此思路我们就可以很容易的着手流水灯控制程序的设计。

三、硬件设计四、软件设计include <REGX51.H>#define uint unsigned int#define uchar unsigned charconst tab[]={Oxfe,Oxfd,Oxfb,Oxef,Oxdf,Oxbf,Ox7f,Oxbf, Oxdf,Oxef,Oxf7,Oxfb,Oxfd,Oxfe,Oxff,Oxaa,0x55,0xaa,0x55,0xaa ,Ox55,Oxff,Oxf0,OxOf,Oxf0,OxOf,Oxff,Ox33,Oxcc,0x33,Oxcc,Ox33,Oxcc ,Oxff}void Delay1ms(unsigned int count)unsigned int ij;for(i=O;i<count;i++)for(j=O;j120;j++);main (void)uchar i;while(1)for(i=O;i<35;i++)P1=tab[i];Delay1ms(500);}五、实验结果六、项目总结通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。

我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。

特别是理论联系实际。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告一、实验目的1、熟练掌握AT89S52-?型开发板的使用方法和注意事项。

2、了解简单单片机应用系统的设计方法。

3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。

4、掌握应用USBISP烧录软件的操作方法。

5、帮助学生养成良好实验习惯。

二、实验内容在AT89S52-?开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。

三、实验说明当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。

应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出0111 1111时D1就会点亮。

若再把0111 1111向右循环一位,利用PA口输出,就会点亮D2。

在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水” 的现象。

五、实验原理图六、实验参考程序#include<reg52.h>#define uchar unsigned charships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's#define uint unsigned intuchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; sbit P00=P0^0;sbit P01=P0^1;void delay(uchar t) {uchar i,j;for(i=0;i<t;i++)for(j=0;j<110;j++); }void main(){uchar i;while(1){P00=1;delay(2000);P00=0;for(i=0;i<8;i++){P1=table[i];P2=table[i];delay(2000);}P01=1;delay(2000);P01=0;}}实物展示:ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(1)单片机最小系统板(2)自己焊制的集成最小系统板ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(3)自己制作的心形流水灯实验板(4)系统板与实验板的连接展示ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After theliberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang'sships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(5)环形流水灯效果展示2011年12月15日ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle(Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's。

流水灯单片机实验报告

流水灯单片机实验报告

流水灯单片机实验报告流水灯单片机实验报告引言:单片机是一种集成电路芯片,具有微处理器的功能。

它广泛应用于各个领域,包括家电、电子产品、汽车等。

在本次实验中,我们将使用单片机实现一个简单的流水灯效果,通过这个实验,我们可以深入了解单片机的原理和应用。

实验目的:1. 了解单片机的基本原理和工作方式;2. 掌握单片机的编程方法和流程;3. 实现流水灯效果,并通过调整参数改变灯光的亮度和频率。

实验器材:1. 单片机开发板;2. LED灯若干;3. 连接线。

实验步骤:1. 连接电路:将LED灯与单片机开发板相连,确保连接正确无误。

2. 编写程序:使用C语言编写单片机程序,实现流水灯效果。

3. 烧录程序:将编写好的程序通过编程器烧录到单片机中。

4. 调试程序:将烧录好的单片机插入开发板,启动电源,观察LED灯的亮灭情况。

5. 调整参数:根据需要,可以通过修改程序中的参数来改变流水灯的亮度和频率。

实验结果:经过调试和调整参数,我们成功实现了流水灯效果。

LED灯在单片机的控制下,按照一定的顺序依次亮起和熄灭,形成了流水灯的效果。

通过修改程序中的参数,我们还可以调整灯光的亮度和频率,使得流水灯的效果更加丰富多样。

实验分析:通过这个实验,我们深入了解了单片机的原理和应用。

单片机作为一种集成电路芯片,具有微处理器的功能,可以通过编程来实现各种各样的功能。

在流水灯实验中,我们通过编写程序,控制LED灯的亮灭,实现了流水灯的效果。

通过调整参数,我们还可以改变灯光的亮度和频率,使得流水灯的效果更加丰富多样。

结论:本次实验通过使用单片机实现了流水灯效果,深入了解了单片机的原理和应用。

通过编写程序和调整参数,我们成功控制了LED灯的亮灭,实现了流水灯的效果。

这个实验不仅提高了我们对单片机的理解和应用能力,还培养了我们的动手能力和解决问题的能力。

希望通过这个实验,我们能够更好地掌握单片机的原理和应用,为今后的学习和工作打下坚实的基础。

实验一 51单片机流水灯实验 实验报告

实验一 51单片机流水灯实验 实验报告

“流水灯”实验报告一、实验目的1.了解单片机I/O口的工作原理。

2.掌握51单片机的汇编指令。

3.熟悉汇编程序开发,调试以及仿真环境。

二、实验内容通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。

(即流水灯效果)三、实验原理通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。

具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→......可以使用一个循环,不断对数据进行移位运算实现。

这里的移位指令采用RL和RR,即不带进位的位移运算指令。

如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。

四、实验过程1.在仿真系统中绘制好单片机的电路图2.编写汇编程序,程序如下:ORG 0000H Delay: MOV R0, #0FFHSJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOPMOV P0, A DJNZ R1, Delay2CLR P2.7 DJNZ R0, Delay1CLR P3.7 RETMove: MOV R2, #7H ENDMOV R3, #7HRMove: RL AMOV P0, ACALL DelayDJNZ R2, RMoveLMove: RR AMOV P0, ACALL DelayDJNZ R3, LMoveSJMP Move五、实验结果为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。

在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:1.只有1号二极管点亮2.只有2号二极管点亮3.只有3号二极管点亮4.只有4号二极管点亮5.只有5号二极管点亮6.只有6号二极管点亮7.只有7号二极管点亮8.只有8号二极管点亮实验的结果:二极管的发光状态从1→2→3→4→5→6→7→8→7→…→1→2;如此往复循环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档