基于单片机仿真软件proteus的流水灯实验报告

合集下载

Proteus虚拟仿真案例---流水灯制作

Proteus虚拟仿真案例---流水灯制作

Proteus虚拟仿真案例-——流水灯制作一、原理图设计1.打开proteus,新建文件2.选择元器件(1)选择单片机芯片左侧快捷菜单栏里按下,按下P,在“关键字”栏中输入“8951”,选择AT89C51(2)选择晶振:输入crystal,选择CRYSTAL(3)选择电容:输入22p,左边类别中选择Capacitors,右边选择CERAMIC22P(4)选择电阻:输入10k,左边类别中选择Resistors,右边选择RESISTORS库的3WATT10K(5)选择led:输入led,左边类别中选择Optoelectronics,右边选择led—yellow(6)选择按钮:输入button,选择USERDVC库的BUTTON(7)选择好的元器件如图所示3.放置器件振荡电路:(1)放置AT89C51单片机:在DEVICES栏中选中AT89C51,然后在绘制区放置到合适的位置(2)放置晶振,隐藏text属性(菜单-模板—设置设计默认值—显示隐藏文本不勾选)(3)分别将晶振的两脚与AT89C51的19、18脚相连(4)放置两个22p的电容,一端与晶振相连,另一端互连(5)放置地节点(左侧快捷菜单栏里按下—-GROUND),与两个电容相连复位电路:a.放置电源节点(左侧快捷菜单栏里按下——POWER)b.放置地节点c.放置电容,电阻,电阻一端接地,一端与电容相连,电容一端接+5V电源d.AT89C51第9脚接电阻、电容中间e.放置按钮,接电容两端f.右击按钮——编辑属性——元件参考:BUTTON,并取消“本元件不用于PCB制版”g.修改C3电容的值:右击——编辑属性—-Capacitance改为10u绘制流水灯:a.放置电阻、led,右击led——编辑属性——隐藏元件值,连接电阻和ledb.使用块复制,复制7组电阻和ledc.放置电源,分别与D1—D8的一端连接d.总线绘制:左侧选择“总线模式”,绘制一条总线,连接P1口与R2-R9e.使用属性分配工具进行快速网络标号:按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击P0口的8条线,进行编号,再次按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击R2—R9的8条线,进行编号f.批量修改R2-R9的值:按下a,出现属性分配窗口,“字符串”框输入“VALUE=100”,确定二、系统仿真1.编写源代码(1)菜单——源代码——添加/删除源文件—-new——文件名输入pmd。

基于51单片机的流水灯实训报告

基于51单片机的流水灯实训报告
3、还有就是焊接的时候切记不能拿着电烙铁和别人激动的聊天,不能拿着电烙铁对人或事物指指点点,以免伤到别人和自己或烧坏公共财物等。
4、焊接完了,还要对电烙铁进行保护措施——在电烙铁的笔头抹上一层锡,防止笔头被氧化!
周二
1、上午跟下午都是进行实物焊接。看着电脑上面的仿真电路图来一步步焊接,还要在脑海里边想象这样子焊接能否做到不用飞线,到最后又能让人看起来一目了然,清晰明了的感觉!不会看起来很混乱的联想图!所以,焊接是一个很考验人的耐性跟思维能力的功夫!在单片机的P0端口,接数码管的时候,要接上一个排阻来保护电路,因为在单片机内部除了P0端口,其它端口都有接内部电阻,所以,一定要在P0端口外接一个排阻来保护电路!
周五
我都在努力着完成最后一步工作,把程序下载到单片机中,刚开始的时候,经常出现CPU跟MCU握手失败,程序无法载入单片机中。我努力想到底哪里出错了,后来在一个同学的帮忙下,终于找到了出现问题的地方,就是数码管的1脚还没有与单片机的21脚焊接上。经过一会的补救,终于完成了!
总程序:
#include<reg51.h>
后来,老师就教我们編数码管的程序,然后结合流水灯的程序,通过修改后,仿真到模拟电路中看流水灯的走动和数码管的显示是否按你设想的结果一致,如果不一致,就要请教老师和同学。
最后,老师教给我们一个作业——写实训报告,后来我们都在埋头苦干中。
周四
由于部门的辩论赛活动,我不得不请假,所以就没有来参加实训!听同学们说老师叫我们自己动手把之前没完成的工作继续去完成!主要还是編程序和写实训报告。
uchar wei[2]={0xfe,0xfd};
bit start=0;
bit turnflag=0;
uchar num=0;

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: xx-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。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告
单片机流水灯实验报告
本次实验是单片机灯光控制实验,主要目的是培养学生使用突变端口控制灯光的实操能力。

实验分为程序设计、硬件组装、调试调试几个部分。

程序设计:根据实验要求编写了一个流水灯程序,主要利用单片机控制实现开关控制和常开及常闭特性,以及设置灯的渐变和闪烁的速度。

硬件组装:在板子上安装单片机和电路原件,并连接灯光电路,可以把单片机连接到PC,以便烧录程序。

调试调试:将程序烧录到单片机上,使板子上的灯光依次亮起,调整每个灯光闪烁或连续亮起的间隔,使灯光更好地结合实验要求。

本次实验让我深刻体会到用单片机编码语言思考问题的重要性,以及如何解决具体的技术问题。

实验操作让我加深了对单片机现象和面向对象编程的理解,让我更加熟练灵活地运用单片机配合硬件的概念和编程技术,全面提高了自己的应用水平。

实训报告单片机流水灯

实训报告单片机流水灯

一、实验目的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灯,实现了流水灯效果。

单片机流水灯实验总结

单片机流水灯实验总结

