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灯的亮度没有根据光照强度进行调节,可以通过调试工具查看代码执行中的问题。
- 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 ;继续查表取数据