C51 COMPILER V9.53.0.0 COMMON 09/30/2018 11:45:28 PAGE 1 C51 COMPILER V9.53.0.0, COMPILATION OF MODULE COMMON OBJECT MODULE PLACED IN .\Output\Common.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\..\Code\keil_common\Common\Common.c LARGE OPTIMIZE(0,SPEED) BROWSE IN -CDIR(../../Code/Include;../../Code/User;../../Code/User/Common;../../Code/User/Driver) DEFINE(FOSC_160000=1) DEBUG OBJEC -TEXTEND PRINT(.\Output\LST\Common.lst) TABS(2) OBJECT(.\Output\Common.obj) line level source 1 /*-------------------------------------------------------------------------------------------------------- --*/ 2 /* - */ 3 /* Copyright(c) 2016 Nuvoton Technology Corp. All rights reserved. - */ 4 /* - */ 5 /*-------------------------------------------------------------------------------------------------------- --*/ 6 7 //******************************************************************************************************** -*** 8 // Nuvoton Technoledge Corp. 9 // Website: http://www.nuvoton.com 10 // E-Mail : MicroC-8bit@nuvoton.com 11 // Date : Apr/21/2016 12 //******************************************************************************************************** -*** 13 14 #include "N76E003.h" 15 #include "Common.h" 16 #include "Delay.h" 17 #include "SFR_Macro.h" 18 #include "Function_define.h" 19 20 //---------------------------------------------------------------------------------- 21 // UART0 baud rate initial setting 22 //---------------------------------------------------------------------------------- 23 void InitialUART0_Timer1(UINT32 u32Baudrate) //T1M = 1, SMOD = 1 24 { 25 1 P06_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 26 1 P07_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 27 1 28 1 SCON = 0x50; //UART0 Mode1,REN=1,TI=1 29 1 TMOD |= 0x20; //Timer1 Mode1 30 1 31 1 set_SMOD; //UART0 Double Rate Enable 32 1 set_T1M; 33 1 clr_BRCK; //Serial port 0 baud rate clock source = Timer1 34 1 35 1 #ifdef FOSC_160000 36 1 TH1 = 256 - (1000000/u32Baudrate+1); /*16 MHz */ 37 1 #endif 38 1 #ifdef FOSC_166000 TH1 = 256 - (1037500/u32Baudrate); /*16.6 MHz */ #endif 41 1 set_TR1; 42 1 set_TI; //For printf function must setting TI = 1 43 1 } 44 //--------------------------------------------------------------- 45 void InitialUART0_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator 46 { C51 COMPILER V9.53.0.0 COMMON 09/30/2018 11:45:28 PAGE 2 47 1 P06_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 48 1 P07_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 49 1 50 1 SCON = 0x50; //UART0 Mode1,REN=1,TI=1 51 1 set_SMOD; //UART0 Double Rate Enable 52 1 T3CON &= 0xF8; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1) 53 1 set_BRCK; //UART0 baud rate clock source = Timer3 54 1 55 1 #ifdef FOSC_160000 56 1 RH3 = HIBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */ 57 1 RL3 = LOBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */ 58 1 #endif 59 1 #ifdef FOSC_166000 RH3 = HIBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */ RL3 = LOBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */ #endif 63 1 set_TR3; //Trigger Timer3 64 1 set_TI; //For printf function must setting TI = 1 65 1 } 66 67 UINT8 Receive_Data_From_UART0(void) 68 { 69 1 UINT8 c; 70 1 while (!RI); 71 1 c = SBUF; 72 1 RI = 0; 73 1 return (c); 74 1 } 75 76 void Send_Data_To_UART0 (UINT8 c) 77 { 78 1 TI = 0; 79 1 SBUF = c; 80 1 while(TI==0); 81 1 } 82 83 84 //---------------------------------------------------------------------------------- 85 // UART1 baud rate initial setting 86 //---------------------------------------------------------------------------------- 87 void InitialUART1_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator 88 { 89 1 P02_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 90 1 P16_Quasi_Mode; //Setting UART pin as Quasi mode for transmit 91 1 92 1 SCON_1 = 0x50; //UART1 Mode1,REN_1=1,TI_1=1 93 1 T3CON = 0x08; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1 94 1 clr_BRCK; 95 1 96 1 #ifdef FOSC_160000 97 1 RH3 = HIBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */ 98 1 RL3 = LOBYTE(65536 - (1000000/u32Baudrate)-1); /*16 MHz */ 99 1 #endif 100 1 #ifdef FOSC_166000 RH3 = HIBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */ RL3 = LOBYTE(65536 - (1037500/u32Baudrate)); /*16.6 MHz */ #endif 104 1 set_TR3; //Trigger Timer3 105 1 } 106 107 UINT8 Receive_Data_From_UART1(void) 108 { C51 COMPILER V9.53.0.0 COMMON 09/30/2018 11:45:28 PAGE 3 109 1 UINT8 c; 110 1 111 1 while (!RI_1); 112 1 c = SBUF_1; 113 1 RI_1 = 0; 114 1 return (c); 115 1 } 116 117 void Send_Data_To_UART1 (UINT8 c) 118 { 119 1 TI_1 = 0; 120 1 SBUF_1 = c; 121 1 while(TI_1==0); 122 1 } 123 124 125 /*==========================================================================*/ 126 #ifdef SW_Reset void SW_Reset(void) { TA = 0xAA; TA = 0x55; set_SWRST; } #endif 134 /*==========================================================================*/ MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 450 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 16 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)