神农鼎 发表于 2023-9-26 19:19:51

17.4.6               新版比较器的多路复用应用(比较器+ADC输入通道)由于比较器的正极可以选择ADC的模拟输入通道,因此可以通过多路选择器和分时复用可实现多个比较器的应用。注意:当比较器正极选择ADC输入通道时,请务必要打开ADC_CONTR寄存器中的ADC电源控制位ADC_POWER和ADC通道选择位ADC_CHS C语言代码
//测试工作频率为11.0592MHz #include "stc8h.h"#include "intrins.h" void main(){         P_SW2 |= 0x80;                                                                            //使能访问XFR          P0M0 = 0x00;         P0M1 = 0x00;         P1M0 = 0x00;         P1M1 = 0x00;         P2M0 = 0x00;         P2M1 = 0x00;         P3M0 = 0x00;         P3M1 = 0x00;         P4M0 = 0x00;         P4M1 = 0x00;         P5M0 = 0x00;         P5M1 = 0x00;          P1M0 &= 0xfe;                                                                           //设置P1.0为输入口         P1M1 |= 0x01;         ADC_CONTR = 0x80;                                                               //使能ADC模块并选择P1.0为ADC输入脚          CMPEXCFG = 0x00;//       CMPEXCFG &= ~0x03;                                                         //P3.7为CMP+输入脚//       CMPEXCFG |= 0x01;                                                               //P5.0为CMP+输入脚//       CMPEXCFG |= 0x02;                                                                 //P5.1为CMP+输入脚         CMPEXCFG |= 0x03;                                                               //ADC输入脚为CMP+输入脚         CMPEXCFG &= ~0x04;                                                            //P3.6为CMP-输入脚//       CMPEXCFG |= 0x04;                                                               //内部1.19V参考电压为CMP-输入脚          CMPCR2 = 0x00;         CMPCR1 = 0x00;         CMPCR1 |= 0x02;                                                                        //使能比较器输出         CMPCR1 |= 0x80;                                                                        //使能比较器模块          while (1);}
汇编代码
;测试工作频率为11.0592MHz P_SW2                DATA                  0BAHCMPCR1            DATA                  0E6HCMPCR2            DATA                  0E7HADC_CONTR    DATA                  0BCH P1M1                  DATA                  091HP1M0                  DATA                  092HP0M1                  DATA                  093HP0M0                  DATA                  094HP2M1                  DATA                  095HP2M0                  DATA                  096HP3M1                  DATA                  0B1HP3M0                  DATA                  0B2HP4M1                  DATA                  0B3HP4M0                  DATA                  0B4HP5M1                  DATA                  0C9HP5M0                  DATA                  0CAH CMPEXCFG      XDATA               0FEAEH                             ORG                   0000H                            LJMP                  MAIN                             ORG                   0100HMAIN:                            MOV                   SP, #5FH                            ORL                  P_SW2,#80H                                  ;使能访问XFR                             MOV                   P0M0, #00H                            MOV                   P0M1, #00H                            MOV                   P1M0, #00H                            MOV                   P1M1, #00H                            MOV                   P2M0, #00H                            MOV                   P2M1, #00H                            MOV                   P3M0, #00H                            MOV                   P3M1, #00H                            MOV                   P4M0, #00H                            MOV                   P4M1, #00H                            MOV                   P5M0, #00H                            MOV                   P5M1, #00H                             ANL                  P1M0,#0FEH                                 ;设置P1.0为输入口                            ORL                  P1M1,#01H                            MOV                   ADC_CONTR,#80H                      ;使能ADC模块并选择P1.0为ADC输入脚                             MOV                   DPTR,# CMPEXCFG                            CLR                  A;                           ANL                  A,#NOT 03H                                  ; P3.7为CMP+输入脚;                           ORL                  A,#01H                                           ; P5.0为CMP+输入脚;                           ORL                  A,#02H                                           ; P5.1为CMP+输入脚                            ORL                  A,#03H                                           ;ADC输入脚为CMP+输入脚                            ANL                  A,#NOT 04H                                  ; P3.6为CMP-输入脚;                           ORL                  A,# 04H                                          ;内部1.19V参考信号源为CMP-输入脚                            MOVX                @DPTR,A                             MOV                   CMPCR2,#00H                            MOV                   CMPCR1,#00H                            ORL                  CMPCR1,#02H                              ;使能比较器输出                            ORL                  CMPCR1,#80H                              ;使能比较器模块 LOOP:                            JMP                  LOOP                             END

