找回密码
 立即注册
查看: 2005|回复: 7

请教PSW寄存器中的F0和F1的作用

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2026-05-09 08:45:07

12

主题

317

回帖

2910

积分

金牌会员

积分
2910
发表于 2023-6-9 10:25:09 | 显示全部楼层 |阅读模式
1.请教给老师,下面代码中红色行语句的作用?删掉可以吗?



//========================================================================
// 函数: void EEPROM_Trig(void)
// 描述: 触发EEPROM操作.
// 参数: none.
// 返回: none.
// 版本: V1.0, 2014-6-30
//========================================================================
void EEPROM_Trig(void)
{
    F0 = EA;    //保存全局中断
    EA = 0;     //禁止中断, 避免触发命令无效
    IAP_TRIG = 0x5A;
    IAP_TRIG = 0xA5;                    //先送5AH,再送A5H到IAP触发寄存器,每次都需要如此
                                        //送完A5H后,IAP命令立即被触发启动
                                        //CPU等待IAP完成后,才会继续执行程序。
    _nop_();
    _nop_();
    EA = F0;    //恢复全局中断
}



2. 另外PSW寄存器中的F0和F1的作用?
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:139
  • 最近打卡:2026-04-24 09:56:10

49

主题

1351

回帖

7839

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
7839
QQ
发表于 2023-6-9 10:34:15 | 显示全部楼层
void EEPROM_Trig(void)
{
    F0 = EA;    //保存全局中断
    EA = 0;     //禁止中断, 避免触发命令无效
    IAP_TRIG = 0x5A;
    IAP_TRIG = 0xA5;                    //先送5AH,再送A5H到IAP触发寄存器,每次都需要如此
                                        //送完A5H后,IAP命令立即被触发启动
                                        //CPU等待IAP完成后,才会继续执行程序。
    _nop_();
    _nop_();
    EA = F0;    //恢复全局中断
}


这里其实本质就是广义上的临界值保护,防止在操作E2的时候一个中断导致数据异常,这里因为不知道初始状态的EA到底是打开还是关闭的,所以用了个F0保存原始状态,最后在写入。建议这个可以加上。





回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:683
  • 最近打卡:2026-05-09 08:45:07

12

主题

317

回帖

2910

积分

金牌会员

积分
2910
发表于 2024-2-1 08:58:21 | 显示全部楼层
电子DI*** 发表于 2023-6-9 10:34
void EEPROM_Trig(void)
{
    F0 = EA;    //保存全局中断

谢谢?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:823
  • 最近打卡:2026-05-09 09:54:38
已绑定手机

16

主题

1413

回帖

5249

积分

论坛元老

积分
5249
发表于 2024-2-6 11:19:54 | 显示全部楼层
2. 另外PSW寄存器中的F0和F1的作用?
STC单片机的头文件中均有定义F0/F1两个位,可以直接给用户使用。标准51单片机只定义了F0位。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:403
  • 最近打卡:2026-05-10 15:24:05

849

主题

1万

回帖

2万

积分

管理员

积分
23234
发表于 2024-2-6 11:35:08 | 显示全部楼层
多余的可以利用的位,不过没必要资源紧张到用PWM里面的多余位
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:229
  • 最近打卡:2026-05-10 08:17:47
已绑定手机

5

主题

131

回帖

1089

积分

金牌会员

积分
1089
发表于 2025-10-28 16:05:02 | 显示全部楼层
请问这个里面也是F0当一个标志位使用吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:719
  • 最近打卡:2026-05-10 00:03:07
已绑定手机

160

主题

1942

回帖

2150

积分

金牌会员

积分
2150
发表于 2025-10-28 21:40:54 | 显示全部楼层
baocon*** 发表于 2025-10-28 16:05
请问这个里面也是F0当一个标志位使用吗?

是的,F0和F1都可以当作标志位来用, 但是没必要
那么大的空间,不差这两个bit
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:229
  • 最近打卡:2026-05-10 08:17:47
已绑定手机

5

主题

131

回帖

1089

积分

金牌会员

积分
1089
发表于 2025-10-28 22:52:13 | 显示全部楼层
vb2*** 发表于 2025-10-28 21:40
是的,F0和F1都可以当作标志位来用, 但是没必要
那么大的空间,不差这两个bit ...

好的 谢谢
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-11 03:20 , Processed in 0.128443 second(s), 83 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表