实验二 开关控制LED数码管 李英阁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本输入输出试验
开关控制LED
一、实验目的
1.单片机AT89C51读入4位开关的输入状态(0~F),并将 其输出到数码管显示。 2.用proteus 设计、仿真基于AT89C51单片机的开关控制 LED数码管实验。 3.掌握I/O口的控制方法。
二、PROTEUS电路设计
开关控制数码管电路原理图如图2-1所示。整个设计都在ISIS平 台中进行。
;/**************************子程序块************************************ ;功能:将数据转换成段码 ,并查询对应按键对应数值 ,然后通过查 表方式用数码管显示 ;********************************************************************/ 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 All” , 在”Program File ”栏中添加上面编译好的目标代码文 件DZC32.HEX。若编译失败,对程序修改调试至编译成功。
四.POTEUS仿真
1.加载目标代码文件
打开单片机属性窗口,在”Program File” 栏中添 加上面编译好的目标代码文件DZC32.HEX;在”Clock Frequency” 栏中输入晶振频率12MHZ。注意:时钟发生 器中的晶振要设置频率,单片机的晶振频率也要设置。
六、思考题
1. 如何连接使用两个数码管显示? 2.RN2也为200时,为什么没有数码管没有显示?
图2-1 开关控制数码管电路原理图
1.从PROTEUS库中选取元器件
①AT89C51:单片机。 ②RES、RX8:电阻(resistor)、8排阻。 ③7SEG-COM-AN-GRN:带公共端的共阳7段绿色数码管(从 optoelectronics 光电子器件里选择)。 ④SW-SPST:带所存的单刀单掷开关,开关的合或断可单击 向下或向上的知识箭头实现。 ⑤CAP、CAP-ELEC:电容,电解电容。 ⑥CRYSTAL:晶振。
图2-5 动态电路配置、显示引脚逻辑状态
图2-2 共阳数码管引脚布局及测试
注释:
共阳极数码管为低电平输入时对应的段亮,且读数顺序为 1gfedcba,其引脚布局及测试如图2-2、2-3所示。在实例中, 当引脚a、b、c、d、e、f为低电平时,对应段亮,引脚g为高 电平则不亮。 此时 p2=11110000 与后 A=0000 0000 调用子程序后 A=0000 0001 P1=1100 0000 即C0 显示数字0
2.放置元器件、放置电源和地线、元器件属性 设置、电气检测
所有操作都是在ISIS中进行,其设计与实验一相似, 故不详述。 图2-1中的元器件RN1、RN2是8电阻的排阻其中每个电 阻的阻值都设置为200,如图2-4所示:
图2-4 RN1属 性设置
三.源程序设计、生成目标代码文件
1.流程图
本例源程序流程图如图2-5所示。设 P2 口为开关状态 输入口,P1口为输出显示口。

源自文库


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
设 P2 口
为输入口
从P2口读入低四位数据
把数据转换成段码
段码送P1口显示
2.源程序设计
通过菜单”Source” / ”Add/Remove Source File…”,新建源程序文 件:DZC32.ASM。 通过菜单”Source” / DZC32.ASM 打开PROTEUS提供的文本 编辑器SRCEDIT,在其中编辑如下源程序; ORG 0
2.仿真
单击按钮,启动仿真。运行片段如图2-2所示。开关 断开,输入引脚电平为高;开关闭合,输入引脚电平为低。 若要更明白地看到引脚的电平高、低状态,可以单击 菜单”Systm ”/”Set Animation Option„”,弹出如 图2-5所示对话框,选中显示引脚逻辑状态(图中有√的 项)。此时的仿真运行片段如图2-2 所示。

若debug要时查看寄存器或端口值 ,可以点击菜 单”Debug ”/ “Watch Window” ,弹出如图2-6所示的窗口, 添加要查看的寄存器的name即可。
图2-6 Watch Window
五、实验报告要求
1.实验原理分析,试验现象。 2.按思考题修改程序,修改程序后的调试结果;程序流程 图;源程序及注释。
相关文档
最新文档