找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

初学者用proteus仿真遇到的问题

[复制链接]
admin 发表于 2012-9-2 19:38:12 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
大家好 我今年大三 学期末有单片机的课设 在实验室的其中一个实验是让6位7段 数码管显示123456
我做的不太成功 想回家用porteus重新做一遍,遇到了些问题 我认为很初级 估计各位很快就能解答出来。

1.我选了P87C51RC+作为单片机的芯片来仿真,在设计图上放一个芯片,然后什么都不连,直接play,结果是p1,p2,p3的引脚都呈现高电平(就是引脚上方有红色小方块),但是作为数据总线的p0口显示的是灰色的小方块,我上网查了一下,表示的是高阻态。于是我在keil里写了MOV P0,#00H烧录到单片机中 但还是没有反应,无论我做什么,都呈现高阻态,又上网查了一下,似乎要加个上拉电阻,可我在实验室用试验箱做的时候没有这么复杂,怎么回事。

2.刚开始,我没有想一步成功,就想让8255的A口输出我想要的数值,目的是掌握51与8255相结合的用法,因为有上面的那个问题,于是我没有用51的p0口接8255的D0-D7,而是用的p2口。
接着我直接定义了a0 a1接到51上引脚的电平,都是低电平,目的是指向A口,"RD非"接1,“WD非”接0,低电平接CS非。程序就是
mov p3,#00h
mov dptr,#7f03h
mov a,#80h
movx @dptr,a
mov dptr,#7f00h
mov a,#07h
movx @dptr,a
end
结果是a口输出的是7f00h的高位"7f",我把"7f"改成什么就输出什么。完全没有体现我的控制字,和A口地址的作用。这就是我最大的一个困惑:单片机如何用ABC口地址和控制字来控制A0A1以及输出?
A0A1。而且我觉得我的接线有问题。



写得有点长,这些问题困扰了我好几天了,望各位解惑,谢谢!

附同学做成功的代码:

复制代码
  1. ORG 0000H
  2. LJMP MAIN
  3. ORG 0030H
  4. MAIN:MOV R0,#7AH
  5. MOV R6,#06H
  6. MOV A,#01H
  7. LOOP:MOV @R0,A
  8. INC A
  9. INC R0
  10. DJNZ R6,LOOP
  11. A1:LCALL DIR6
  12. NOP
  13. SJMP A1
  14. DIR6:MOV R0,#7AH
  15. MOV R3,#0FEH
  16. MOV A,R3
  17. DIR1:MOV DPTR,#7F00H
  18. MOVX @DPTR,A
  19. INC DPTR
  20. MOV A,@R0
  21. ADD A,#0DH
  22. MOVC A,@A+PC
  23. MOVX @DPTR,A
  24. ACALL DELAY
  25. INC R0
  26. MOV A,R3
  27. JNB ACC.5,DIR2
  28. RL A
  29. MOV R3,A
  30. AJMP DIR1
  31. DIR2:RET
  32. SEGP:DB 3FH,06H,5BH,4FH,66H,7DH,07H,7FH,6FH,17H,7CH
  33. DELAY:MOV R5,#02H
  34. DELAY1:MOV R4,#0FFH
  35. DELAY2:
  36. DJNZ R4,DELAY2
  37. DJNZ R5,DELAY1
  38. RET
  39. END MAIN
复制代码

5_89721_491a554daf05c7e.png
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 07:46 , Processed in 0.060462 second(s), 13 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表