Keil使用教程(单片机控制LED灯)
keil的使用和技巧
Keil 软件的使用随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C 语言为主,市场上几种常见的单片机均有其C 语言开发环境。
这里以最为流行的80C51单片机为例来学习单片机的C 语言编程技术。
大家都有C 语言基础,但是编单片机程序,大家还得找专门的书来学习一下。
这里我们只介绍Keil 这种工具软件的用法。
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。
Keil 软件是目最流行开发80C51系列单片机的软件,Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(µVision )将这些部份组合在一起。
下面我以一个实验举一个例子,一步一步学习Keil 软件的使用。
首先我们看硬件原理图:很明显,要点亮使发光二极管,必须使单片机的I/O 口P1.0输出低电平。
于是我们的任务就是编程序使P1.0输出地电平。
1. 使用Keil 前必须先安装。
安装过程简单,这里不在叙述。
2. 安装好了Keil 软件以后,我们打开它。
打开以后界面如下:3.我们先新建一个工程文件,点击“Project->New Project…”菜单,如下图,:3.选择工程文件要存放的路径,输入工程文件名LED, 最后单击保存.4.在弹出的对话框中选择CPU 厂商及型号5. 选择好Atmel 公司的AT89S52 后, 单击确定1.在接着出现的对话框中选择“是”。
5.新建一个C51 文件, 单击左上角的New File 如下图所示:6.保存新建的文件,单击SA VE如下图:2.在出现的对话框中输入保存文件名MAIN.C(注意后缀名必须为.C),再单击“保存”,如下图;7.保存好后把此文件加入到工程中方法如下: 用鼠标在Source Group1 上单击右键, 然后再单击Add Files to Group …Source Group 1'如下图:8.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击 Close9.在编辑框里输入如下代码 :10.到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如下图所示 : 我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过;11.生成 .hex 烧写文件,先单击Options for Target,如图;12.在下图中,我们单击 Output, 选中 Create HEX F。
实验一 keil的使用及流水灯实验
P1=0xff;
for (i=0;i<6;i++)
{
P0=255-liucheng[i];
delay02s();
}
}
}
3.1.5实验讨论
扩展程序改进版:
#include<reg51.h>
unsigned char i;
unsigned chardeng_H=0x01;
unsigned chardeng_L=0x08;
unsigned char add=0x00;
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{
while(1)
{
P0=0x00;
delay02s();
for (i=0;i<4;i++)
{
add=0x00;
add=deng_H;
add<<=4;
add&=0xf0;
add+=deng_L;
P0=add;
delay02s();
deng_H<<=1;
deng_L>>=1;
}
deng_H=0x01;
deng_L=0x08;
keil流水灯程序keil流水灯流水灯设计实验报告流水灯实验报告单片机流水灯实验eda流水灯实验流水灯实验vhdl流水灯实验报告keil使用教程keil使用
实验1 KEIL+PROTEUS使用——单灯闪烁
注意:使用的是连接导线,不是画线工具,否则无法仿真。
图1-24绘制系统原理图
※系统仿真
(10)选中AT89C51单片机,并单击打开“Edit Component”对话框,在“Program File”栏后单击选择程序按钮,如图1-25所示。
※新建工程
(2)新建工程在“Project”菜单中选择“NewuVisionProject…”命令。如图1-4所示。
图1-4新建工程
(3)弹出新建工程窗口如图1-5所示,在对话窗中创建名为“test1”的工程,单击“保存”按钮。
注意:将新建的工程保存在准备工作中新建的“test1”文件夹中。
图1-5新建工程窗口
图1-22所需元件
※摆放元件
(7)在工作区中加添加完所需元件,并摆放到合适的位置。
※添加电源/地
(8)在工具栏上单击“Terminals Mode”按钮,在窗口中选择电源“POWER”添加到工作空间中,如图1-23所示。
注意:电源为“POWER”,接地为“GROUND”。
图1-23添加电源
※绘制电路
图1-11源文件添加到工程
※工程选项设定
(11)在工程(Project)窗口的“Target 1”上单击鼠标右键,弹出如图1-12所示的右键菜单中选择“Options for Target‘Target 1’…”。
图1-12选项设置
(12)在弹出如图1-13所示的“Options for Target‘Target 1’”窗口中选择“Output”选项卡,并勾选“Creat Hex File”选项,单击“OK”按钮关闭选项窗口。
2
单灯闪烁流程图如图1-2所示。
keil编程控制处理器io口驱动led灯的方法
keil编程控制处理器io口驱动led灯的方法如何用Keil编程控制处理器IO口驱动LED灯?引言:在嵌入式系统开发中,控制处理器的IO口驱动LED灯是一项非常基础和常见的任务。
Keil是一种常用的集成开发环境(IDE),它为各种处理器和编程语言提供了广泛的支持。
本文将详细介绍如何使用Keil编程来控制处理器的IO口,实现LED灯的驱动。
第一步:选择合适的开发板首先,我们需要选择一款适合的开发板。
开发板一般配有相应的处理器和外设,并提供了引脚用于连接LED灯。
在选择过程中,我们需要考虑处理器型号、外设资源以及开发工具支持等因素。
第二步:安装Keil开发环境在开始编程之前,我们需要在电脑上安装Keil开发环境。
Keil MDK是一种常用的嵌入式开发工具,它提供了IDE、编译器、调试器等多个组件,可以满足我们开发和调试的需求。
第三步:创建新的工程打开Keil MDK,点击“File”->“New”->“Project”来创建新的工程。
在弹出的窗口中,选择合适的处理器型号,并设置工程的名称和存放路径。
第四步:配置工程在创建新工程后,我们需要进行一些配置。
首先,在“Options for Target”的“Target”选项卡中,设置处理器的时钟频率和其他相关配置。
然后,在“Options for Target”的“C/C++”选项卡中,设置编译器的优化选项和其他编译相关配置。
第五步:编写代码接下来,我们需要在工程中编写代码来控制处理器的IO口,并驱动LED 灯。
Keil支持多种编程语言,包括C和汇编语言。
下面,我们以C语言为例,演示如何编写控制代码。
首先,我们需要包含相应的头文件,以便使用Keil提供的库函数和寄存器定义。
例如,对于STM32系列处理器,我们可以使用"stm32f4xx.h"头文件来定义寄存器名称和相关宏。
然后,我们可以定义一个函数,用于初始化处理器的IO口,设置为输出模式。
单片机原理keil使用教程
keil教程Keil 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。
下面介绍Keil软件的使用方法,这应该算一个入门教程,进入Keil 后,屏幕如下列图所示。
几秒钟后出现编辑界启动Keil uVision4时的屏幕。
简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。
1) 对于单片机程序来说,每个功能程序,都必须要有一个配套的工程〔Project〕,即使是点亮LED这样简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的Keil软件后,点击:Project-->New uVision Project...然后会出现一个新建工程的界面,如图2-8所示。
2)因为是第一个实验,所以我们在硬盘上建立了一个实验1 的目录,然后把LED这个工程的路径指定到这里,这样方便今后管理程序,不同的功能程序放到不同的文件夹下,并且给这个工程起一个名字叫做LED,软件会自动添加扩展名LED.uvproj。
如图2-9所示。
下次要打开LED这个工程时,可以直接找到文件夹,双击这个.uvproj 文件就可以直接打开了。
图2-9 保存工程3〕保存之后会弹出一个对话框,这个对话框让我们选择单片机型号。
因为Keil软件是外国人开发的,所以我们国内的STC89C52RC并没有上榜,但是只要选择同类型号就可以了。
Keil 几乎支持所有的51核的单片机,这里还是以大家用的比较多的Atmel 的AT89S51来说明,如下列图2-10、图2-11所示,选择AT89S51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
图2-10 选择芯片公司图2-11 选择具体芯片4〕点击OK之后,会弹出一个对话框,如图2-12所示,每个工程都需要一段启动代码,如果点“否”编译器会自动处理这个问题,如果点“是”,这部分代码会提供应我们用户,我们就可以按需要自己去处理这部分代码,那这部分代码在我们初学51的这段时间内,一般是不需要去修改的,但是随着技术的提高和知识的扩展,我们就有可能会需要了解这块内容,因此这个地方我们选一下“是”,让这段代码出现,但是我们暂时不需要修改它,大家知道这么回事就可以了。
单片机LED灯实验报告
单片机LED灯实验报告
本次实验我们使用单片机控制LED灯的亮灭,这是一个非常简单的实验,适合初学者。
1、实验原理
单片机是一种集成电路芯片,具有计算机的基本结构和功能,可以通过编程实现对外
设的控制。
在本实验中,我们通过编程控制单片机的输出口,使其控制LED灯的亮灭。
2、实验器材
1)单片机开发板
2)LED灯
3)导线
4)电池
5)万用表
3、实验步骤
第一步:连接电路,将开发板上的输出口与LED灯的正极连接起来,将GND和LED灯
的负极连接起来。
第二步:打开开发板和计算机,用Keil uVision软件编写程序,将程序下载至单片机。
第三步:将电池接电,观察LED灯的亮灭情况。
第四步:使用万用表进行电压和电流检测,确保电路工作正常。
4、实验结果
当单片机控制输出端口时,LED灯会随之变化。
当单片机输出低电平时,LED灯熄灭;输出高电平时,LED灯亮起。
通过这次实验,我们掌握了单片机的基本原理和一些控制技巧。
这对于我们以后了解
和使用单片机会有很大的帮助。
同时,也加深了我们对电路基础知识的认识和理解。
单片机_LED灯闪烁实验报告
实验报告一、实验目的1、掌握51单片机实验开发板的使用步骤。
2、以LED闪烁为例子,通过keil4软件进行汇编程序的输入、运行、调试、仿真。
3、掌握STC-ISP的使用方法,将程序下载到实验板中。
二、实验设计1、实验仪器、设备:计算机、型号为STC89C52RC的51单片机开发板2、软件:USB驱动软件、keil4开发软件、STC-ISP3、实验流程图设计:4、软件设计:1)keil4软件使用A.双击keil4标志,执行keil4软件B.在E盘中新建文件夹:zuoye1,以保存本实验中所产生的文件。
将计算机中原有的main.c文件复制到文件夹zuoye1中。
C.点击“project”“New uVision project”,给工程取名为zuoye1,保存在文件夹zuoye1中。
在新出现的窗口中选择“Atmel”“AT89C51”,按“OK”后在新出现的窗口选择“否”。
D.点击“file”“New”,新建一个原文件。
双击“source Group1 ”,添加main.c文件。
添加成功后将LED程序输入文件中。
#include<AT89X51.H>//=======================================#define uint unsigned int;#define uchar unsigned char;//=======================================uint x,y;uchar idx;//=======================================void main(void){P1_3 = 1;P0 = 0xff;idx=0;while(1){P1_3 = 0;P0 = ~(7<<idx);//add delayfor( x=0;x<250;x++ ){for( y=0;y<1000;y++ ){}}idx++;idx=(idx%8);}}//=======================================//endE、输入完成后,点击图标保存,再分别点击进行调试。
stm32f407单片机光敏电阻控制灯代码
stm32f407单片机光敏电阻控制灯代码概述本文描述了如何使用ST M32F407单片机来实现光敏电阻控制灯的代码。
通过读取光敏电阻的阻值,根据不同的光照强度控制灯的亮度,实现智能灯光控制。
步骤1:硬件准备1.准备一个ST M32F407单片机开发板。
2.连接一个光敏电阻模块到ST M32F407开发板上的A DC(模数转换器)引脚。
3.连接一个LE D灯到S TM32F407开发板上的一个G PI O(通用输入输出)引脚。
确保连接顺序正确。
步骤2:软件设置1.在开发板上安装好K ei l开发环境,并打开K ei l软件。
2.创建一个新的工程,并选择S TM32F407的型号。
3.配置GP IO引脚和A D C转换器的初始化参数,确保正确设置。
4.编写代码实现光敏电阻读取和LE D灯控制的逻辑。
步骤3:编写代码下面是一段简单的代码示例,展示了如何读取光敏电阻的阻值,并根据阻值控制L ED灯的亮度。
#i nc lu de<s tm32f407xx.h>i n tm ai n(vo id){//初始化G PI O和AD Cw h il e(1){//读取光敏电阻阻值//根据阻值控制LE D灯亮度//延时一段时间}}步骤4:代码实现说明1.在主函数中,首先需要初始化GP IO和A DC引脚,确保设置正确的引脚和功能。
2.在主循环中,通过调用A DC模块的读取函数,可以获取光敏电阻的阻值。
3.根据读取的光敏电阻阻值,可以通过控制L ED灯的PW M(脉宽调制)来实现不同亮度的灯光控制。
4.在每次设置完LE D灯的亮度后,可以通过延时函数来控制亮度的变化速度。
步骤5:测试与调试1.在K ei l软件中编译代码,并烧录到ST M32F407单片机开发板中。
2.将开发板连接到电源,并确保光敏电阻和LE D灯连接正确。
3.打开开发板的电源,观察LE D灯的亮度是否根据光敏电阻的阻值进行了调节。
4.如果LE D灯的亮度没有根据光照强度进行调节,可以通过调试工具查看代码执行中的问题。
单片机KEIL软件的使用及P1口控制实验
KEIL软件的使用及P1口控制一实验目的1、学习KEIL软件的使用方法及单片机实验平台2、学习P1口的控制方法3、学习延时子程序的编写和单片机延时计算方法二实验原理1、KEIL软件是德国Keil公司开发的基于Windows平台的单片机集成开发环境软件。
KEIL 软件包括编译器、连接器、库管理器和仿真调试器,通过集成开发环境(μVision)将这些部分组合在一起。
2、P1口是一个八位的准双向I/O口,其中一位的内部结构如图所示,输出驱动电路有一只场效应管和一个上拉电阻组成。
每一根口线都可以分别定义成输入或输出线。
做输出线时,写入“1”,则Q’为“0”,T1截止,P1.X输出高电平,写入“0”,则Q’为“1”,T1导通,P1.X输出低电平。
做输入线时,必须先向该口线写“1”,使T1截止。
3、程序延时分析方法:延时=指令个数X机器周期机器周期=12÷nMHZ n为单片机时钟频率三实验要求与步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1、使用单片机最小应用系统1模块。
关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。
(并口线与右侧的8个插孔是串联等效的。
)2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM 源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、(先接通仿真器电源再开启试验箱电源)打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。
发光二极管单只从右到左轮流循环点亮。
注:软件具体操作见附录实验(二):用P1.0、P1.1作输入接两个置位开关,P1.2、P1.3作输出接两个发光二极管。
程序读取开关状态,并在发光二极管上显示出来。
STC15系列单片机学习之LED点灯
STC15系列单⽚机学习之LED点灯本系列教程开始学习STC15系列单⽚机的C语⾔编程,读者需要有C语⾔的基础知识。
⼀、开发软件准备1. 安装编程软件:Keil2. 下载软件3. 配置keil下的STC单⽚机编程环境点击添加信号和头⽂件到Keil中,为 keil软件添加STC系列单⽚机器件的⽀持,以及后⾯要⽤到的仿真器。
⼆、STC15F2K60S单⽚机IO分配如上图所⽰,STC15F2K60S 系列块单排及共有5组管脚:管脚组名称可⽤位数P08bit (P0.0-P0.7)P18bit (P1.0-P1.7)P28bit (P2.0-P2.7)P38bit (P3.0-P3.7)P48bit (P3.0-P3.7)P52bit(P5.4-P5.5)STC15系列单⽚机每个管脚都有个IO⼝模式配置寄存器,可⽤配置任何⼀个管脚的输出模式。
每位管脚模式有以下四种:(默认为00,即准双向⼝)三、程序编写在了解了以上STC单⽚机的IO特性后,我们来尝试编写程序,控制开发板上的LED灯闪烁,其所在管脚为P5.5 1.Keil 新建项⽬• 先在keil 的 Project 菜单下选择new uVision Project...创建新项⽬,并命名。
• Select a CPU Data Base File 中选择 STC MCU Database,创建STC系列单⽚机项⽬• 根据板⼦类型,为项⽬选择CPU型号。
我这选的是STC15F2K60S2• 添加main.c⽂件2.编写程序程序代码如下://************************************//STC_XGboard 51单⽚机学习板//author:Kimiyang//OneLEDFlash//实现单个LED闪烁//20170109//************************************// NAME Pin// LED P55#include <STC15F2k60S2.H> //单⽚机寄存器资源头⽂件#include <intrins.h> //使⽤_nop_();空操作函数时必须包含此头⽂件#define LED P55 //定义LED管脚号void Delay1ms() //@11.0592MHz{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}//************************************//*函数名称:delay//*函数功能:延时函数//*参数:Dtime:延时时间mS//*返回值:⽆//************************************void delay_nMs(unsigned int Dtime){unsigned int i; //255for(i=0;i<Dtime;i++) // 10us{Delay1ms(); //1s}}//************************************//*函数名称:main//*函数功能:主函数,程序开机运⾏的第⼀个函数//*参数:⽆//*返回值:⽆//************************************int main(void){LED = 1; //灯灭while(1) //重复执⾏下⾯⼤括号中的4⾏程序{LED = 0; //点亮LEDdelay_nMs(500); //延时约为0.5sLED = 1; //熄灭LEDdelay_nMs(500);}}3. 程序的编译• 设置⽣成可下载⽂件-'hex'⽂件• 使⽤Keil软件⼯具条上的Rebuild图标按钮对程序编译• 编译后观察keil软件底下的Build output窗⼝,了解编译信息错误或警告: 0 Error,0 Warning四、固件下载• 编译成功后(0 Error,0 Warning),使⽤STC_isp软件,通过单⽚机的串⼝下载hex程序到单⽚机内,观察运⾏现象。
keil教程5
其于Keil 的实验仿真板的使用前面介绍了Keil 软件的使用,从中我们可以看到Keil 的强大功能,不过,对于初学者来说,还有些不直观,调试过程中看到的是一些数值,并没有看到这些数值所引起的外围电路的变化,例如数码管点亮、发光管发光等。
为了让初学者更好地入门,笔者利用Keil 提供的AGSI 接口开发了两块仿真实验板。
这两块仿真板将枯燥无味的数字用形象的图形表达出来,可以使初学者在没有硬件时就能感受到真实的学习环境,降低单片机的入门门槛。
图1是键盘、LED 显示实验仿真板的图,从图中可以看出,该板比较简单,有在P1口接有8个发光二极管,在P3口接有4个按钮,图的右边给出了原理图。
图2是另一个较为复杂的实验仿真板。
在该板上有8个数码管,16个按键(接成4*4的矩阵式),另外还有P1口接的8个发光管,两个外部中断按钮,一个带有计数器的脉冲发生器等资源,显然,这块板可以完成更多的实验。
一、实验仿真板的安装这两块仿真实验板实际上是两个dll 文件,名称分别是ledkey.dll 和simboard.dll ,安装时只要根据需要将这两个或某一个文件拷贝到keil 软件的c51\bin 文件夹中即可。
二、实验仿真板的使用要使用仿真板,必须对工程进行设置,设置的方法是点击Project->Option for Target ‘Target1’打开对话框,然后选中Debug 标签页,在Dialog :Parameter:后的编缉框中输入-d 文件名。
例如要用ledkey.dll (即第一块仿真板)进行调试,就输入-dledkey ,如图3所示,输入完毕后点击确定退出。
编译、连接完成后按CTRL+F5进入调试,此时,点击菜单Peripherals ,即会多出一项“键盘LED 仿真板(K )”,选中该项,即会出现如图1的界面,键盘、LED 显示实验仿真板图2 单片机实验仿真板同样,在设置时如果输入-dsimboard 则能够调出如图2的界面。
单片机控制LED灯点亮(C语言)
将0xfe赋给P1口,然后使用移位函数来改变P1口的值,达到流水灯的效果 移位函数: _crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回 。 _crol_,_cror_: c51中的intrins.h库函数
程序如下:
随后会弹出一个对话框,要求选择单片机的型号。在该对话框中显示了Vision2的器件数据库,从中可以根据使用的单片机来选择。
PART ONE
AT89S52
8051 based Full Static CMOS controller with Three-Level Program Memory Lock, 32 I/O lines, 3 Timers/Counters, 8 Interrupts Sources, Watchdog Timer, 2 DPTRs(DATA POINTER REGISTERS ), 8K Flash Memory, 256 Bytes On-chip RAM 基于8051全静态CMOS控制器、 三级加密程序存储器 、 32个I/O口 、三个定时器/计数器 、八个中断源 、看门狗定时器、2 个数据指针 寄存器、8k字节Flash,256字节片内RAM
十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。 以下各数是合法的十六进制整常数: 0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535) 以下各数不是合法的十六进制整常数: 5A (无前缀0X) 0X3H (含有非十六进制数码)
各种进位制的对应关系
十进制
二进制
十六进制
十进制
二进制
十六进制
0
0
0
9
1001
单片机控制LED灯点亮(C语言)
单片机控制LED灯点亮在嵌入式系统开发中,单片机控制LED灯是入门阶段必不可少的实验。
本文将介绍如何在单片机中使用C语言编程控制LED灯点亮。
硬件准备本实验所需硬件材料如下:•单片机主板•LED灯•杜邦线根据图示,将单片机主板上的引脚和LED灯连接起来。
单片机引脚 LED灯P0.0 +端GND -端软件准备我们选择Keil uVision作为编程环境来编写代码。
在开始编写代码之前,需要下载并安装Keil uVision软件。
新建工程在Keil uVision软件中,通过菜单Project -> New µVision Project新建一个工程。
新建工程新建工程在弹出的对话框中,选择保存工程的路径,命名工程名字,选择MCU型号并确定。
选择MCU型号选择MCU型号添加源文件在Keil uVision软件中,将编写的源代码文件添加到工程中。
选择菜单Project -> Add New Item,在弹出的对话框中选择新建一个源文件。
添加源文件添加源文件编写代码以下是控制LED灯点亮的C语言代码#include <STC89C5xRC.H>int main(void){while(1) {P0 = 0x01; // P0.0 点亮LED灯}}程序的执行流程如下:1.定义一个无限循环,反复执行控制LED灯点亮的操作。
2.将P0.0 IO口设为高电平,点亮LED灯。
编译和烧录完成编写代码之后,可进行编译和烧录。
选择菜单Project -> Build Target进行编译,将生成的hex文件烧录到单片机上即可。
本文介绍了如何在单片机中使用C语言编程控制LED灯点亮的操作。
通过对硬件和软件的介绍,读者可以学习到单片机的基础知识与相关编程知识,对深入学习嵌入式系统和单片机开发有很大的帮助。
《单片机原理与应用》单片机控制LED灯点亮实验
《单片机原理与应用》单片机控制LED灯点亮实验一、实验目的和要求1、熟悉protues软件的使用和protues和Keil软件的联调2、学习P1口的使用方法3、学习延时子程序的编写和使用二、实验内容和原理单片机的IO口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当IO口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
1、在Protues软件中完成单片机最小应用系统和LED指示灯显示电路2、打开Keil uVision2仿真软件,首先建立本实验的项目文件,输入源程序(课前预习程序),进行编译,直到编译无误,生成hex文件3、实现protues和keil的在线联调,完成LED灯的闪烁(亮1秒,灭1秒)。
三、主要仪器设备电脑、keil c51、Protues软件四、操作方法与实验步骤(1)提前阅读与实验2相关的阅读材料;(2)参考实验2电路原理图和元件清单,在ISIS中完成电路原理图的绘制;(3)加载可执行文件,观察仿真结果,检验电路图绘制的正确性。
五、实验数据记录和处理Keil代码:电路图:六、实验结果与分析仿真结果:上板实操结果:实验分析:1.如上图,实现了protues和keil的在线联调,完成LED灯的闪烁(亮1秒,灭1秒)。
2.硬件电路分析关于51单片机P0双向I/O口使用:P0口为双向IO口,驱动负载能力强,因此本实验采用P0作为八位共阴极数码管的段选口。
但是其输出时为漏极开路输出,需要加一个上拉电阻六、讨论和心得经过本次单片机实验,我熟悉了protues软件的使用和protues和Keil软件的联调,掌握了P1口的使用方法以及延时子程序的编写和使用.在这次实验中我认为最宝贵的还是让我学会了解决问题,突破瓶颈的方法。
将理论知识合理应用到实践中,才是我们学习的目标。
C51单片机控制LED灯设计方案
C51单片机控制LED灯设计方案C51单片机是一种8位单片机,被广泛应用于嵌入式系统和各种控制设备中。
LED灯是一种常见的电子显示器件,可以通过控制单片机的输入输出口来实现各种灯光效果。
以下是一个基本的C51单片机控制LED灯的设计方案。
1.设计硬件电路首先,我们需要设计一个合适的硬件电路来连接单片机和LED灯。
一个简单的电路包括单片机、电流限制电阻和LED灯。
单片机的输出端口与LED灯正极相连,电阻连接在LED灯的负极,此电阻一般选择220欧姆以限制电流。
2.编写程序使用Keil C51开发环境编写程序,通过编程来控制单片机的输出口,从而控制LED灯的亮灭。
首先,需要包含头文件reg51.h,该头文件包含了控制单片机输入输出口的相关函数。
接着,需要定义LED灯的连接引脚。
例如,如果LED灯连接到单片机的P1.0引脚,可以使用以下命令定义:sbit LED = P1^0;在主程序中,我们可以使用循环语句来实现LED灯的不同亮灭效果。
例如,以下代码实现了一个LED灯闪烁的效果:#include <reg51.h>sbit LED = P1^0;unsigned int i, j;for(j=0;j<1275;j++);void mainwhile(1)LED=0;//亮灯delay(1000); //延时LED=1;//灭灯delay(1000); //延时}在以上代码中,LED = 0;表示将P1.0引脚输出低电平,亮起LED灯;LED = 1;表示将P1.0引脚输出高电平,灭掉LED灯。
delay函数用于延时一段时间,以控制LED灯的闪烁频率。
3.烧录程序完成程序编写后,将C51单片机与计算机通过编程器连接,并使用烧录软件将程序烧录到单片机内部存储器中。
4.运行程序烧录完成后,将单片机与电路连接,并将电路供电。
LED灯应该开始闪烁起来,效果如设计所期望。
以上是一个基本的C51单片机控制LED灯的设计方案。
项目一keil软件的使用及灯光闪烁
项目一:keil软件的使用及灯光闪烁实验一、项目目的:1、练习keil软件的使用2、会用单片机控制单个LED灯闪烁二、项目设备1、MCU01 主机模块2、MCU02 电源模块3、MCU04 显示模块4、SL-USBISP-A 在线下载器5、电子连线若干三、项目内容(一)keil软件的使用51 单片机系列最受欢迎的开发软件为Keil C51。
它支持汇编,C 语言开发,软件仿真等功能。
具有相当大的用户群,功能强大,资料丰富。
下面简要介绍一下它的使用方法。
安装完成后,运行此程序进入软件界面。
界面如下图所示:使用具体方法:1、建立项目建立项目的目的是方便对源程序的统一管理,对编译条件编译设置的存储等。
项目文件和源程序文件是相互独立的两种文件。
它们可以存放在不同的目录内,但为了以后管理,通常放在一个目录内。
建立项目的方法是菜单栏中的“Project->New->uVision Project”,然后会弹出一个保存对话框,请选择存放文件夹并保存(一般是事先建立一个文件夹)。
保存项目文件的同时会弹出一个“select device for Target ‘Taget 1’”对话框,通过此对话框选择目标芯片相同的型号并按确定按钮以确定。
最后还会弹出一个对话框,询问是否加载启动文件到项目中,如果是用C 语言开发就点“是”,如果要用汇编编程就点“否”。
整个流程如下图所示。
创建源程序通过“File->New”新建一个源文件,保存此源文件时没有扩展名,如果是 C 语言编程请加扩展名“.c”,如果用汇编编程请加扩展名“.asm”。
源文件最好与项目文件放在同一个文件夹内,以便管理。
2、添加源程序文件到项目右击项目管理器中的项目文件,在弹出的菜单中选择“Add Files to Group ’source Group 1’”,在弹出的对话框中找到上一步保存的源程序文件加载到项目中。
双击刚才加载的源程序文件,在工作空间中完成程序的编辑。
用单片机控制一个LED
用单片机控制一个LED摘要:本文介绍了如何使用单片机来控制LED,并实现不同亮度的灯光效果。
首先,介绍了单片机的基本概念和控制电路的组成要素。
然后,分析了LED的工作原理和控制方法。
最后,通过实验验证了单片机控制LED的可行性和应用价值。
关键词:单片机,LED,控制电路,亮度调节正文:一、引言LED作为一种新型的光源,以其高效、低耗、寿命长等优点,得到了广泛应用。
而单片机作为一种微型电子系统,在控制电路中的应用也越来越广泛。
本文旨在介绍如何使用单片机来控制LED,并实现不同亮度的灯光效果。
二、单片机控制电路的基本组成要素单片机控制电路一般由单片机、外部存储器、输入输出接口、时钟电路和电源等组成要素构成。
其中,单片机是控制电路的核心部件,负责实现对各种输入输出设备的控制。
外部存储器则用于存储程序和数据,输入输出接口则负责控制单片机和外部设备之间的数据传输,时钟电路则提供单片机的时钟信号,电源则保证整个控制电路的正常工作。
三、LED的工作原理和控制方法LED,即发光二极管,它是一种半导体元件,通过在其PN结上加正向电压,使其发光。
LED一般分为彩色和单色两种,其中,单色LED只能发射单一颜色的光,而彩色LED则可以发射多种不同颜色的光。
控制LED的亮度一般有两种方法,一种是改变其工作电压,另一种则是改变其工作电流。
在单片机控制LED时,通常采用后一种方法,即通过改变LED所接的电流大小来实现亮度的调节。
四、实验验证为了验证单片机控制LED的可行性和应用价值,我们进行了一组实验。
具体步骤如下:1.将三个LED分别连接到单片机的PD0、PD1、PD2引脚上,并通过限流电阻限制电流大小。
2.使用Keil C51编译器编写程序,通过PWM方式来实现对LED亮度的调节。
3.将编译好的程序下载到单片机中,并将单片机连接到电源和电脑。
4.启动程序,通过电脑上的串口发送不同的调光命令,来实现对LED亮度的不同调节。
[01]Ikeil使用入门和IO口访问
0000H 0001H 0002H 0003H 0030H
02H 00H 30H
20
0100H 74
…
…
END
五、实验报告要求
1、使用keil建立、编写基于mcs51单片机的程序的主要过 程。 2、实验过程中的现象。 3、使用别的按钮控制LED灯的代码。 4、让LED自行闪烁的代码(闪烁频率1~5Hz即可,提示: 合理使用延时程序)
三、实验步骤
4、修改源程序尝试不同的点灯方法 使用别的按钮控制LED指示灯? 如果没有去抖动算法LED的显示会有什么不同? 如何让LED指示灯自己闪烁起来?
四、参考程序(C)
#include <reg51.h> sbit LEDIO=P1^4; //定义指示灯的位变量 sbit KEY1=P2^0; //定义按键K1的位变量 void delay(unsigned int DelayTime);//延时函数定义 void main(void) { while(1) { while(KEY1==1);//等待按钮被按下 delay(500);//延时一会儿 if(KEY1==0) LEDIO=~LEDIO;//如果依然为0,说明用户确实按下了按钮 while(KEY1==0);//等待用户松开按钮 } } void delay(unsigned int DelayTime) { while(Del和IO口访问
一、实验目的
1、学会集成开发环境uVision4的使用 2、掌握基本的IO读写技巧
二、实验原理
编写程序,从指定的IO口读取按钮的状态, 并将相关状态输出至另一个IO,从而驱动 LED指示灯点亮或者熄灭。 相关硬件
LED指示灯D3
按钮K1-K4
keil5简单案例
keil5简单案例以下是一个简单的Keil5案例,用于点亮LED灯:1. 创建一个新的工程。
在Keil5中,选择“Project”菜单中的“New”选项,然后选择“Empty Project”。
在弹出的对话框中输入项目名称,例如“LED_Test”,然后点击“OK”按钮。
2. 添加头文件。
在Keil5中,选择“Project”菜单中的“Add Files”选项,然后选择“Header Files”。
在弹出的对话框中选择“C/C++”文件夹,然后选择“stdio.h”头文件,并点击“Add selected”按钮。
3. 编写代码。
在Keil5中,选择“Project”菜单中的“Add Files”选项,然后选择“Source Files”。
在弹出的对话框中选择“C/C++”文件夹,并输入代码。
例如,以下代码可以用于点亮LED灯:```#include <stdio.h>int main() {printf("Hello, World!\n");while(1) {printf("On\n");delay(1000);printf("Off\n");delay(1000);}return 0;}```4. 编译和调试。
在Keil5中,选择“Project”菜单中的“Build”选项,然后选择“Build”。
如果没有错误,可以选择“Debug”菜单中的“Start/Stop Debug Session”选项进行调试。
5. 连接硬件。
在Keil5中,选择“Project”菜单中的“Target”选项,然后选择“Connect to Target”。
在弹出的对话框中选择正确的连接设备,然后点击“OK”按钮。
6. 运行程序。
在Keil5中,选择“Debug”菜单中的“Start/Stop Debug Session”选项,然后等待程序运行完成。
(仅供参考)51单片机实例-控制LED-灯的亮和灭
第一课,了解单片机及单片机的控制原理和DX516的用法,控制一个LED灯的亮和灭本章学习内容:单片机基本原理,如何使用DX516仿真器,如何编程点亮和灭掉一个LED灯,如何进入KEILC51uV 调试环境,如何使用单步,断点,全速,停止的调试方法聂小猛 2006年6月单片机现在是越来越普及了,学习单片机的热潮也一阵阵赶来,许多人因为工作需要或者个人兴趣需要学习单片机。
可以说,掌握了单片机开发,就多了一个饭碗。
51单片机已经有30多年的历史了,在中国,高校的单片机课程大多数都是51,而51经过这么多年的发展,也增长了许多的系列,功能上有了许多改进,也扩展出了不少分支。
而国内书店的单片机专架上,也大多数都是51系列。
可以预见,51单片机在市场上只会越来越多,功能只会越来越丰富,在可以预见的数十年内是不可能会消失的。
作为一个初学者,如何单片机入门?需要那些知识和设备呢?知识上,其实不需要多少东西,会简单的C语言,知道51单片机的基本结构就可以了。
一般的大学毕业生都可以快速入门,自学过这2门课程的高中生也够条件。
就算你没有学过单片机课程,只掌握了C语言的皮毛,通过本系列的教程,您也会逐渐的进入单片机的大门。
当然在学习的过程中,您还是必须多去研读单片机书籍,了解他们的基本结构及工作方式。
下面以51为例来了解一下单片机是什么东西,控制原理又是什么?在数字电路中,电压信号只有两种情况,高电平和低电平,用数字来记录就是1和0。
单片机内部的CPU,寄存器,总线等等结构都是通过1和0两种信号来运作的,数据也是以1或者0来保存的。
单片机的输入输出管脚,也就是IO口,也是只输出或识别1和0两种信号,也就是高电平和低电平。
当单片机输出一个或一组电平信号到IO口后,外部的设备就可以读到这些信号,并进行相应操作,这就是单片机对外部的控制。
当外部一个或一组电平信号送到单片机的IO口时,单片机也可以读到这些信号,并进行分析操作,这就是单片机对外部设备信号的读取。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
电路设计
+5V
+5V
21 22 23 24 25 26 27 28 12 13
P20 P21 P22 P23 P24 P25 P26 P27 INT0 INT1 T1 T0 EA/VP X1 X2 RESET RD WR
P00 P01 P02 P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P17
部分源程序
DELAY:MOV R5,#0FFH D1: MOV R4,#0FFH DJNZ R4,$ DJNZ R5,D1 RET END
25
观察:延时程序的延时时间
• Sec=0.06s=60ms • 如何计算,以后会讲
26
部分源程序
发光管循环(流水灯)程序
ORG START: S1: MOV RL A ACALL DELAY SJMP S1 DELAY: …… END 0000H A,#0FEH
P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28
74LS373
VC C
33pF
12MHz
19 18 9 17 16
100
33pF
13
8、选择程序存储目标
14
9、创建EPROM可以存储的HEX文件
15
11、开始/停止调试
16
12、连接到仿真器
• 操作:先按仿真器的“复位” 按钮,再“开始Debug”
17
13、观察程序存储器
• 操作在“Address”中输入:0000,或者c:0000
18
14、观察数据存储器(运行程序前)
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
D0 D1 D2 D3 D4 D5 D6 D7 OE LE
3 4 7 8 13 14 17 18 1 11 VC C
1 2 3 4 5 6 7 8 13 12 15 14 31
P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 R ESET R D W R
编辑窗口
输出信息窗口
图2-6 Keil C51在编辑状态下的操作界面
5
1、新建一个项目(New Project)
点击Project菜单,选择弹出的下拉式菜单中的New Project,如下图。接着弹出一个标准Windows文件对话 窗口。
6
如下图在“文件名”中输入您的第一个C程序项目 名称,这里我们用“test”, “保存”后的文件扩 展名为uv2,这是KEIL uVision2项目文件扩展名
R XD TXD ALE/P PSEN
10 11 30 29
10uF RESET
A T89C51
1K
23
部分源代码
• 一个发光管显示的例子 ORG START: MOV SJMP $ END 0000H P1,#0FEH
24
• 一个发光管闪烁的程序 ORG 0000H START:MOV P1,#0FEH ACALL DELAY MOV P1,#0FFH ACALL DELAY SJMP START
单片机控制LED灯 实验例程
河南大学 王艺
1
本讲内容: 介绍Keil的使用 设置,新建一个工程,新建一个程序ASM文 件,加载一个文件,编译与传输到硬件。 观察:学会硬件的观察,以及存储器单元的 观察 实例:完成对一组LED灯的闪烁控制。
2
Keil软件介绍
启动界面
3
4
菜单栏
工具栏
工程管理器窗口
• 注意:文件的后缀名
11
6、向项目中添加文件
操作:选择source group,按右键,选择 Add Files to Group ’Source group1’
12
7、编译源文件为机器码
1、2、3都是编译按钮。1是用于编译单个文件。2是编译当 前项目(如果先前编译过一次之后文件没有编辑改动,不会 再次重新编译的)。3是重新编译(每点击一次均会再次编 译链接一次,不管程序是否有改动)。在3右边的是停止编 译按钮,只有点击了前三个中的任一个,停止按钮才会生效。 4是信息窗口。5是包含了1、2、3。6是进入调试模式。
注意: 先在F盘建 “09DQ xxx yyy” 的文件夹
7
2、选择所用的单片机类型 Atmal下的AT89C52
8
3、新建单片机源文件(.ASM是汇编程序)
“1”是新建文件的快捷按钮,在“2”中出现一个新的文字编辑窗口 “3”是存盘的快捷按钮
9
4、编辑源文件
• 注意:Tab键的使用
10
5、保存源文件为xxx.asm文件
39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8
1K
+12V
10K
9013 10K
J
IN4001
+5V
RES
10uF
33pF 33pF
15 14 31
100 9013
100
12MHZ
19 18 9 17 16
1K
RXD TXD ALE/P PSEN
10 11 30 29
28
TAB: ;下面是流水花样数据表,用户可据要求任意编写 DB 11111110B ;二进制表示的流水花样数据,从低到高左移 DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DB 01111111B ;二进制表示的流水花样数据,从高到低右移 DB 10111111B DB 11011111B DB 11101111B DB 11110111B DB 11111011B DB 11111101B DB 11111110B DB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据 DB 0EFH,0DFH,0BFH,7FH DB 7FH,0BFH,0DFH,0EFH DB 0F7H,0FBH,0FDH,0FEH DB 0FFH ;流水花样结束标志0FFH END ;程序结束
• 操作:在“Address”中输入:D:0000
19
15、观察数据存储器(运行程序后)
20
总结(Keil过程)
(1)新建一个Project项目文件(.uv2) 选择单片机型号(Atmel-AT89C51) (2)编辑源文件并存盘(.ASM) (3)将源程序添加到工程中 (4)设置Keil工程目标项 Output:Create HEX files Debug: Use Keil Monitor-51 Driver (5)汇编源程序,生成HEX文件 (6)运行调试 Debug—Start/Stop Debug Session 连接仿真器(注意复位) 运行:Go、Step、Step Over、Stop
21
实例:单片机控制LED灯
• 从P1输出数据,控制LED(观察:低电平/高电平发亮?): MOV P1,#00H 或者 MOV P1,#0FFH • 如何使LED灯闪烁? 按照Keil使用方法,连接仿真器,完成这个实验,总结实验过程!
22
硬件线路
VC C
270*8
2 5 6 9 12 15 16 19
100K
J 100
AT89C51
22K
LED
30
开始 设置初始值 设移位次数 数据输出 左一位 延时 是 移位次数完 成? (A)P1口循环点灯程序框图
27
MOV P1,A
否
发光管任意变换的程序
ORG 0000H START: MOV DPTR,# TAB ;流水花样表首地址送DPTR LOOP: CLR A ;累加器清零 MOVC A,@A+DPTR ;取数据表中的值 CJNE A,#0FFH,SHOW;检查流水结束标志 AJMP START ;所有花样流完,则从头开始重复流 SHOW: MOV P1,A ;将数据送到P1口 ACALL DELAY ;调用延时子程序 INC DPTR ;取数据表指针指向下一数据 AJMP LOOP ;继续查表取数据