C51 COMPILER V9.59.0.0 MAIN 06/09/2021 14:54:52 PAGE 1 C51 COMPILER V9.59.0.0, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN .\list\main.obj COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE main.c OMF2 OPTIMIZE(8,SPEED) BROWSE DEBUG PRINT(.\list\main.lst) TABS(2 -) OBJECT(.\list\main.obj) line level source 1 /*---------------------------------------------------------------------*/ 2 /* --- STC MCU Limited ------------------------------------------------*/ 3 /* --- STC 1T Series MCU Demo Programme -------------------------------*/ 4 /* --- Mobile: (86)13922805190 ----------------------------------------*/ 5 /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/ 6 /* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/ 7 /* --- Web: www.STCMCU.com --------------------------------------------*/ 8 /* --- Web: www.STCMCUDATA.com ---------------------------------------*/ 9 /* --- QQ: 800003751 -------------------------------------------------*/ 10 /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */ 11 /*---------------------------------------------------------------------*/ 12 13 /************* 功能说明 ************** 14 15 比较器的正极可以是 P3.7/P5.0/P5.1 端口或者 ADC 的模拟输入通道, 16 17 而负极可以是 P3.6 端口或者是内部 BandGap 经过 OP 后的 REFV 电压(1.19V内部固定比较电压)。 18 19 通过中断或者查询方式读取比较器比较结果,CMP+的电平低于CMP-的电平P50口输出低电平,反之输出高电平。 20 21 下载时, 选择时钟 24MHz (可以在配置文件"config.h"中修改). 22 23 ******************************************/ 24 25 #include "config.h" 26 #include "STC8A_GPIO.h" 27 #include "STC8A_NVIC.h" 28 #include "STC8A_Compare.h" 29 30 /************* 本地常量声明 **************/ 31 32 33 /************* 本地变量声明 **************/ 34 35 36 /************* 本地函数声明 **************/ 37 38 39 /************* 外部函数和变量声明 *****************/ 40 41 42 /************************ 比较器配置 ****************************/ 43 void CMP_config(void) 44 { 45 1 CMP_InitDefine CMP_InitStructure; //结构定义 46 1 CMP_InitStructure.CMP_EN = ENABLE; //允许比较器 ENABLE,DISABLE 47 1 CMP_InitStructure.CMP_P_Select = CMP_P_P37; //比较器输入正极选择, CMP_P_P37/CMP_P_P50/CMP_P_P51, CMP -_P_ADC: 由ADC模拟输入端做正输入. 48 1 CMP_InitStructure.CMP_N_Select = CMP_N_GAP; //比较器输入负极选择, CMP_N_GAP: 选择内部BandGap经过OP后 -的电压做负输入, CMP_N_P36: 选择P3.6做负输入. 49 1 CMP_InitStructure.CMP_InvCMPO = DISABLE; //比较器输出取反, ENABLE,DISABLE 50 1 CMP_InitStructure.CMP_100nsFilter = ENABLE; //内部0.1uF滤波, ENABLE,DISABLE 51 1 CMP_InitStructure.CMP_Outpt_En = ENABLE; //允许比较结果输出,ENABLE,DISABLE 52 1 CMP_InitStructure.CMP_OutDelayDuty = 16; //比较结果变化延时周期数, 0~63 C51 COMPILER V9.59.0.0 MAIN 06/09/2021 14:54:52 PAGE 2 53 1 CMP_Inilize(&CMP_InitStructure); //初始化比较器 54 1 NVIC_CMP_Init(RISING_EDGE|FALLING_EDGE,Priority_0); //中断使能, RISING_EDGE/FALLING_EDGE/DISABLE; 优先级( -低到高) Priority_0,Priority_1,Priority_2,Priority_3 55 1 } 56 57 /************************ IO口配置 ****************************/ 58 void GPIO_config(void) 59 { 60 1 GPIO_InitTypeDef GPIO_InitStructure; //结构定义 61 1 GPIO_InitStructure.Pin = GPIO_Pin_6 | GPIO_Pin_7; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作 62 1 GPIO_InitStructure.Mode = GPIO_HighZ; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO -_OUT_PP 63 1 GPIO_Inilize(GPIO_P3,&GPIO_InitStructure); //初始化 64 1 65 1 GPIO_InitStructure.Pin = GPIO_Pin_0; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7, 或操作 66 1 GPIO_InitStructure.Mode = GPIO_PullUp; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO -_OUT_PP 67 1 GPIO_Inilize(GPIO_P5,&GPIO_InitStructure); //初始化 68 1 } 69 70 /************************ 定时器配置 ****************************/ 71 72 /******************** task A **************************/ 73 void main(void) 74 { 75 1 GPIO_config(); 76 1 CMP_config(); 77 1 78 1 EA = 1; 79 1 while (1); 80 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 78 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 9 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)