Keil使用教程(单片机控制LED灯)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 注意:文件的后缀名
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是进入调试模式。
编辑窗口
输出信息窗口
图2-6 Keil C51在编辑状态下的操作界面
5
1、新建一个项目(New Project)
点击Project菜单,选择弹出的下拉式菜单中的New Project,如下图。接着弹出一个标准Windows文件对话 窗口。
6
如下图在“文件名”中输入您的第一个C程序项目 名称,这里我们用“test”, “保存”后的文件扩 展名为uv2,这是KEIL uVision2项目文件扩展名
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
R XD TXD ALE/P PSEN
10 11 30 29
10uF RESET
A T89C51
Hale Waihona Puke Baidu
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
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
• 操作:在“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
单片机控制LED灯 实验例程
河南大学 王艺
1
本讲内容: 介绍Keil的使用 设置,新建一个工程,新建一个程序ASM文 件,加载一个文件,编译与传输到硬件。 观察:学会硬件的观察,以及存储器单元的 观察 实例:完成对一组LED灯的闪烁控制。
2
Keil软件介绍
启动界面
3
4
菜单栏
工具栏
工程管理器窗口
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
部分源程序
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
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 ;程序结束
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
注意: 先在F盘建 “09DQ xxx yyy” 的文件夹
7
2、选择所用的单片机类型 Atmal下的AT89C52
8
3、新建单片机源文件(.ASM是汇编程序)
“1”是新建文件的快捷按钮,在“2”中出现一个新的文字编辑窗口 “3”是存盘的快捷按钮
9
4、编辑源文件
• 注意:Tab键的使用
10
5、保存源文件为xxx.asm文件
100K
J 100
AT89C51
22K
LED
30
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
开始 设置初始值 设移位次数 数据输出 左一位 延时 是 移位次数完 成? (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 ;继续查表取数据
13
8、选择程序存储目标
14
9、创建EPROM可以存储的HEX文件
15
11、开始/停止调试
16
12、连接到仿真器
• 操作:先按仿真器的“复位” 按钮,再“开始Debug”
17
13、观察程序存储器
• 操作:在“Address”中输入:0000,或者c:0000
18
14、观察数据存储器(运行程序前)