/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2015 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
//***********************************************************************************************************
// Nuvoton Technoledge Corp.
// Website: http://www.nuvoton.com
// E-Mail : MicroC-8bit@nuvoton.com
// Date : Apr/21/2015
//***********************************************************************************************************
#include "N76E885.h"
#include "Version.h"
#include "Typedef.h"
#include "Define.h"
#include "SFR_Macro.h"
#include "Common.h"
#include "Delay.h"
/***************************************************************************************************
System Clock Source Select
****************************************************************************************************/
void System_Clock_Select(E_SYSTEM_CLOCK clock)
{
switch (clock)
{
case E_HXTEN:
{
//step1: enable clock source
set_EXTEN1;
clr_EXTEN0;
//step2: check ready
while((CKSWT&SET_BIT7)==0);
//step3: switching system clock source
clr_OSC1;
set_OSC0;
}break;
case E_LXTEN:
{
//step1: enable clock source
clr_EXTEN1;
set_EXTEN0;
//step2: check ready
while((CKSWT&SET_BIT6)==0);
//step3: switching system clock source
clr_OSC1;
set_OSC0;
}break;
case E_OSCEN:
{
//step1: enable clock source
clr_EXTEN1;
clr_EXTEN0;
//step2: check ready
while((CKSWT&SET_BIT3)==0);
//step3: switching system clock source
clr_OSC1;
set_OSC0;
}break;
case E_HIRCEN: //power on default
{
//step1: enable clock source
set_HIRCEN;
//step2: check ready
while((CKSWT&SET_BIT5)==0);
//step3: switching system clock source
clr_OSC1;
clr_OSC0;
}break;
case E_LIRCEN:
{
//step1: enable clock source
set_LIRCEN;
//step2: check ready
while((CKSWT&SET_BIT4)==0);
//step3: switching system clock source
set_OSC1;
clr_OSC0;
}break;
}
//step4: check system clock switching OK or NG?
while((CKEN&SET_BIT0)==1); //Check Clock switch fault flag.
}
//-----------------------------------------------------------------------------------------------------------
/* use timer1 as Baudrate generator, Maxmum Baudrate can 57600 bps @ 22.1184MHz
*/
void InitialUART0_Timer1_Type1(UINT32 u32Baudrate) //T1M = 0, SMOD = 0
{
SCON = 0x52; //UART0 Mode1,REN=1,TI=1
TMOD |= 0x20; //Timer1 Mode1
clr_SMOD;
clr_T1M;
clr_BRCK; //Serial port 0 baud rate clock source = Timer1
#ifdef FOSC_110592
TH1 = 256 - (28800/u32Baudrate); /*11.0592 MHz */
#endif
#ifdef FOSC_184320
TH1 = 256 - (48000/u32Baudrate); /*18.4320 MHz */
#endif
#ifdef FOSC_200000
TH1 = 256 - (52083/u32Baudrate); /*20.0000 MHz */
#endif
#ifdef FOSC_221184
TH1 = 256 - (57600/u32Baudrate); /*22.1184 MHz */
#endif
set_TR1;
}
//-----------------------------------------------------------------------------------------------------------
/* use timer1 as Baudrate generator, Maxmum Baudrate can 115200 bps @ 22.1184MHz
*/
void InitialUART0_Timer1_Type2(UINT32 u32Baudrate) //T1M = 0, SMOD = 1
{
SCON = 0x52; //UART0 Mode1,REN=1,TI=1
TMOD |= 0x20; //Timer1 Mode1
set_SMOD; //UART0 Double Rate Enable
clr_T1M;
clr_BRCK; //Serial port 0 baud rate clock source = Timer1
#ifdef FOSC_110592
TH1 = 256 - (57600/u32Baudrate); /*11.0592 MHz */
#endif
#ifdef FOSC_184320
TH1 = 256 - (96000/u32Baudrate); /*18.4320 MHz */
#endif
#ifdef FOSC_200000
TH1 = 256 - (104167/u32Baudrate); /*20.0000 MHz */
#endif
#ifdef FOSC_221184
TH1 = 256 - (115200/u32Baudrate); /*22.1184 MHz */
#endif
set_TR1;
}
//-----------------------------------------------------------------------------------------------------------
/* use timer1 as Baudrate generator, Maxmum Baudrate can 691200 bps @ 22.1184MHz
*/
void InitialUART0_Timer1_Type3(UINT32 u32Baudrate) //T1M = 1, SMOD = 0
{
SCON = 0x52; //UART0 Mode1,REN=1,TI=1
TMOD |= 0x20; //Timer1 Mode1
clr_SMOD;
set_T1M;
clr_BRCK; //Serial port 0 baud rate clock source = Timer1
#ifdef FOSC_110592
TH1 = 256 - (345600/u32Baudrate); /*11.0592 MHz */
#endif
#ifdef FOSC_184320
TH1 = 256 - (576000/u32Baudrate); /*18.4320 MHz */
#endif
#ifdef FOSC_200000
TH1 = 256 - (625000/u32Baudrate); /*20.0000 MHz */
#endif
#ifdef FOSC_221184
TH1 = 256 - (691200/u32Baudrate); /*22.1184 MHz */
#endif
set_TR1;
}
//-----------------------------------------------------------------------------------------------------------
/* use timer1 as Baudrate generator, Maxmum Baudrate can 1382400 bps @ 22.1184MHz
*/
void InitialUART0_Timer1_Type4(UINT32 u32Baudrate) //T1M = 1, SMOD = 1
{
SCON = 0x52; //UART0 Mode1,REN=1,TI=1
TMOD |= 0x20; //Timer1 Mode1
set_SMOD; //UART0 Double Rate Enable
set_T1M;
clr_BRCK; //Serial port 0 baud rate clock source = Timer1
#ifdef FOSC_110592
TH1 = 256 - (691200/u32Baudrate); /*11.0592 MHz */
#endif
#ifdef FOSC_184320
TH1 = 256 - (1152000/u32Baudrate); /*18.4320 MHz */
#endif
#ifdef FOSC_200000
TH1 = 256 - (1250000/u32Baudrate); /*20.0000 MHz */
#endif
#ifdef FOSC_221184
TH1 = 256 - (1382400/u32Baudrate); /*22.1184 MHz */
#endif
set_TR1;
}
//---------------------------------------------------------------
void InitialUART0_Timer3_Type5(UINT32 u32Baudrate) //use timer3 as Baudrate generator
{
SCON = 0x52; //UART0 Mode1,REN=1,TI=1
clr_SMOD;
T3CON &= 0xF8; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
set_BRCK; //Serial port 0 baud rate clock source = Timer3
#ifdef FOSC_110592
RH3 = HIBYTE(65536 - (345600/u32Baudrate)); /*11.0592 MHz */
RL3 = LOBYTE(65536 - (345600/u32Baudrate)); /*11.0592 MHz */
#endif
#ifdef FOSC_184320
RH3 = HIBYTE(65536 - (576000/u32Baudrate)); /*18.4320 MHz */
RL3 = LOBYTE(65536 - (576000/u32Baudrate)); /*18.4320 MHz */
#endif
#ifdef FOSC_200000
RH3 = HIBYTE(65536 - (640000/u32Baudrate)); /*20.0000 MHz */
RL3 = LOBYTE(65536 - (640000/u32Baudrate)); /*20.0000 MHz */
#endif
#ifdef FOSC_221184
RH3 = HIBYTE(65536 - (691200/u32Baudrate)); /*22.1184 MHz */
RL3 = LOBYTE(65536 - (691200/u3
没有合适的资源?快使用搜索试试~ 我知道了~
新塘MCUISP下载工具源码
共50个文件
lst:9个
h:9个
c:7个
需积分: 12 25 下载量 191 浏览量
2018-11-01
18:20:55
上传
评论
收藏 193KB RAR 举报
温馨提示
新塘MCUISP下载工具的源代码,烧录N76e003,VS编辑器,C++
资源推荐
资源详情
资源评论
收起资源包目录
Nuvoton Standard ISP Code.rar (50个子文件)
(2) Nuvoton Standard ISP Code
SOURCE CODE
N76E003
Include
SFR_Macro.h 48KB
Define.h 2KB
Typedef.h 274B
Delay.h 315B
Function_Define.h 37KB
UART0_transfer.h 817B
N76E003.h 7KB
Common.h 1KB
ISP_USER.h 656B
Sample_Code
UART0_ISP
ISP_UART0.uvgui.CH 145KB
ISP_UART0.uvgui_CH.bak 145KB
Source
main.c 11KB
UART0_transfer.c 3KB
ISP_USER.c 8KB
UART0_mode_2.c 9KB
ISP_UART0.uvgui_LCWANG0.bak 139KB
ISP_UART0_uvopt.bak 9KB
ISP_UART0.uvopt 7KB
ISP_UART0.uvgui.LCWANG0 140KB
ISP_UART0.uvgui.Administrator 69KB
Output
ISP_UART0.bin 2KB
ISP_UART0 131KB
ExtDll.iex 19B
UART0_transfer.obj 61KB
Common.obj 73KB
Delay.obj 67KB
main.obj 74KB
STARTUP.obj 935B
ISP_UART0.lnp 171B
ISP_UART0.hex 6KB
hex2bin.exe 28KB
ISP_UART0.plg 2KB
LST
Version.lst 4KB
main1.lst 20KB
STARTUP.lst 12KB
UART0_M2.m51 18KB
UART0_mode_2.lst 18KB
main.lst 21KB
UART0_mode_2.i 14KB
ISP_UART0.m51 27KB
UART0_transfer.lst 6KB
ISP_USER.lst 15KB
Common.lst 19KB
Delay.lst 10KB
ISP_UART0_uvproj.bak 14KB
ISP_UART0.uvproj 14KB
Startup
STARTUP.A51 5KB
Common
Version.c 2KB
Delay.c 6KB
Common.c 12KB
共 50 条
- 1
资源评论
正打算大苏打
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功