C51 COMPILER V9.59.0.0 MAIN 06/08/2021 15:53:40 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 #include "config.h" 14 #include "STC8A_GPIO.h" 15 #include "STC8A_ADC.h" 16 #include "STC8A_UART.h" 17 #include "STC8A_Delay.h" 18 #include "STC8A_NVIC.h" 19 20 /************* 功能说明 ************** 21 22 本程序演示16路ADC查询采样,通过串口发送给上位机,波特率115200,N,8,1。 23 24 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。 25 26 下载时, 选择时钟 22.1184MHz (可以在配置文件"config.h"中修改). 27 28 ******************************************/ 29 30 31 /************* 本地常量声明 **************/ 32 33 34 /************* 本地变量声明 **************/ 35 36 37 /************* 本地函数声明 **************/ 38 39 40 /************* 外部函数和变量声明 *****************/ 41 42 43 /******************* IO配置函数 *******************/ 44 void GPIO_config(void) 45 { 46 1 P0_MODE_IN_HIZ(GPIO_Pin_LOW | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6); //P0.0~P0.6 设置为高阻输入 47 1 P1_MODE_IN_HIZ(GPIO_Pin_All); //P1.0~P1.7 设置为高阻输入 48 1 P3_MODE_IO_PU(GPIO_Pin_0 | GPIO_Pin_1); //P3.0,P3.1 设置为准双向口 49 1 } 50 51 /******************* AD配置函数 *******************/ 52 void ADC_config(void) 53 { 54 1 ADC_InitTypeDef ADC_InitStructure; //结构定义 C51 COMPILER V9.59.0.0 MAIN 06/08/2021 15:53:40 PAGE 2 55 1 ADC_InitStructure.ADC_SMPduty = 31; //ADC 模拟信号采样时间控制, 0~31(注意: SMPDUTY 一定不能设置小于 -10) 56 1 ADC_InitStructure.ADC_CsSetup = 0; //ADC 通道选择时间控制 0(默认),1 57 1 ADC_InitStructure.ADC_CsHold = 1; //ADC 通道选择保持时间控制 0,1(默认),2,3 58 1 ADC_InitStructure.ADC_Speed = ADC_SPEED_2X1T; //设置 ADC 工作时钟频率 ADC_SPEED_2X1T~ADC_SPEED_2X16T 59 1 ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED; //ADC结果调整, ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIF -IED 60 1 ADC_Inilize(&ADC_InitStructure); //初始化 61 1 ADC_PowerControl(ENABLE); //ADC电源开关, ENABLE或DISABLE 62 1 NVIC_ADC_Init(DISABLE,Priority_0); //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Prio -rity_2,Priority_3 63 1 } 64 65 /*************** 串口初始化函数 *****************/ 66 void UART_config(void) 67 { 68 1 COMx_InitDefine COMx_InitStructure; //结构定义 69 1 COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //模式, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,U -ART_9bit_BRTx 70 1 COMx_InitStructure.UART_BRT_Use = BRT_Timer1; //使用波特率, BRT_Timer1, BRT_Timer2 (注意: 串口2固定使 -用BRT_Timer2) 71 1 COMx_InitStructure.UART_BaudRate = 115200ul; //波特率, 110 ~ 115200 72 1 COMx_InitStructure.UART_RxEnable = ENABLE; //接收允许, ENABLE或DISABLE 73 1 UART_Configuration(UART1, &COMx_InitStructure); //初始化串口2 USART1,USART2,USART3,USART4 74 1 NVIC_UART1_Init(ENABLE,Priority_1); //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Pri -ority_2,Priority_3 75 1 } 76 77 /**********************************************/ 78 void main(void) 79 { 80 1 u8 i; 81 1 u16 j; 82 1 83 1 GPIO_config(); 84 1 UART_config(); 85 1 ADC_config(); 86 1 EA = 1; 87 1 88 1 printf("STC8 AD to UART Test Programme!\r\n"); //UART发送一个字符串 89 1 90 1 while (1) 91 1 { 92 2 for(i=0; i<16; i++) 93 2 { 94 3 delay_ms(200); 95 3 96 3 //Get_ADCResult(i); //参数0~15,查询方式做一次ADC, 丢弃一次 97 3 j = Get_ADCResult(i); //参数0~15,查询方式做一次ADC, 返回值就是结果, == 4096 为错误 98 3 printf("AD%02bd=%04d ",i,j); 99 3 if((i & 7) == 7) printf("\r\n"); 100 3 } 101 2 printf("\r\n"); 102 2 } 103 1 } 104 105 106 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 185 ---- C51 COMPILER V9.59.0.0 MAIN 06/08/2021 15:53:40 PAGE 3 CONSTANT SIZE = 51 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 15 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)