版块
论坛
喜欢
话题
应用
搜索
登录
注册
lzl的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=8628
Keil c中如何保存p1、p0口状态
我要在中断服务程序中改变端口状态,推出中断时还原,Keil c中如何保存p1、p0口状态?
回复
(
10
)
2005-02-26 09:50
来自版块 -
Keil C 使用
◆
◆
表情
告诉我的粉丝
提 交
cnwarror
:
用 sfr 可以定义整个端口,如 sfr P0 =0x80; //假设PO对应寄存器的地址是0x80 那使用的时候就可以直接用 PO 来操作整个IO口了。 sbit就是定义IO口的一个位。如 sbit PO_0=0x80; sbit PO_1=0x81; ………… ...
(2008-03-12 14:18)
回复
天冰天降
:
在51这种单片机的程序设计中,最好是设置中断标志字,表明进入过中断,而后在主服务程序中做相应的处理,进入相应的服务程序,这样的好处是节省堆栈占用,因为51系列单片机的内存太少了,容易产生溢出,堆栈溢出可是不可预测的,很难调试出来的。
(2007-08-06 14:50)
回复
mycpu
:
看看REG51.H或者REGX51.H头文件是怎么定义的就明白了. Keil/c51/inc/下有各种微处理器的头文件,直接拿来看就行了。
(2007-07-13 08:25)
回复
xuyaosong
:
楼上讲的很详细,谢谢,学习了
(2007-06-18 15:32)
回复
computer00
:
楼上正解. 51的IO口比较特殊,它是准双向IO口. 只有读-修改-写指令才能读到输出寄存器的值,而直接读端口,则读到的是IO口电平值,如果你的外部电路能够改变IO口状态的话,那么实际上读回的值与你写入到端口的值是不一样的。当然,如果你确保你的外围硬件不会影响IO口的电平,那么可...
(2007-03-28 21:35)
回复
zmwk
:
这种保存方法有问题, 比如实际上P1全1,但由于外部下拉电阻,保存时可能会读成0,再恢复时就不对了。 最好保存控制字,用控制字刷新端口。
(2005-02-28 15:24)
回复
crying_p
:
详细一点,P0口如何表示?头文件中都是以位定义的啊? 看来你对KEIL还不是很熟悉,建议买本书看看,推荐一本C上手的比较快的单片机书:51系列单片机及C51程序设计,科学出版社出版,王建校,杨建国等编著,26元,这本书性价比还可以,适合新手上路,另外不知道你把什么头文件包含进...
(2005-02-28 10:21)
回复
lbcat
:
用 sfr 可以定义整个端口,如 sfr P0 =0x80; //假设PO对应寄存器的地址是0x80 那使用的时候就可以直接用 PO 来操作整个IO口了。 sbit就是定义IO口的一个位。如 sbit PO_0=0x80; sbit PO_1=...
(2005-02-26 14:45)
回复
lzl
:
详细一点,P0口如何表示?头文件中都是以位定义的啊?
(2005-02-26 11:30)
回复
crying_p
:
你可以在中断程序中设置两个unsigned char 的变量保存这两个断口的状态,出中断的时候还原就可以了呀 跟汇编差不多
(2005-02-26 11:19)
回复
lzl
加关注
写私信
0
关注
1
粉丝
649
帖子
返回顶部