单片机仿真实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仿真实验二
1、实验目的
通过本次仿真实验,掌握数码管输出显示的硬件和接口软件的设计,掌握单片机按键扫描的使用
熟悉使用porteus仿真软件的使用
2.实验内容
如图1所示:在P0端口上接一个7段数码管,在P2.5引脚连接一个按钮,无按钮按下时,使数码管显示字符“P”,有按钮按下时,数码管数码管从“0”开始显示,每隔1s加1。加至“F”后,重新显示初态“P”
图1
3、实验步骤
(1)硬件电路设计
A:从proteus库中选取元器件:单片机AT89C51、磁片电容CAP、点解电容CAP-ELEC,晶振CRYSTAL、电阻RES、8排阻RX8,带公共端8排阻RESPACK-8、数码管
7SEG-COM-AN-GRN,按钮BUTTON
B:放置元器件,放置电源和地、连线、设置元器件属性、电气检测
注意,P0口采用的是总线连线法,首先选择总线按钮,然后绘制总线,再下来将电线与总线连接,最后进行电线标注。
(2)软件设计
A.设计程序流程图
B:参考程序(参考汇编源程序)
C、生成目标代码
汇编源程序
ORG 0
MAIN: MOV P0,#8CH
MOV P2,#0FFH
NOKEY: MOV A,P2
CPL A
JZ NOKEY
MOV 30H,P2
ACALL DEL10
MOV A,P2
CJNE A,30H,NOKEY
ACALL DISP0_F
AJMP MAIN
DISP0_F: MOV A,#0
LOOP: PUSH ACC
ACALL SEG7
MOV P0,A
POP ACC
ACALL DEL1S
INC A
CJNE A,#16,LOOP
RET
DEL1S: MOV R6,#100
D10: ACALL DEL10
DJNZ R6,D10
RET
DEL10: MOV R5,#10
D1MS: MOV R4,#250
DL: NOP
NOP
DJNZ R4,DL
DJNZ R5,D1MS
RET
SEG7: INC A
MOVC A,@A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H,80H
DB 90H,88H,83H,0C6H,0A1H,86H,8EH
END
(3)仿真
A、加载目标代码文件,设置时钟频率
选中编辑区中的单片机右键单击打开属性窗口设置好时钟频率和目标代码文件
B、单击仿真按钮,仿真运行程序,观察是否能实现控制要求
4、实验分析
(1)硬件电路中为什么P0口要加上上拉电阻
(2)软件中,数码管如何才能显示其需显示的数据,如何消除按钮抖动的影响