在单片机的C语言程序设计中,如何使用SFR和可寻址位

发布网友 发布时间:2022-04-23 19:50

我来回答

2个回答

热心网友 时间:2023-09-26 01:43

你好!
在c语言中无法对SFR(特殊寄存器),比如程序状态寄存器(PSW)等寄存器进行操作,也就不能判断它们的标志位了。比如判断Z标志位,C标志位等操作。对于要操作这类寄存器。我们唯一的办法只能用汇编语言。或者在C语言中嵌入汇编语言来解决。所以我们写单片机程序千万不能放弃汇编语言。某些底层的硬件操作只能靠汇编语言来完成。
希望对你有所帮助,望采纳。

热心网友 时间:2023-09-26 01:44

在C语言程序中,先包含一个“头文件”:
#include
以后就可以对SFR进行读写操作了。
下面的C语言语句,都是对SFR的操作:
TMOD
=
0x11;
//Timer0,
Timer1工作于16位定时方式
TH0
=
0xdc;
TL0
=
0x00;
//Timer0置10ms定时初值
TH1
=
0xff;
TL1
=
0x00;
//Timer1置初值
IP
=
0x04;
//设置INT0为中断最高优先级
IE
=
0x8f;
//CPU开中断,INT0,INT1,Timer0,Timer1开中断
下面的C语言语句,是对可寻址位的操作:
TR0
=
1;
//Timer0启动
TR1
=
0;
IT0
=
0;
IT1
=
0;
//外部中断都设为电平触发方式

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com