- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
试验二 开关控制LED数码管
实验项目名称:开关控制LED数码管
试验项目性质:普通
所属课程名称:
试验计划学时:2学时
一.试验目的
1.单片机AT89C51读入4位开关的输入状态(0~F),并将其输出到数码管显示。
2.用proteus 设计、仿真基于AT89C51单片机的开关控制LED数码管实验。
3.掌握I/O口的控制方法。
二.PROTEUS电路设计
开关控制数码管电路原理图如图2-1所示。整个设计都在ISIS平台中进行。
图2-1 开关控制数码管电路原理图
1.从PROTEUS库中选取元器件
①AT89C51:单片机。
②RES、RX8:电阻(resistor)、8排阻。
③7SEG-COM-AN-GRN:带公共端的共阳7段绿色数码管(从optoelectronics 光电子器件里选择)。共阳极数码管为低电平输入时对应的段亮,且读数顺序为1gfedcba,其引脚布局及测试如图2-2、2-3所示。在实例中,当引脚a、b、c、d、e、f为低电平时,对应段亮,引脚g为高电平则不亮。
图2-2 共阳数码管引脚布局及测试
注释:此时 p2 与后 A=0000 0000
调用子程序后 A=0000 0001
P1=1100 0000 即C0 显示数字0
图2-3共阳数码管引脚布局及测试
注释:此时 p2
与后 A=0000 0001
调用子程序后 A=0000 0010
P1=1111 1001 即F9 显示数字1
④SW-SPST:带所存的单刀单掷开关,开关的合或断可单击向下或向上的知识箭头实现。
⑤CAP、CAP-ELEC:电容,电解电容。
⑥CRYSTAL:晶振。
2.放置元器件、放置电源和地线、元器件属性设置、电气检测
所有操作都是在ISIS中进行,其设计与实验一相似,故不详述。
图2-1中的元器件RN1、RN2是8电阻的排阻。其中每个电阻的阻值都设置为200,如图2-4所示:
图2-4 RN1属性设置
三.源程序设计、生成目标代码文件
1.流程图
本例源程序流程图如图2-5所示。设P2口为开关状态输入口,P1口为输出显示口。
设P2口 为输入口从P2口读入低四位数据
设P2口 为输入口
从P2口读入低四位数据
把数据转换成段码
段码送P1口显示
2.源程序设计
通过菜单”Source” / ”Add/Remove Source File…”,新建源程序文件:DZC32.ASM。
通过菜单”Source” / DZC32.ASM 打开PROTEUS提供的文本编辑器SRCEDIT,在 其中编辑如下源程序;
ORG 0
ORG 30H
;/***********************开始主程序**********************************/
STAR: MOV P1,#0FFH ;//将p1口置1
ST1: MOV P2,#0FFH ;//将p2口置1
MOV A,P2 ;//读p2口数据到寄存器A
ANL A,#0FH ;//保留数据低4位,清高4位
ACALL SEG7 ;//段内调用子程序 SEG7
MOV P1,A ;//将A的值传给p1口
SJMP ST1 ;//短跳转到ST1,继续查询
SJMP STAR
;/**************************子程序块************************************
;功能:将数据转换成段码 ,并查询对应按键对应数值 ,然后通过查表方式用数码管显示
;********************************************************************/
SEG7: INC A ;//A中的值加1
MOVC A,@A+PC ;//将table中对应值送给A
RET
;/**************************子程序块************************************/
;/*数据段可以写在代码段内,也可以单独作为数据段放在代码段前 定义变量 */
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
程序编辑好后,单击按钮 存入文件DZC32.ASM 中。注意:汇编语言的注释符为分号 和c、c++不同。
3.生成目标代码文件
通过菜单”Source” / “Build
文档评论(0)