- 19
- 0
- 约5.8千字
- 约 10页
- 2017-01-05 发布于北京
- 举报
[单片机c语音自定义标志位用法Bit
单片机C语言编程中“位”(bit)的保存方案
引言
在现有的教课书及相关文章中,都难得提到在单片机C语言编程中对于自定义“位”的状态进行保存的理念。
当单片机C语言编程中提及“位”的概念时,人们自然会想到状态字PSW中PSW.5的F0与PSW.1的F1两个用户通用标志位。这两个标志位均可参与布尔运算、“位”控操作,也可随状态字PSW一起保存。但是,往往会忽视这一点:在一些特定的情况下,如在C语言编程的中断服务程序中,对状态字PSW中PSW.5的F0与PSW.1的F1这两个用户标志位的操作可能是无效的。如:
void EX1_ISR() interrupt 2 {//外部中断1
static unsigned int tempaddr;//定义接收地址缓存
static unsigned int tempkey;//定义接收数据缓存
unsigned int timecnt;
timecnt=TH1*256+TL1;
TH1=0;
TL1=0;
TR1=1;//定时器1启动
F0=~F0;//取反F0
if(F0) {
tempaddr=tempaddr1;
}
else {
tempkey=tempkey1;
}
}
以上是一段单片机外部中断1的中断服务程序,乍看似乎没什么问题,仿真调试时也能通过“编辑
原创力文档

文档评论(0)