- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 单片彩灯控制器的电路设计与仿真
实验一 单片机彩灯控制器的电路设计与仿真
一、实验要求
仿照图1-1在Proteus中绘制一个基于89C51的流水灯控制器电路,开关可以控制流动的方向,拨码开关可以调整流动的快慢。
二、实验目的
(1)学会使用Proteus ISIS绘制硬件电路图,掌握加载程序和仿真运行等基本操作。
(2)理解通过程序控制单片机的输人输出。
(3)掌握Keil uVision2软件的启动方法和使用的基本步骤。
(4)了解编译过程中产生的不同类型的文件及其作用。
(5)掌握查看和修改MCS-51单片机内部资源的操作方法。
(6)学习Keil uVision2常用热键的使用。
三、实验步骤
1.在Proteus ISIS中设计硬件电路
(1)创建新的设计。建议以文件名“1-1”保存在对应的文件夹下,如“D:\MCU\CH1
\EX1-1下。
(2)利用关键字或分类检索的方法将电路原理图中需要的元器件挑选至对象选择列表,主要元件可参照表1-1,然后依次选中在设计区单击,放入电路图。
(3)从模型选择工具栏的终端(Terminal)模型中将地线端子(Ground)和电源端子(Power)
放置到电路中。
(4)连接电路原理图,可参考图1-1单片机彩灯控制电路。
表1-1 单片机彩灯控制器元器件清单
元器件 类别/子类别 关键字 单片机芯片AT89C51 Micoprocessor IC/8051 Family 89C51 红、黄、绿、蓝发光二极管LED
Optoelectrics LED—RED、YELLOW、GREEN、BLUE 10k电阻 Resistor 10K 100电阻 100R 22pF和10nF电容 Capacitor 22pF和10nF 单刀单掷开关 Switches Relay SW—SPST 按钮 Button 8位拨码开关 DIPSWC_8 晶振 Miscellaneous CRYSTAL
图1-1单片机彩灯控制电路
2.编辑源程序,添加源程序并构造目标程序
若有现成的目标程序,此步可跳过。
第一种方法(无程序调试软件Keil uVision2时使用):
(1)用记事本编辑以下源程序(注意,所有标点均为英文符号,不能用中文标点,分号及其后的注释可以不写,用文件名1-1.asm): (无程序调试软件Keil uVision2时使用):
(2)执行“Source”菜单下的“Add”命令添加程序“1-1.asm”,执行“Build All”命令构造目标程序“1-1.hex”。
(3)设置单片机属性。双击“AT89C51”,在属性中设置“Program File”为目标程序“1-1.hex”。
(4)仿真运行。单击仿真工具,启动电路仿真,并用鼠标操作电路中的开关,观察程序运行结果,初步认识单片机是如何工作的。
第二种方法(有程序调试软件Keil uVision2时使用):
(1)启动Keil uVision2软件,创建新工程:P1-1,CPU选择Atmel 89C51或89C52。
(2)对工程的属性进行设置:目标属性中选择“生成HEX文件”。
(3)编写源程序,以asm为扩展名保存在工程文件夹中。
(4)将源程序加入源程序组:鼠标右键单击源程序组图标,加入文件组。
(5) 构造工程:使用热键F7或构造工具进行构造。期间可能需要修改源程序,直到没有语法错误为止。
(6)调试:进入调试状态,打开相应窗口,运行程序,观察云行结果。
(7)启动Proteus ISIS,打开电路图“1-1.DSN”,单片机属性中选择目标文件P1-1.HEX,然后进行仿真运行,操作电路中的开关,观察云行结果。
;流水灯控制程序
MAIN:
MOV SP,#5FH
MOV A,#0FEH
LOOP:
MOV P0,A
MOV R7,P1
CALL DELAY ;调用延时子程序
JB P3.7,LEFT;判断P3.7的状态,若为低电平,顺序执行程序,若为高电平,跳转到LEFT执行程序
RR A ;右移1位
SJMP LOOP
LEFT:
RL A ;左移1位
SJMP LOOP
DELAY: MOV R6,#0;延时子程序,R7值的大小控制延时时间的长短
L1: NOP
NOP
DJNZ R6,L1
DJNZ R7,DELAY
RET
END
思考:1.两个灯亮,流动,程序该如何改动?
2.流动的方式为:第一个灯亮,第三个灯亮,第五个灯亮,第7个灯亮,再第一个灯亮……程序该如何改动?
实验二 查表程序设计—通过LED显示数字
实验要求
通过拨码开关16进制数0—F,利用LED数码管显示该数字。包括硬件电路和程序设计。
二、实验目的
理解8段LED数码管的显示原理和LE
文档评论(0)