51流水灯实验

 

课程名称:_单片机原理与应用

专业班级: 嵌入式14103班

姓    名:_赵存档       _ __

学    号:_14160310317    __

 

 

2015-- 2016   学年第  1 学期

 

 

实验项目( 一 ) — 预习报告


项目

名称


LED高低电平交替闪烁程序


实验

目的

要求


1. 正确安装keil软件

2. 在 Proteus 的环境下,设计硬件原理图;

3.在keil 集成环境下设计C语言程序;

4. 在 Proteus 的环境下,将硬件原理图与软件联接仿真运行。


实验

内容

原理


1、先正确安装keil c 以及 proteus 软件。

2、利用keil 编写c语言代码,在代码中,定义好要输出的管脚P2,定义一个delay()延迟函数,以及Led = ~LED的反相输出。

3、Proteus的仿真,单片机最小系统的构建:包括40号引脚电源VCC,20号引脚

接地GND,9号引脚复位RESET,18、19号引脚外接12MHZ的晶振以提供时钟频率;

4、8个LED灯的接法:VCC 5V供电的话,单片机的P2口置低电平LED才能亮。

5、代码中0x表示的是16进制。0x0f表示的是0000 1111,也就是说左边的4个LED灯会亮。


预习

过程

中的

疑问


疑问一:0x表示的是怎么?

疑问二:在keil c 中怎么定义指定的引脚号?

疑问三:怎么编写delay()延迟函数?

疑问四:在keil c 中怎么进行调试演练代码?

疑问五:  在仿真环境proteus中,怎么将keil c 中的代码与电路图结合,来进行仿真?

疑问六:发光LED二极管怎么辨别其正负?

疑问七:怎么才能知道给引脚置低电平LED灯亮还是不亮?

疑问八:单片机最小系统的电路图怎么画?


实验项目( 一 ) — 实验报告


项目

名称


LED高低电平交替闪烁程序


指导教师


高照玲


实验室


教室


实验日期


2015/10月


分组

情况


赵存档、张泽光


成    绩



实验步骤(算法、代码、方法)给出流程图


LED高低电平交替闪烁的KEIL C代码:

#include   <reg51.h>

#define LED P2

void delay(int   x);

void main()

{

LED = 0x0f;

while(1)

{

delay(10000);

LED =   ~LED;

}

}

void delay(int   x)

{

int i;

for(i=0;i<x;i++);

}

Proteus仿真电路图:

电路图包括:单片机最小系统:复位以及晶振提供时钟频率,led灯。


实验结果(结论及

分析)


经过调试以及分析可得出结论:通过编写Keil c代码设置晶振频率12MHZ

编译获得hex文件,在proteus中将hex文件加载进去,完成实验的结果。

通过实验可以明白单片机最小系统该怎么画:先是AT89C51单片机,晶振提供单片机运行的时钟周期,手动复位端。P2端口输出低电平与LED灯相连,使之被点亮。


成绩

时间: 2024-10-09 20:38:29

51流水灯实验的相关文章

MiS603开发板 第四章 流水灯实验

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第四章 流水灯实验 关于流水灯,网上有太多的例子了.其实只要掌握上面分频计数的技巧,设计流水灯是件极其简单的事情.从

FPGA流水灯实验

源代码下载地址: http://pan.baidu.com/s/14H8D4 FPGA流水灯实验 花了几天通过流水灯实验把学习的verilogHDL的建模技巧总结了一下.写一份总结,给自己制定一套规范,方便以后查看和解决问题. 实现目标: 通过流水灯的实验实现了串行工作,流水线工作(时间并行),并行流水线工作(空间并行).串行工作是CPU的工作方式,也就是一个时间只能做一件事.通过verilogHDL完全可以模仿这种工作方式,也就是说通过CPU实现的算法和驱动程序完全可以转换成对应的verilo

proteus仿真51流水灯(汇编)

本文为<proteus仿真51流水灯和点阵(心形)>的后续文章,上文链接:https://www.cnblogs.com/xing-2/p/11147890.html 流水灯的原理图同上文 汇编代码如下: ORG 0000H MOV R1,#01H LCALL movbit delay: MOV R7,#00H delayloop: DJNZ R7,delayloop DJNZ R6,delayloop RET movbit: MOV A,R1 RL A MOV R1,A MOV P1,R1

proteus仿真51流水灯和点阵(心形)

使用SDCC,不能简单套用keil环境下的语法,以下是SDCC中8051.h头文件与keil环境下reg51.h头文件的区别: 关于如何在proteus上调用在codeblocks上编写好的C51代码: 在proteus上双击51单片机或右击51单片机点击编辑属性 浏览到codeblocks编译后的hex文件即可. 现在开始流水灯: 原理图: 代码: #include <mcs51/8051.h> void delay() { for(int i=0;i<100;i++) for(int

流水灯实验

开发板上有一排LED灯,共26个,LEDR17-LEDR0-LEDG7-LEDG0; 实现以1s间隔从左至右流,循环不断~ 完整代码如下(用的依旧是自动生成的模板): //======================================================= // This code is generated by Terasic System Builder //======================================================

Nios学习笔记2——流水灯实验

回到quartus,我们新建一个Verilog文件,将之前复制的代码粘贴进去,保存文件为led.v.为了后面的编译,需要将nioscpu的Quartus IP File(.qip)加入项目中,点击Assignments->Settings,在File中将nioscpu.qip加入,如下图所示,点击Add,再点击OK. 接下来,我们建立锁相环PLL,给Nios提供时钟. 单击Tools->MegaWizard Plug-In Manager,点击Next,如图所示,搜索PLL,选择ALTPLL,

【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块

实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验一有名为 led_funcmod的功能模块.如果无视环境信号(时钟信号还有复位信号),该功能模块只有一组输出端,亦即4位LED信号.接下来让我们来看具体内容: led_funcmod.v 1. module led_funcmod2. (3. input CLOCK, RESET,4. output

四位流水灯Led_4

流水灯实验是我们学习开发板或语言的入门程序,通过流水灯这个可视化的实验,会增加我们对学习语言的乐趣, 会让我们觉得其实语言也是可以玩出花样的,接下来呈上代码,大家可以下到自己的板子里试试,. //Led_4.v module Led_4(clk,rst,led); input clk; input rst; output [3:0] led; reg [3:0] led; always @(posedge clk or negedge rst) begin if(!rst) begin led

Tiny4412之C语言实现流水灯,Tiny4412裸机程序[3]

在前边我们使用汇编完成了一个流水灯实验: Tiny4412汇编流水灯代码,Tiny4412裸机LED操作 但是,汇编语言可读性太差,在这一节我们用 C语言来实现了同样的功能,而以后的试验也尽量用 C语言实现. 我们在编写上位机程序时,C语言程序执行的第一条指令,并不在main函数中.生成一个 C程序的可执行文件时,编译器通常会在我们的代码中加上几个被称为启动文件的代码—— crtl.o .crti.o.crtend.o .crtn.o 等,它们是标准库文件.这些代码设置C程序的堆栈等,然后调用