神农鼎 发表于 2023-9-26 19:25:21

17.4.7               比较器作外部掉电检测(掉电过程中应及时保存用户数据到EEPROM中)


上图中电阻R1和R2对稳压块7805的前端电压进行分压,分压后的电压作为比较器CMP+的外部输入与内部1.19V参考信号源进行比较。一般当交流电在220V时,稳压块7805前端的直流电压为11V,但当交流电压降到160V时,稳压块7805前端的直流电压为8.5V。当稳压块7805前端的直流电压低于或等于8.5V时,该前端输入的直流电压被电阻R1和R2分压到比较器正极输入端CMP+,CMP+端输入电压低于内部1.19V参考信号源,此时可产生比较器中断,这样在掉电检测时就有充足的时间将数据保存到EEPROM中。当稳压块7805前端的直流电压高于8.5V时,该前端输入的直流电压被电阻R1和R2分压到比较器正极输入端CMP+,CMP+端输入电压高于内部1.19V参考信号源,此时CPU可继续正常工作。内部1.19V参考信号源即为内部BandGap经过OP后的电压REFV(芯片在出厂时,内部参考信号源调整为1.19V)。具体的数值要通过读取内部1.19V参考信号源在内部RAM区或者Flash 程序存储器(ROM)区所占用的地址的值获得。对于STC8系列,内部1.19V参考信号源值在RAM和Flash 程序存储器(ROM)中的存储地址请参考 “存储器中的特殊参数”章节
要保证时间足够,就是调整外部电压偏低检测中断的提前量,如
1, 交流220V, 7805稳压电路前端输入是 11V;
2, 交流210V, 7805稳压电路前端输入是 10.5V;
3, 交流200V, 7805稳压电路前端输入是 10V;
4, 交流190V, 7805稳压电路前端输入是 9.5V;
5, 交流180V, 7805稳压电路前端输入是 9V;
6, 交流170V, 7805稳压电路前端输入是 8.5V;
7, 交流160V, 7805稳压电路前端输入是 8V;
===你这个要提前的量放在 11V/10.5V/10V/9.5V/9V/8.5V ?
===哪个电压点产生外部电压偏低检测中断时间充分的一个实践测试选择

神农鼎 发表于 2023-9-27 12:55:38

先占个高层楼层,好补充内容

神农鼎 发表于 2023-9-27 12:55:48

先占个高层楼层,好补充内容

萌芽MENGYA 发表于 2024-1-14 11:31:00

本帖最后由 萌芽MENGYA 于 2024-1-14 11:52 编辑

感觉比较器,不是很容易上手。{:lol:}

神农鼎 发表于 2024-1-14 11:43:18

STC8H4K64TL,没旧版,只有 新版






萌芽MENGYA 发表于 2024-1-14 11:49:30

神农鼎 发表于 2024-1-14 11:43
STC8H4K64TL,没旧版,只有 新版

好。一时间忘记了,型号直接区分新版旧版。之前以为是同一个型号区分新旧版{:lol:}

金凌新电源 发表于 2024-3-14 15:45:31

CHYS这个怎么用 把这个能连到负端最好

神农鼎 发表于 2024-3-14 16:25:05


FotLon 发表于 2024-8-6 14:47:12

{:4_174:}
页: 1 [2]
查看完整版本: 视频讲解:比较器,STC8H系列数据手册 比较器 内容