keil5

阅读: 评论:0

Keil    软件实全教程(五)
其于 Keil 实验仿真板的使用
前面介绍了 Keil 软件的使用,从中我们可以看到 捕鼠笼Keil 的强大功能,不过,对于初学者
来说,还有些不直观,调试过程中看到的是一些数值,并没有看到这些数值所引起的外围电
路的变化,例如数码管点亮、发光管发光等。为了让初学者更好地入门,笔者利用    Keil
供的 AGSI 接口开发了两块仿真
实验板。
这两块仿真板将枯燥无味
的数字用形象的图形表达出来,
可以使初学者在没有硬件时就
能感受到真实的学习环境,降低
单片机的入门门槛。图    1    是键
盘、LED 显示实验仿真板的图,
从图中可以看出,该板比较简
单,有在 P1 口接有 8 个发光二
极管,在 P3 口接有 4 个按钮,
图的右边给出了原理图。
    2    是另一个较为复杂的
实验仿真板。在该板上有 8 个数

码管,16 个按键(接成 44
矩阵式),另外还有 P1 口接的 8

键盘、LED 显示实验仿真板

个发光管,两个外部中断按钮,一个带有计数器的脉冲发生器等资源,显然,这块板可以完
成更多的实验。
一、实验仿真板的安装
这两块仿真实验板实际上是两个 dll
件,名称分别是 ledkey.dll simboard.dll
安装时只要根据需要将这两个或某一个文
件拷贝到 keil 软件的 c51\bin 文件夹中即可。
二、实验仿真板的使用
要使用仿真板,必须对工程进行设置,
设置的方法是点击 Project->Option for Target
‘Target1’打开对话框,然后选中 Debug 标签
页,在 Dialog :Parameter:后的编缉框中输入

-d 文件名。例如要用 ledkey.dll(即第一块仿
真板)进行调试,就输入-dledkey,如图    3

2    单片机实验仿真板

