Keil使用教程(单片机控制LED灯)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
电路设计
+5V
பைடு நூலகம்RES
33pF 33pF
10uF
100
12MHZ
1K
21 22 P20 23 P21 24 P22 25 P23 26 P24 27 P25 28 P26
P27 12 13 INT0
INT1 15 14 T1
T0 31
EA/VP 19 18 X1
X2 9
RESET 17 16 RD
S1:
MOV P1,A
RL A
ACALL DELAY
SJMP S1
DELAY: ……
END

设置初始值 设移位次数 数据输出
左一位 延时

移位次数完 成?
(A)P1口循环点灯程序框图27
发光管任意变换的程序
ORG 0000H
START:
MOV DPTR,# TAB ;流水花样表首地址送DPTR
LOOP: CLR A ;累加器清零
INT1 INT0
15 14
T1 T0
31
EA/VP
19 18
X1 X2
9
RESET
17 16
RD WR
AT89C51
P00 P01 P02 P03 P04 P05 P06 P07
39 38 37 36 35 34 33 32
P20 P21 P22 P23 P24 P25 P26 P27
21 22 23 24 25 26 27 28
AJMP LOOP ;继续查表取数据
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 ;程序结束
RXD TXD ALE/P PSEN
10 11 30 29
1K
23
部分源代码
• 一个发光管显示的例子 ORG 0000H
START: MOV P1,#0FEH SJMP $ END
24
• 一个发光管闪烁的程序 ORG 0000H
START:MOV P1,#0FEH ACALL DELAY MOV P1,#0FFH ACALL DELAY SJMP START
21
实例:单片机控制LED灯
• 从P1输出数据,控制LED(观察:低电平/高电平发亮?): MOV P1,#00H
或者 MOV P1,#0FFH • 如何使LED灯闪烁?
按照Keil使用方法,连接仿真器,完成这个实验,总结实验过程!
22
硬件线路
VCC
270*8 2 5 6 9 12 15 16 19
单片机控制LED灯 实验例程
河南大学 王艺
1
本讲内容:
介绍Keil的使用 设置,新建一个工程,新建一个程序ASM文 件,加载一个文件,编译与传输到硬件。 观察:学会硬件的观察,以及存储器单元的 观察 实例:完成对一组LED灯的闪烁控制。
2
Keil软件介绍
启动界面
3
4
菜单栏 工具栏
工程管理器窗口
+12V
IN4001
J
+5V
10K 100
9013
J 100K
100
22K
LED
30
注意: 先在F盘建 “09DQ xxx yyy” 的文件夹
7
2、选择所用的单片机类型 Atmal下的AT89C52
8
3、新建单片机源文件(.ASM是汇编程序)
“1”是新建文件的快捷按钮,在“2”中出现一个新的文字编辑窗口 “3”是存盘的快捷按钮
9
4、编辑源文件
• 注意:Tab键的使用
10
5、保存源文件为xxx.asm文件
• 注意:文件的后缀名
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是进入调试模式。
WR
39 P00 38 P01 37 P02 36 P03 35 P04 34 P05 33 P06 32 P07
10K
1 P10 2 P11 3 P12 4 P13 5 P14 6 P15 7 P16 8 P17
10 RXD 11 TXD 30 ALE/P 29 PSEN
AT89C51
+5V 1K 9013
Output:Create HEX files Debug: Use Keil Monitor-51 Driver (5)汇编源程序,生成HEX文件 (6)运行调试 Debug—Start/Stop Debug Session 连接仿真器(注意复位) 运行:Go、Step、Step Over、Stop
• 操作:在“Address”中输入:D:0000
19
15、观察数据存储器(运行程序后)
20
总结(Keil过程)
(1)新建一个Project项目文件(.uv2) 选择单片机型号(Atmel-AT89C51) (2)编辑源文件并存盘(.ASM) (3)将源程序添加到工程中 (4)设置Keil工程目标项
13
8、选择程序存储目标
14
9、创建EPROM可以存储的HEX文件
15
11、开始/停止调试
16
12、连接到仿真器
• 操作:先按仿真器的“复位” 按钮,再“开始Debug”
17
13、观察程序存储器
• 操作:在“Address”中输入:0000,或者c:0000
18
14、观察数据存储器(运行程序前)
Q0
D0
Q1
D1
Q2
D2
Q3
D3
Q4
D4
Q5
D5
Q6
D6
Q7
D7
OE LE
74LS373
3 4 7 8 13 14 17 18
1 11
VCC
VCC
33pF
33pF 100
10uF RESET
12MHz
1 2 3 4 5 6 7 8
P10 P11 P12 P13 P14 P15 P16 P17
13 12
部分源程序
DELAY:MOV R5,#0FFH D1: MOV R4,#0FFH
DJNZ R4,$ DJNZ R5,D1 RET END
25
观察:延时程序的延时时间
• Sec=0.06s=60ms • 如何计算,以后会讲
26
部分源程序
开始
发光管循环(流水灯)程序
ORG 0000H
START: MOV A,#0FEH
编辑窗口 输出信息窗口
图2-6 Keil C51在编辑状态下的操作界面
5
1、新建一个项目(New Project)
点击Project菜单,选择弹出的下拉式菜单中的New Project,如下图。接着弹出一个标准Windows文件对话 窗口。
6
如下图在“文件名”中输入您的第一个C程序项目 名称,这里我们用“test”, “保存”后的文件扩 展名为uv2,这是KEIL uVision2项目文件扩展名
MOVC A,@A+DPTR ;取数据表中的值
CJNE A,#0FFH,SHOW;检查流水结束标志
AJMP START ;所有花样流完,则从头开始重复流
SHOW: MOV P1,A ;将数据送到P1口
ACALL DELAY ;调用延时子程序
INC DPTR ;取数据表指针指向下一数据
相关文档
最新文档