MS51FB9AE使用定时器3作为串口0,1的波特率发生器代码实现

定时器3串口0模式3代码实现:

 

		P06_Quasi_Mode;
		P07_Quasi_Mode;
	
	
	SCON = 0xD0;       //UART0 Mode3,REN=1,TI=1
	set_SMOD;        //UART0 Double Rate Enable
	T3CON = 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
	set_BRCK;        //UART0 baud rate clock source = Timer3
#ifdef  FOSC_240000
	RH3   = HIBYTE(65536 - (1500000/u32Baudrate));  
	RL3   = LOBYTE(65536 - (1500000/u32Baudrate));
#endif	
	set_TR3;         //Trigger Timer3
	set_RB8;					//This bit is for setting the stop bit 2 high/low status, 
	TI = 0;
	
    set_ES;           //enable UART interrupt
    set_EA;           //enable global interrupt

 定时器3串口1模式3代码实现:

 

		P02_Quasi_Mode;
		P16_Quasi_Mode;
	
		SCON_1 = 0xD2;       //UART1 Mode3,REN=1,TI=1
		set_SMOD_1;        //UART1 Double Rate Enable
		T3CON = 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
		set_BRCK;        //UART1 baud rate clock source = Timer3
#ifdef FOSC_160000
		RH3   = HIBYTE(65536 - (1000000/u32Baudrate));  
		RL3   = LOBYTE(65536 - (1000000/u32Baudrate)); 
#endif
#ifdef FOSC_240000
			RH3   = HIBYTE(65536 - (1500000/u32Baudrate));  
			RL3   = LOBYTE(65536 - (1500000/u32Baudrate)); 
#endif
		set_TR3;         //Trigger Timer3
		set_RB8_1;					//This bit is for setting the stop bit 2 high/low status, 
		TI_1 = 1;
	
    set_ES_1;           //enable UART interrupt
    set_EA;           //enable global interrupt

 希望对在学习ms51的你们有点帮助

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值