导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教,关于P口的读写一点疑惑

* 75895: 请教,关于P口的读写一点疑惑

   zhaonnnn 
zhaonnnn发表的帖子 

 请教,关于P口的读写一点疑惑
各位大虾好。
我是一名单片机初学者,因为有过几年用高级语言编程的经验.公司有一通信放大电路要用89C51控制,看上去也简单,就是根据P1口P0口的状态变化,通过P2口控制几个继电器的动作(比如电话挂机时P1.0为高电平,当摘机时P1.0变为低电平,此时,给P1.4一个低电平放开继电器K1,给P2.0一个高电平, 吸合继电器K2,诸如此类),于是欣然接受任务,设计了自以为精巧的算法,可实际一作,效果全然不对,晕死,差点被老板逼死.仔细看了看书,特在此向各位请教几个有关P口的问题.
1:书上说”向端口输出1时,若用一根口线去驱动一个晶体管的基极,在射极接地的情况下,晶体管导通,并把引脚上电平拉低到0.7V,此时若从引脚读数据,会把此数据误读为0,若从锁存器Q端读取则可得到正确的数据”,我在实际应用中也体会到这引脚变为0的过程.可要怎么作才是”从锁存器Q端读取”?
用什么指令? 应该不是mov c,p2.0这种吧.
书上说:”ANL p1, A 是(读-修改-写)指令,不读引脚而读锁存器的状态”,那 ANL A ,p1是不是的呢?这样才能在从A中 知道P1某引脚的当前状态吧
2:关于P口的输入,”P0,P1是准双向口,在作输入口使用时,要先对其进行写1操作”,是不是说我要先setb  P0.1后,.再mov c,P0.1才能读出引脚当前的信息?(我驱动P2口的继电器用的是setb P0.1和clr  P0.1指令,我再读引脚的值,会不会被影响?)
   
3: 对P口状态的计时: P1.1通常是高电平,当有电话振铃时,应为周期1秒低4秒高的若干个方波,应怎么计时并判断是否符合这个标准?----我是在定时中断里读当前P1.1脚的电平b_now,并与上一个中断周期的历史电平值b_last比较,若不相同就开始计时(数),(并将b_now=>  b_last),当出现另一个不相同的情况时,保存当前的计时值,并开始新的计时,可好象得不到正确结果,是不是在读引脚电平值时,为保险起见,每次读前都先写入1才好?

  疑惑比较多,总之一句话,就是怎样才是”从锁存器Q端读出P口的值“。旁观者清,敬请一言点醒梦中人,谢了


发表时间:2005年3月24日10:37:01

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  75909.[详细]回复
摘要:如果P口输出为低,是要先写1,在读才真确;如果输出为高,直接读就可以。......(68字)
- [guest][672次] 2005年3月24日

  75923.[详细][quote][b]以下是引用[i]guest在2005-3-24 12:25:02[/..
摘要:[quote][b]以下是引用[i]guest在2005-3-24 12:25:02[/i]的发言:[/b] 回复如果P口输出为低,是要先写1,在读才真确;如果输出为高,直接读就可以。 [/quote]&nbs......(190字)
- [zhaonnnn][841次] 2005年3月24日

[上一篇帖子]:[推荐]我想学ARM,大家帮我推荐几本书,出版社。谢谢!!![推荐]我想学ARM,大家帮我推荐几本书
[下一篇帖子]:关于RTL8019怎样用外部RAM的问题?关于RTL8019怎样用外部RAM的问题? 我在设