SoC型单片机原理及应用课件

上传人:我*** 文档编号:145250193 上传时间:2020-09-18 格式:PPT 页数:21 大小:576KB
返回 下载 相关 举报
SoC型单片机原理及应用课件_第1页
第1页 / 共21页
SoC型单片机原理及应用课件_第2页
第2页 / 共21页
SoC型单片机原理及应用课件_第3页
第3页 / 共21页
SoC型单片机原理及应用课件_第4页
第4页 / 共21页
SoC型单片机原理及应用课件_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《SoC型单片机原理及应用课件》由会员分享,可在线阅读,更多相关《SoC型单片机原理及应用课件(21页珍藏版)》请在金锄头文库上搜索。

1、SoC型单片机原理和应用_7,5.6 UART通信设计,F320的UART原理,1) UART0 波特率由定时器 1 工作在 8 位自动重装载方式产生。发送(TX)时钟由 TL1 产生。定时器1应被配置为方式2,即8位自动重装载方式。定时器1的重载值应设置为使其溢出频率为所期望的波特率频率的两倍。注意,定时器1的时钟可以在6个时钟源中选择:SYSCLK、SYSCLK/4、SYSCLK/12、SYSCLK/48、外部振荡器时钟/8和外部输入T1。对于任何给定的定时器1时钟源,UART0的波特率由以下方程决定:baud=clk/(256-TH1)/2,2) SCON0与传统的SCON不太一样,地址

2、是一样的:0 x98。 位7:S0MODE:串行口工作方式选择位,0:方式0:波特率可编程的8位。1:方式1:波特率可编程的9位。 位6:未使用。 位5:MCE0:多处理器通信允许,该位的功能取决于串行口工作方式。S0MODE = 0:检查有效停止位。 0:停止位的逻辑电平被忽略。 1:只有当停止位为逻辑1时RI0激活。,位4:REN0:接收允许,0:UART0接收禁止。 1:UART0 接收允许。 位3:TB80:第9发送位 位2:RB80:第9接收位 位1:TI0:发送中断标志, 当UART0发送完一个字节数据后该位被硬件置1(在8位UART方式时,是在发送第 8位后;在9位UART方式时

3、,是在停止位开始)。当UART0中断被允许时,置1该位将导致CPU转到UART0 中断服务程序。该位必须用软件清0。 位0:RI0:接收中断标志,当UART0接收到一个字节数据时该位被硬件置1(在停止位后)。当UART0中断被允许时,置1该位将会使CPU转到UART0中断服务程序。该位必须用软件清0。,3) SBUF0和传统的一样。 4) TXD, RXD引脚 TXD: P0.4, RXD: P0.5,程序详解,/* by Ma Huimin, 2011.09.23. 从PC传来的数据加1,回发给PC机 ,端口为RXP0.5,TXP0.4 */ #include #define uchar u

4、nsigned char #define uint unsigned int char g; char s; unsigned char DispData08=UART Dis; unsigned char DispData18=play ;/ unsigned int x; unsigned char *lcdpoint0; /指向 lcddata数组的指针 unsigned char *lcdpoint1; /指向 lcddata数组的指针 sbit rs = P23; sbit e = P25; bit com_disp; /通信态_显示态,/- / 函数定义 /- void PORT_

5、Init (void); void PORT_Init2 (void); void SYSCLK_Init (void); void LCD_Init(void); void SEND_LCD(unsigned char lcd_data_count); void LCD_Instruction(unsigned char comnd); void LCD_Data(unsigned char data0); int ii;,/* *端口初始化函数 */ void PORT_Init (void) P0MDOUT = 0 xFF; /P0 as Digital Output P2MDOUT =

6、 0 xFF; /P2 as digital output XBR0 /交叉开关起作用 ,XBR0说明,/* *UART0初始化函数 */ void UART0_Init (void) SCON0 |= 0 x10; /允许接收 CKCON = 0 x01; /系统时钟(12MHz)的1/4 TH1 = 0 x64; /波特率为9615 TL1 = TH1; TMOD = 0 x20; /T1为8位自动重装 TR1 = 1; /T1启动 ,时钟控制寄存器CKCON,波特率计算,定时器1的重载值应设置为使其溢出频率为所期望的波特率频率的两倍。 1)T1的频率为12MHz/4=3MHz 2)波特率

7、(溢出率):3MHz/(0 xFF 0 x64 +1)/2 = 3 000 000 / (256-100)/2 =9615,/* * 接收中断初始化 */ void Interr_Init(void) IE |= 0 x90; /- /函数名称: LCD_Init () 液晶初始化 /- void LCD_Init(void) com_disp = 0;/通信态_显示态 LCD_Instruction(0 x38); /lcd disabled LCD_Instruction(0 x38); /lcd disabled LCD_Instruction(0 x01); /lcd disabled

8、 LCD_Instruction(0 x0C); /lcd disabled ,void LCD_Instruction(unsigned char Commnd) rs = 0; e = 1; P0 = Commnd; for(x=0;x10000;x+); e = 0; void LCD_Data(unsigned char data0) rs = 1; e = 1; P0 = data0; for(x=0;x10000;x+); e = 0; ,/- /函数名称: SYSCLK_Init () /函数功能: 系统时钟初始化 /入口参数: 无 /出口参数: 无 /全局变量引用: 无 /调用

9、模块: 无 /- void SYSCLK_Init (void) OSCICL = 0 x00; / 基本频率12MHz,修正=0 OSCICN = 0 x83; / 12MHz RSTSRC = 0 x04; / 时钟停止将复位 ,void main() PCA0MD /LCD初始化,LCD_Instruction(0 x80); /address 0 for (ii=0;ii8;ii+) LCD_Data(*lcdpoint0); lcdpoint0+; LCD_Instruction(0 xC0); /address 1 for (ii=0;ii8;ii+) LCD_Data(*lcdp

10、oint1); lcdpoint1+; com_disp = 1; /waiting to UART,while(1) if (com_disp=1) PORT_Init2(); /UART else PORT_Init(); /LCD显示 LCD_Instruction(0 xC7); /address 1 LCD_Data(s); com_disp=1; ,/* 串口中断服务 */ S_interr () interrupt 4 s=SBUF0; /接收的字节 RI0=0; /清接收标志 g=s+1; SBUF0=g; /加1发回 while(TI0=0); /等待8位发送完毕 TI0=0; /请发送标志 com_disp = 0; /to display ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号