单片机流水灯实验总结单片机流水灯实验是学习单片机编程的基础实验之一,通过这个实验可以了解单片机的基本输入输出功能,掌握单片机的编程和控制方法。

下面我将对单片机流水灯实验进行总结,包括实验原理、实验步骤、实验结果以及实验中遇到的问题和解决方法。

实验原理。

单片机流水灯实验是利用单片机的GPIO口控制LED灯的亮灭,通过不同的控制方式实现LED灯的流水效果。

在单片机中,通过将相应的GPIO口输出高电平或低电平来控制LED的亮灭,从而实现流水灯的效果。

实验步骤。

1. 硬件连接,将单片机和LED灯按照电路图连接好,确保连接正确无误。

2. 编写程序,利用单片机编程软件编写流水灯控制程序,设置相应的GPIO口输出高低电平的时间间隔和顺序。

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

4. 调试程序,连接好电路后,通过上电测试程序,观察LED灯的流水效果是否符合预期。

实验结果。

经过以上步骤,我们成功实现了单片机流水灯的效果。

LED灯按照设定的顺序依次亮起和熄灭,形成了流水灯的效果。

实验结果符合预期,证明了程序编写和硬件连接的正确性。

实验中遇到的问题和解决方法。

在实验过程中,我们遇到了一些问题,例如LED灯未按照预期顺序亮起、熄灭或者有闪烁现象。

经过检查和调试,发现是程序编写中的逻辑错误或者硬件连接接触不良导致的。

通过仔细排查和调试,我们成功解决了这些问题,确保了实验的顺利进行和结果的准确性。

总结。

通过本次单片机流水灯实验,我们深入了解了单片机的GPIO口控制LED灯的方法,掌握了单片机编程和控制的基本技能。

同时,实验过程中遇到的问题也让我们学到了很多调试和排查的方法,提高了我们的实际操作能力和解决问题的能力。

希望通过这次实验,能够为我们今后的学习和实践打下坚实的基础。

结语。

单片机流水灯实验是单片机编程学习的重要实验之一,通过这个实验可以加深对单片机控制方法的理解,提高实际操作能力。

希望大家能够认真对待这个实验,通过自己的努力和实践,掌握单片机编程的基本技能,为今后的学习和工作打下坚实的基础。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告:实验一:用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转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

单片机流水灯实验报告

单片机流水灯实验报告

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

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

培养发现问题、 分析问题和解 决问题的能力
提高团队合作和 沟通能力
02
实验设备
单片机开发板
添加标题 添加标题 添加标题 添加标题 添加标题 添加标题
编写流水灯程序
确定流水灯的 硬件连接方式
编写流水灯控 制程序
编译并下载程 序到单片机
调试程序,确 保流水灯正常 工作
0
0
0
0
1
2
3
4
烧录程序到单片机
准备烧录器:选择合适的烧录器,如USB烧录器 连接单片机:将烧录器连接到单片机的烧录接口 打开烧录软件:启动烧录软件,选择要烧录的程序文件 开始烧录:点击烧录按钮,开始烧录程序到单片机 检查烧录结果:烧录完成后,检查单片机的运行情况,确保程序正常运行
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理》实验报告题目:流水灯设计
**:**
学号:**********
专业: 10计科特色班
院系:信息工程学院
****:***
完成时间:2014 年 4 月19日安徽新华学院教务处制
一、实验目的
1、熟练掌握单片机仿真软件proteus使用方法和注意事项。

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

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

二、实验内容
单片机仿真软件proteus上实现8个发光LED“流水”的现象,实现两个流水灯情况:1、先奇数灯亮,再偶数灯亮;2、实现流水灯从两边向中间亮,再从中间到两边亮。

并通过编写程序控制流水现象。

三、实验说明
依照实验的硬件电路原理,在单片机仿真软件proteus上进行硬件电路的模拟,然后进行实验。

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

四、实验环境
硬件:pc机;软件:单片机仿真软件proteus。

五、实验原理图
六、实验参考程序
#include<reg52.h>
#include<intrins.h>
void delay_ms(int n) //延时n毫秒
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<110;j++);
void main()
{
int i, num;
unsigned char p1;
unsigned char p0, p;
while(1)
{
for(i=0; i<3; i++) //间隔500ms先奇数亮再偶数亮,循环三次
{
P1=0xaa;
P0=p1;
delay_ms(500);
P1=0x55;
P0=p1;
delay_ms(500);
}
p1= 0xfe;
num=3;
while(num-- > 0) //一个灯上下循环三?
{
for(i=0; i<8; i++)
{
P0=p1;
delay_ms(100);
p1=_cror_(p1,1);
}
}
//两个分别从两边往中间流动三?
p1= 0xfe;
p0= 0x7f;
num=3;
while(num-- > 0)
{
for(i=0; i<4; i++) //让LED灯从两边向中间点亮
{
p1=_crol_(p1,1);
p0=_cror_(p0,1);
p=p1&p0;
delay_ms(100);
P1=p;
P0=p;
}
}
//再从中间往两边流动三次
p1= 0xef;
p0= 0xf7;
num=3;
while(num-- > 0)
{
for(i=0; i<4; i++)
{
p1=_crol_(p1,1);
p0=_cror_(p0,1);
p=p1&p0;
delay_ms(100);
P1=p;
P0=p;
}
}
//8个全部闪烁3次?
num=3;
while(num-- > 0)
{
p1=0;
delay_ms(500);
p1=1;
delay_ms(500);
}
break;
}
}
模拟演示图:
(1)模拟单片机的偶数灯亮(2)模拟单片机的奇数灯亮
(3)模拟单片机流水灯从两边到中间亮(4)模拟单片机流水灯从中间到两边亮。

相关文档
最新文档