单片机c语音自定义标志位用法Bit.docVIP

  • 12
  • 0
  • 约5.79千字
  • 约 10页
  • 2017-06-09 发布于北京
  • 举报
单片机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)

1亿VIP精品文档

相关文档