所示,输入完毕后点击确定退出。编译、连接完成后按 CTRL+F5 进入调试,此时,点击菜
Peripherals,即会多出一项键盘 LED 仿真板(K,选中该项,即会出现如图 1 的界面,


Keil    软件实全教程(五)
同样,在设置时如果输入-dsimboard    则能够调出如
2 的界面。
第一块仿真板的硬件电路很简单,电路图已在
板上,第二块板实现的功能稍复杂,其键盘和数码
显示管部份的电路原理图如图 4 所示。下表给出了
常用字形码,读者也可以根据图中的接线自行写出
其它如    ABCDEF 等的字形码。    除了键
盘和数码管以外,P1 口同样也接有 8 个发光二极管,
连接方式与图 1 相同;脉冲发生器是接入 T0 P3.4 引脚。

3    实验仿真板的设置

0c0h    0f9h    0a4h    0b0h    99h

92h

82h    0f8h


80h

无线视频服务器90h    0FFH

0
VCC

1

2
C    D
8    9

3

E    F
A    B

4

P3.7
P3.6


5
89C51

6
P0.7

7

8

9


消隐

4    5
0    1

6    7
2    3

P3.5
P3.4
勾花网机
P3.3
P3.2
P3.1
P3.0

P0.0
P2.7
P2.0

驱动


h g f e

d    c    b    a

三、实例调试

4    实验仿真板 2 数码管和键盘部份的电路图

以下以一个稍复杂的程序为例,说明键盘、LED    显示实验仿真板的使用。该程序实现
的是可控流水灯,接 P3.2    的键为开始键,按此键则灯开始流动(由上而下),接 P3.3    的键
为停止键,按此键则停止流动,所有灯暗,接 P3.4 的键为向上键,按此键则灯由上向下流
动,接 P3.5 的键为向下键,按此键则灯由下向上流动。
8

UpDown

BIT 00H ;上下行标志

StartEnd BIT 01H ;起动及停止标志
LAMPCODE EQU    21H ;存放流动的数据代码
ORG 0000H
AJMP    MAIN
ORG    30H
MAIN: 
MOV    SP,#5FH
MOV    P1,#0FFH
CLRUpDown    启动时处于向上的状态

P0.
5
P0.
4
P0
.7
P0
.6
P0
.3
P0
.2
P0
.0
P0
.1
P2.
7
P2.
6
P2
.5
P2.
4
P2
.3
P2.
2
P2
.1
P2
.0
Keil    软件实全教程(五)
CLRStartEnd ;启动时处于停止状态
MOV LAMPCODE,#01H单灯流动的代码
LOOP:    ACALL KEY    ;调用键盘程序
JNB F0,LNEXT    ;如果无键按下,则继续

ACALL KEYPROC

;否则调用键盘处理程序

LNEXT: ACALL LAMP    ;调用灯显示程序

AJMP    LOOP
;延时程序,键盘处理中调用
DELAY: MOV    R7,#100
D1: MOV    R6,#100
DJNZ    R6,$
DJNZ    R7,D1
RET
KEYPROC:

;反复循环,主程序到此结束

MOV    A,B  ; B 寄存器中获取键值
JB ACC.2,KeyStart    ;分析键的代码,某位被按下,则该位为 1
JB ACC.3,KeyOver
JB ACC.4,KeyUp
JB ACC.5,KeyDown
AJMP    KEY_RET
KeyStart:
SETB    StartEnd ;第一个键按下后的处理
AJMP    KEY_RET
KeyOver:
CLRStartEnd ;第二个键按下后的处理
AJMP    KEY_RET
KeyUp:

SETB    UpDown
AJMP    KEY_RET
KeyDown:

;第三个键按下后的处理

CLRUpDown    第四个键按下后的处理
KEY_RET:
RET
KEY:
CLRF0F0,表示无键按下。

ORL

P3,#00111100B    ; P3 口的接有键的四位置 1

MOV    A,P3    ; P3 的值

ORL

A,#11000011B    ;将其余 4 位置 1

CPL A    ;取反
JZ K_RET ;如果为 0 则一定无键按下
CALL    DELAY ;否则延时去键抖

ORL

P3,#00111100B

MOV    A,P3

ORL

A,#11000011B


Keil    软件实全教程(五)
CPL A
JZ K_RET
MOV    B,A ;确实有键按下,将键值存入 多西紫杉醇说明书B
SETB    F0 ;设置有键按下的标志
;以下的代码是可以被注释掉的,如果去掉注释,就具有判断键是否释放的功能,否则
没有
K_RET: ;ORL    P3,#00111100B    ;此处循环等待键的释放
;MOV    A,P3
;ORL    A,#11000011B

;CPL

A
;JZ  K_RET1

;读取的数据取反后为 0 说明键释放了

;AJMP    K_RET
;K_RET1:CALL    DELAY
RET
D500MS:    ;流水灯的延迟时间
MOV R7,#255
D51:    MOV R6,#255
DJNZ    R6,$
DJNZ    R7,D51
RET
LAMP:

;消除后沿抖动

JBStartEnd,LampStart ;如果 StartEnd=1,则启动
黄军导航MOVP1,#0FFH
AJMP  LAMPRET  ;否则关闭所有显示,返回
LampStart:
JB  UpDown,LAMPUP    ;如果 UpDown=1,则向上流动
MOVA,LAMPCODE

RL

;实际就是左移位而已

MOV    LAMPCODE,A
MOVP1,A
LCALLD500MS
LCALLD500MS
AJMPLAMPRET
LAMPUP:
MOVA,LAMPCODE
RR A向下流动实际就是右移
MOV    LAMPCODE,A
MOVP1,A
LCALLD500MS
LAMPRET:
RET
END
车库翻板门
将程序输入并建立工程文件,设置工程文件,在    Debug    标签页中加入-dledkey,汇
编、连接文件,按 Ctrl+F5 开始调试,打开仿真板,使用 F5 功能键全速运行,可以看到所


Keil    软件实全教程(五)
有灯均不亮,点击最上面的按钮,立即会看到灯流动起来了,点击第二个按键,灯将停止流
动,再次点击第一个按钮,使灯流动起来,点击第三个按钮,可以发现灯流动的方向变了,
点击第四个按钮,灯的流动方向又变回来了。如果没有出现所描述的现象,可以使用单步、
过程单步等调试手段进行调试,在进行调试时实验仿真板会随时显示出当前的情况,是不是
非常的直观和方便呢?
下面的一个例子是关于第二块实验仿真板的,演示点亮 8 位数码管。例 9
ORG0000h

本文发布于:2023-05-13 11:34:33,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/97600.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:调试   流动   实验
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图