LE D花样流水灯 口殷建彬
Kei l和 P rote u s结合实例之一
笔者在 2004年本刊的第 1O期发
表了《Keil和 Proteus整合》一文 ,有
不少 的读 者朋 友不知 道如何使 用
Proteus软件,其实笔者也正在探索这
个软件的使用
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。笔者发现它的功能
非常强大,使用方法也比较有特色,如
果自己摸索的话,要花费好长时间才
行。为了帮助大家快速地学会使用这个
软件,笔者把自己的使用体会整理出
来,供读者朋友们参考。在介绍一种软
件的使用方法的时候。笔者觉得利用实
例是比较快的办法。现向读者朋友介绍
LED花样流水灯的电路设计、程序设
计等。通过学习这个实例。读者朋友就
可以利用 Proteus设计简单的电路以
及怎么样结合 Keil进行调试了。
一
、ISIS界面介绍
假设你已经安装好了 Proteus和
Keil这 两个软 件 。笔 者 安 装的是
Proteus 6 Demonstration版本。鼠标点
击 “开始”。点击 “程序”。找到
“Proteus 6 Demonstration” 程序 。在
出现的菜单里点击 “ISIS 6 Demo”。如
图 1所示。启动 ISIS。
启动成功的界面如图2所示。整个
屏幕被分成七个区域。最上面是菜单
栏,下面接着是工具栏,再下面就是工
具箱;右边很大的区域是编辑窗口,编
辑窗口显示你正在编辑的电路原理图;
左上方是预览窗口,预览窗口通常显示
整个电路图的缩略图。预览窗口的蓝色
框标示出了图的边框,同时窗口上的绿
色框标出在编辑窗口中显示的区域。在
预览窗口上点击鼠标左键。将会以点击
位置为中心刷新编辑窗口:在左下方是
对象选择器,对象选择器根据由图标决
定的当前状态显示不同的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
。显示对
象的类型包括:设备、终端、管脚、图形
符号、标注和图形等。在某些状态下。对
象选择器有一个Pick t.TJ换按钮翻 。
点击该按钮可以弹出库元件选取窗体。
通过该窗体可以选择元件并置入元器
件选择器。在今后绘图时使用;工具箱
由三部分组成:左边的最下方是元器件
旋转工具。有四个按钮。分别是顺时针
旋转、逆时针旋转、竖直方向旋转、水平
方向旋转:旋转工具的右侧是调试时候
③
C1
p
22p
U1
XTALI
XTAL2
RST
PSEN
ALE
EA
O/T
1/T
2
3
4
5
6
7
P2.O/A8
P2.1/A9
P2 2/A1
P2 3/A1
P2.4/A1
P2.5/A1
P2.6/A1
P2 7/A1
37
36
21
22
26
27
2 P3 O/RXD U
2EX P3.1/TXD LLl
P3 2/雨 L
16
1 7
的快捷工具按钮。
二、电路设计
下面详细介绍怎么样用 ISIS设计
电路图。笔者用 ISIS设计的电路图如
图 3所 示 。电路 的核心是 单 片机
AT89C52。C1、C2和晶振 X1构成典型
的单片机上电复位电路;八个发光二极
管负极接到单片机的 P2口。二极管的
正极经限流电阻接到电源的正极。这样
的话。当单片机是低电平时。点亮发光
二极管,单片机是高电平的时候,发光
二极管熄灭。四个按键一端接到单片机
的 P3.2、P3.3、P3 4、P3.5脚。另~端接
地。当按下按键时相应的单片机 I/O口
就接到了低电平。
元器件的添加和放置 点击 ISIS
元器件选择器左边中间的 按钮 。
出现 Pick Devices对话框。如图 4所
示。在这个对话框里我们选择元器件。
在 Category(器件种类 )下面我们找
到 “Micoprocessor IC”选项 。鼠标左
键点击一下。在对话框的右侧。我们会
__L K1
_-L K2 }
I
_{∈}—_亡
LED-BLUE 1O0
LED- RED IUU
c .
D3
. R3
LED GR
—
EEN
∈
1UU 一
d 赫D4 R4
LED—YELL0W l uu
LED -BLUE IUU
f .D6
. R6
—
LE D- RED I bU
LED -GRE EN I bU
h D8 R8
LED—YELL0W l 0u
Vcc
40 电子翻作 2OO5年 第 1期
0 2 3 4 5 6 7
D D D D D D D D
A A A A A A A A
/ / / / / / / /
O 2 3 4 5 6 7
0 0 0 0 0 0 0 0
P P P P P P P P
伯一 他一 9
M 一 他 L_] 上口
I兰 一¨恹一
维普资讯 http://www.cqvip.com
发现这里有大量的常见的各种型号的
单片机。这里我们选择 “AT89C52”。
情形如图4所示。在图4的右上方出
现了 AT89C52的 SCH的图样。在下
面出现了它的 PCB的图样,这意味着
我们在 ISIS设计好原理图(SCH)后。
还可以在 Proteus的 ARES里设计印
板图(PCB)。这样在左边的元器件选
择器就有了AT89C52这个元件了。点
击一下这个元件,然后把鼠标指针移到
右边的原理图编辑区的适当位置,点击
鼠标的左键 ,这时就把AT89C52器件
放到了原理图区。下面我们把需要的另
外的器件找到并添加到元器件选择器
下。在 Resistors选项找到 RES (电
阻 );在 Capacitors选项找到 CAP(电
容 );在 Miscellaneous选 项 找 到
CRYSTAL(晶振 );在 Switches&ReIays
选 项 找 到 BU丌ON (按 键 );在
Operational Amplifiers选项找到 LED
(发光二极管 ),在这里有各种颜色的
二极管可以选择的。其实如果你知道元
器件的名称,也可以在 Pick Devices
对话框的左上方 Keywords的下面输
入要添加的元器件名字,就会自动的找
到器件所在的地方。如图5是我输入
AT89C52出现的情形。接着我们把需
要的元器件添加到原理图设计区,方法
同放置AT89C52一样。
耐 一⋯⋯ 西箍:: c£畦 嚣::: ::::::lI::::::::::::
鲞 一 蓉 盛 ⑥
放置电源及接地符号 点击工具箱
的接线端 譬按钮。在器件选择器里点
击 GROUND,鼠标移到原理图编辑
区,左键点击一下即可放置接地符号;
类似地把电源符号也可以放到原理图
编辑区。
电路图的放大和缩小 在原理图
编辑区,如果想放大电路图可以连续
的按 F6 (连续按会不断放大直到最
大 ),按 F7键可以缩小电路图(类似
的连续按,会不断缩小直到最小 ),这
两种情况无论哪种都会使显示以当前
鼠标位置为中心重新显示。当然,你也
可以点击工具栏的放大按钮殴 和缩
小按钮Q :。按F8键可以把一整张图
缩放到完全显出来,也可以点击工具栏
的 按钮。图的大小可以通过 View
菜单的 Zoom命令或者是上述的功能
键控制。无论何时你都可以使用功能键
控制缩放,即便是在滚动和拖放元器件
时。另外,按着 SHIFT键 ,同时在一个
特定的区域用鼠标左键拖一个框,则框
内的部分就会被放大 ,这个框可以是
在编辑窗口内拖,也可以是在预览窗
口内拖。如果你的鼠标有滚动轮,也可
以通过拨动滚动轮来放大或者缩小电
路图的。
元器件的编辑 我们在设计电路
图的时候 ,要不断地调整元器件的位置
和朝向以及改变元器件的属性。下面笔
者把这些操作简单介绍一下。
★选中元器件。用鼠标指向元器件
并点击右键可以选中该元器件。该操作
选中元器件并使其高亮显示,然后可以
进行编辑。选中元器件时该元器件上的
所有连线同时被选中。要选中一组元器
件,可以通过依次在每个元器件右击选
中每个元器件的方式。也可以通过右键
拖出一个选择框的方式,但只有完全位
于选择框内的元器件才可以被选中。在
空白处点击鼠标右键可以取消所有元
器件的选择。
★删除元器件。用鼠标指向选中的
元器件并点击右键可以删除该元器件。
同时删除该元器件的所有连线。
★拖动元器件。用鼠标指向选中的
元器件并用左键可以拖动该元器件。该
方式不仅对整个元器件有效,而且对元
器件中单独的标签也有效。如果Wire
Auto Router功能被使能的话。被拖动
元器件上所有的连线将会重新排布。这
将花费一定的时间(1O秒左右 ),尤其
在元器件有很多连线的情况下,这时鼠
标指针将显示为一个沙漏。如果你误拖
动一个元器件,所有的连线都变成了一
团糟,你可以使用 Undo命令撤消操作
恢复原来的状态。
★拖动元器件的标签。许多类型的
元器件有一个或多个属性标签附着。例
如,每个元件有一个 “reference”标签和
一 个 “value”标签。可以很容易地移动
这些标签使你的电路图看起来更美观。
移动标签的步骤如下:首先点击右键选
中元器件,然后用鼠标指向标签,按下鼠
标左键。一直按着左键就可以拖动标签
到你需要的位置,释放鼠标即可。
★调整元器件的朝向。许多类型的
对象可以调整朝向为O,90,270,360
或通过X轴 Y轴镜象。当该类型对象被
选中后,“旋转工具按钮”图标会从蓝色
变为红色,然后就可以来改变对象的朝
向。调整对象朝向的步骤是:首先点击右
键选中对象,然后根据你的要求用鼠标
左键点击旋转工具的四个按钮。毫无疑
问当旋转工具按钮图标是红色时,操作
它们将会改变某个对象,即便你当前没
有看到它,实际上,这种颜色的指示在你
想对将要放置的新对象操作时是格外有
用的。当图标是红色时,首先取消对象的
选择,此时图标会变成蓝色,说明现在可
以“安全”调整新对象了。
★编辑元器件的属性。元器件一般
具有图形或文本属性,这些属性可以通
过一个对话框进行编辑。编辑单个对象
的步骤是:先鼠标右键点击选中元器
件,然后用鼠标左键点击元器件,此时
出现属性编辑对话框。也可以点击工具
箱的 按钮,再点击元器件。图 6是
电容的编辑对话框,这里你可以改变电
容的标号和它的电容值以及是否把这
些东西隐藏(默认的是显示 )等。
画线 你一定发现没有画线的图标
按钮吧l这是因为 ISIS的智能化足以
在你想要画线的时候进行自动检测,这
电子制作2。。5年 第 1期 41 f
维普资讯 http://www.cqvip.com
就省去了选择画线模式的麻烦。
★在两个对象问连线。鼠标的箭
头靠近一个元器件的连接点,这个时候
会跟着鼠标的箭头出现一个 “×”号,
鼠标左键点击元器件的连接点,移动鼠
标(不需要一直按着左键的 ),这个时
候就出现了粉红色的连接线。如果你想
让 ISIS自动定出走线路径,只需左击
另一个连接点。另一方面,如果你想自
己决定走线路径,只需在想要拐点处点
击鼠标左键即可。注意,一个连接点可
以精确的连到一根线。在元件和终端的
管脚末端都有连接点。一个圆点从中心
出发有四个连接点,可以连四根线。由
于一般都希望能连接到现有的线上 ,
ISIS也将线视作连续的连接点。此外,
一 个连接点意味着三根线汇于一点 ,
ISIS提供了一个圆节点,避免由于错漏
点而引起的混乱。在此过程的任何一个
阶段.你都可以按ESC或者点击鼠标
的右键来放弃画线。
★线路自动路径器。线路自动路径
器 (英 文是 Wire Auto Router简 称
WAR)为你省去了必须标明每根线具
体路径的麻烦。该功能默认是打开的。
如果你只是在两个连接点左击,WAR
将选择一个合适的线径。但如果你点
了一个连接点,然后点一个或几个非连
接点的位置,ISIS将认为你在手工定线
的路径,将会让你点击线的路径的每个
角。路径是通过左击另一个连接点来完
成的。WAR可通过使用工具菜单里的
WAR命令按钮器 来关闭,也可以在
菜单栏的Tools找到这个图标的。这个
功能在你想在两个连接点间直接定出
对角线时是很有用的。
★画总线。利用总线方式可以节省
我们画线的时间,并且画出的电路图简
洁、美观、清晰。点击工具箱的总线按钮
,即可在编辑窗口画总线。注意,画
的时候是粉红色的线,点击右键退出画
线状态,此时粉红色的线变成了较粗的
蓝色的线。接着我们点击工具箱的蠢
按钮画总线的分支线用来连接总线和
元器件的管脚。我们还需要给分支线起
个名字,笔者称为总线标号。右键点击
分支线选中它,接着左键点击选中的分
支线就会出现分支线编辑对话框(Edit
Wire Labe1)如 图 7所示。我们在
Label标签下的 String右边填上起的
总线标号的符号。
三、程序设计
在这里笔者根据网上平凡老师
(http://www.mcustudio.com)的程序
改编了一个简单的程序,功能如下:按
下按键K1时,八个发光二极管从LED1
到 LED8开始轮流发光,有向下流动的
效果。当按下按键 K2时发光二极管停
止发光。在二极管流动发光的情况下按
下按键 K3。发光二极管会向下流动;按
下按键 K4发光二极管将向上流动。程
序主要有按键检测子程序、按键处理子
程序、流动发光子程序等组成。
程序清单
:定义几个变量。
UpDown BIT 00H;I-下行标志。
StartEnd BIT 01 H:起动及停止标志。
LAMPCODE EQU 21 H :存放流动
的数据代码。
:程序开始。
0RG 0000H
AJMP MAlN
ORG 3OH
:主程序。
MAIN:
MOV SP.#5FH
MOV P1.#OFFH
CLRUpDown:启动时处于向上的状态。
CLRStartEnd :启动时处于停止状态。
MOV LAMPCODE.#0FEH :单灯
流动的代码。
LOOP:
ACALL KEY:调用键盘程序。
JNB F0.LNEXT;~I3果无键按下,则继续,
ACALL KEYPROC :否则调用键盘处
理程序。
LNEXT:ACALL LAMP;调用灯显示程
序。
AJMP LOOP I反复循环,主程序到
此结束。
:延时程序 键盘处理中调用。
DELAY:MOV R7.#1 00
D1:MOV R6.#100
DJNZ R6。$
DJNZ R7.D1
RET
:键盘处理程序。
KEYPROC:
MOV A.B :从 B寄存器中获取键值。
JB ACC.2,KeyStart:
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
键的代码,某,
JB ACC.3.KeyOver:位被按下.则该
位为 1。
JB ACC.4,KeyUp
JB ACC.5.KeyDown
AJMP KEY—RET
KeyStart:SETB StartEnd:第一个键
按下后的处理。
AJMP KEY_RET
KeyOver:CLR StartEnd:第二个键按
下后的处理。
AJMP KEY RET
KeyUp:SETB UpDown:第三个键按下
后的处理。
AJMP KEY
—
RET
KeyDown:CLR UpDown:第四个键
按下后的处理。
KEY
—
R:ET:
RET
:按键检测程序。
KEY:
CLRF0 :清 F0,表示无键按下。
ORLP3.#001111OOB :将 P3口的接有
键的四位置 1。
MOV A.P3 :取 P3的值。
ORLA.#11000011B:将其余4位置 1。
CPLA :取反。
JZ K RET;~n果为0则一定无键按下,
CALL DELAY :否则延时去键抖。
ORLP3.#001 1 1 100B ;-F面的程序目
的是再次。
42 电子制作2o口I5年 第 1期
维普资讯 http://www.cqvip.com
~ 一
一 巷繁罄日 ectronics EDA&Vi
rtuaI Instruments IY电子葺隹
口黄培根 奚慧平 王 科
Protel PCB 99SE手工快速绘制电路板技术
众所周知,Protel 99 SE是一款功 制电路板;它除了能绘制简单的电路板 薄的教材、繁冗的章节困惑。如果是E
能非常强大的电路设计与制板软件,除 之外,也能绘制非常复杂的电路板;它 学的话,遇到问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
无人请教,看完一席
了能绘制出非常理想的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
电路图外, 除了能绘制双面电路板之外,还能绘制 厚厚的教材,仍然是一头雾水,无从藿
它还有将绘制的电路图转换成印刷电 多达十几层的电路板。正是它的功能如 手。几经失败,有的人就打退堂鼓了。
路板的功能,这就是 Protel PCB技术。 此强大,也就决定了学、用起来不是那 其是在业余条件下 。手工绘制好简单
同样,Protel PCB技术先进、功能强大、 么容易,它有许多严谨的程序步骤要执 PCB图纸后,如何将它转印到敷铜杨
设计严密。它除了能进行手工、半自动 行,它有许多约定的设计规则要遵守。 上,经济实惠地亲手制做出精美的电蹉
布线绘制电路板之外,也能自动布线绘 所以对一个初学者来说,往往会被它不 板 ,多年来一直困扰着我们。Prote
一
。 _ 鑫 § } e 警 §§ § § 一 一 一 ⋯ i一 ‰ 寸
一 一 - # ∞ :《 |:lsl *#* 箍 《蒋麓 |i 0 麟
MOV A.P3:确认按键是否按下。 示.返回。 明 ),按 F5或者点击工具栏的 蠢
ORLA.#1 100001 1 B :向上流动 钮 。全速运行,这个时候 ISIS的开始运
CPLA LampStart: 行,你会发现在模拟调试工具条的右=i2
JZ K
_ RET:有键按下?在此设置断点! JB UpDown.LAMPUP :如果 有程序运行的时间提示。点击原理图
MOV B,A:确实有键按下,将键值存 UpDown=1.则向上流动。 辑区的 K1按键,模拟暂停,此时在 Ke
入 B中。 MOV A:实际就是左移位而已。 里的程序光标停在刚才我们设置的由
SETB F0 :设置有键按下的标志。 MOV LAMPCODE.A 点上。再按 F5或者点击工具栏的
:以下的代码是可以被注释掉的,如果 MOV P1,A:点亮发光二极管,在此 钮,全速运行 ,此时发现在 八1
去掉注释,就具有判断键是否释放的功 设置断点! 发光二极管已经开始流动了。你可
能,否则没有。 LCALL D500MS 再点击其它的按键 ,试试有没有达
K
_
RET::ORL P3.#00111100B : AJMP LAMPRET 我们设计的目的?为了看清楚发光二
此处循环等待键的释放。 :向下流动。 极管是怎么轮流发光的 ,你可 以
:MOVA,P3 LAMPUP: MOV P1,A语句上设置断点 ,设置女j
:ORLA.#1 100001 1 B MOV A.LAMPCODE 以后,就可以反复点击全速运行的}j
:CPL A RR A :向下流动实际就是右移。 钮,这个时候 就是每按一次发
;JZ K
_
RET1 :读取的数据取 MOV L MPCODE.A 二极管就轮流点亮一个了。在两个萄
反后为0说明键释放了。 MOV P1,A :点亮发光二极管, 件结合调试的时候,我们把 的辱
;AJMP K
—
RET 在此设置断点! 面调得小一点,让它在 界面的
:K_RET1:CALL DELAY :消除 LCALL D500MS 面,露出 界面 的八个发光二枥
后沿抖动。 LAMPRET: 管,这样我们在 里调试 ,马上
RET RET 就看到结果了。笔者调试的情惩
:流水灯的延迟时间。 END :程序结束。 如图 8所示。
D500MS: 四、Keil与 Proteus的结合调
MOV R7.#255 试 =.: :‘= 罩=.= 1 2 ■ ⋯⋯~ ■
e ‘e
、
.
j D51: MOV R6.#255 首先请按照笔者在今年 《电子制
:
’ 一I DJNZ R6.$ 作 》1o期文章对两个软件进行设置。
DJNZ R7,D51 启动这两个软件,在ISIS里要打开刚 j :一 一 一⋯ RET 才我们设计好的电路。在Keil建立项 }
:点亮LED。 目并编译上面的程序,编译通过后,按 0 : . :: ————1· 一 ⋯ 一
LAMP: ⋯ +F5苛 砉 占 ,---N,KeiI的调 请 辖 ⋯ , _ 自
V ⋯ ⋯ 目 ,¨ 、 ⋯ J 1 S茹幕鼙 J^
JB StartEnd.LampStart:如果 钮,进入模拟调试环境,此时 ISIS的模 笔者设计好的 Keil与 Proteus
StartEnd--1.则启动。 拟调试工具条的运行按钮由黑色变为 原文件可以在本刊网站下载。在写此
MOV P1.#0FFH 绿色 了。在 按键检测 子程序 的 JZ 的过程中,参考了网上的部分资源,
AJMP LAMPRET :否则关闭所有显 K—RET语句设置断点 (程序注释有说 此向原作者表示感谢! ..
电子翻作 2。o5年 第 1期 43 l
维普资讯 http://www.cqvip.com