项目7任务9:汽车串口通信控制器设计与制作ppt课件.pptx
《项目7任务9:汽车串口通信控制器设计与制作ppt课件.pptx》由会员分享,可在线阅读,更多相关《项目7任务9:汽车串口通信控制器设计与制作ppt课件.pptx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目7任务9:汽车串口通信控制器设计与制作电子课件玩转项目开发 任务九汽车串口通信控制器设计与制作一、目的与要求一、目的与要求通过单片机控制,实现上位机与单片机之间的串口通信,以此来模拟汽车串口通信控制系统。设计要求:上位机通过串口助手发送“L1”,控制LED灯L2点亮,发送“L2”,控制LED灯L3点亮,发送“L3”,控制LED灯L4点亮,发送“L4”,控制LED灯L5点亮,发送“L0”,控制所有LED灯熄灭。按下S1,单片机向上位机发送“T1”,按下S2,单片机向上位机发送“T2”,按下S3,单片机向上位机发送“T3”,按下S4,单片机向上位机发送“T4”。要求在LCD1602上显示单片机
2、通过串口接收与发送的数据。玩转项目开发 任务九汽车串口通信控制器设计与制作二、电路设计二、电路设计玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序#include STC15F2K60S2.h#include sbit lcden=P52;/LCD1602使能端sbit lcdrs=P53;/LCD1602寄存器选择sbit LED1=P40;/定义输出LED灯端口号为 P4.0 sbit LED2=P41;/定义输出LED灯端口号为 P4.1 sbit LED3=P42;/定义输出LED灯端口号为 P4.2 sbit LED4=P43;/定义输出LED
3、灯端口号为 P4.3 sbit KEY1=P60;/定义按钮端口号为 P6.0 sbit KEY2=P61;/定义按钮端口号为 P6.1sbit KEY3=P62;/定义按钮端口号为 P6.2 sbit KEY4=P63;/定义按钮端口号为 P6.3 unsigned char r_f50;/接收缓冲数据unsigned char r_c;/串口接收计数器unsigned char table116=R:;/第一行显示unsigned char table216=T:;/第二行显示玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序/延时/void dela
4、y(unsigned int x)unsigned int i,j;for(i=x;i0;i-)for(j=240;j0;j-);void lcd_write_com(unsigned char com)/LCD1602写指令lcdrs=0;P0=com;lcden=1;delay(10);lcden=0;玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序void lcd_write_data(unsigned char dat)/LCD1602写数据lcdrs=1;P0=dat;lcden=1;delay(10);lcden=0;/显示程序/void d
5、isplay()unsigned char num;lcd_write_com(0 x80);/显示第一行for(num=0;num16;num+)/显示16个字符玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序lcd_write_data(table1num);delay(10);lcd_write_com(0 xC0);/显示第二行for(num=0;num16;num+)/显示16个字符lcd_write_data(table2num);delay(10);/LCD1602初始化/void init()delay(1000);lcd_write_c
6、om(0 x38);delay(100);/显示模式设置 lcd_write_com(0 x08);delay(100);/显示关闭lcd_write_com(0 x01);delay(100);/显示清屏玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序lcd_write_com(0 x06);delay(100);/显示光标移动设置lcd_write_com(0 x0C);delay(100);/显示开及光标设置/串口接收数据清零/void serial_init()unsigned char i;for(i=0;i50;i+)r_fi=0;/接收数组
7、清零r_c=0;/接收计数器清零/串口发送程序/void send(unsigned char d,unsigned int m)/发送数组、发送个数unsigned int i;for(i=0;i=50)r_c=0;else r_c+;玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序/void UartInit(void)/9600bps22.1184MHzSCON=0 x50;/8位数据,可变波特率AUXR|=0 x40;/定时器1时钟为Fosc,即1TAUXR&=0 xFE;/串口1选择定时器1为波特率发生器TMOD&=0 x0F;/设定定时器1为
8、16位自动重装方式TL1=0 xC0;/设定定时初值TH1=0 xFD;/设定定时初值ET1=0;/禁止定时器1中断TR1=1;/启动定时器1玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序void main()unsigned char i;P0M0=0 xFF;/设置P0口为准双向IO(传统51模式)P0M1=0 x00;/设置P0口为准双向IO(传统51模式)P2M0=0 x00;/设置P1口为准双向IO(传统51模式)P2M1=0 x00;/设置P1口为准双向IO(传统51模式)P4M0=0 x00;/设置P4口为准双向IO(传统51模式)P4M
9、1=0 x00;/设置P4口为准双向IO(传统51模式)delay(100);UartInit();/串口设置ES =1;/允许中断 EA=1;/允许全局中断serial_init();/串口接收数据清零init();/LCD1602初始化玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序while(1)display();/显示for(i=0;i50;i+)/检查数组r_f中的数据if(r_fi=1)&(r_fi-1=L)table12=r_fi-1;table13=r_fi;LED1=0;serial_init();/数组中有L1,第1行显示“L1”,
10、LED1点亮,串口接收数据清零if(r_fi=2)&(r_fi-1=L)table12=r_fi-1;table13=r_fi;LED2=0;serial_init();/数组中有L2,第1行显示“L2”,LED2点亮,串口接收数据清零if(r_fi=3)&(r_fi-1=L)table12=r_fi-1;table13=r_fi;LED3=0;serial_init();玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序/数组中有L3,第1行显示“L3”,LED3点亮,串口接收数据清零if(r_fi=4)&(r_fi-1=L)table12=r_fi-1
11、;table13=r_fi;LED4=0;serial_init();/数组中有L4,第1行显示“L4”,LED4点亮,串口接收数据清零if(r_fi=0)&(r_fi-1=L)table12=r_fi-1;table13=r_fi;LED1=1;LED2=1;LED3=1;LED4=1;serial_init();/数组中有L0,第二行显示“L0”,LED灯全灭,串口接收数据清零玩转项目开发 任务九汽车串口通信控制器设计与制作三、程序设计三、程序设计1.源程序源程序if(KEY1=0)while(KEY1=0);table22=T;table23=1;send(T1,2);/检测到按键1按下
12、,第2行显示T1,串口发送“T1”2个字符。if(KEY2=0)while(KEY2=0);table22=T;table23=2;send(T2,2);/检测到按键2按下,第2行显示T2,串口发送“T2”2个字符。if(KEY3=0)while(KEY3=0);table22=T;table23=3;send(T3,2);/检测到按键3按下,第2行显示T3,串口发送“T3”2个字符。if(KEY4=0)while(KEY4=0);table22=T;table23=4;send(T4,2);/检测到按键4按下,第2行显示T4,串口发送“T4”2个字符。玩转项目开发 任务九汽车串口通信控制器设
13、计与制作四、知识准备四、知识准备1.STC15W4K32S4系列单片机串口简介系列单片机串口简介 STC15W4K32S4系列单片机具有4个采用UART工作方式的全双工异步串行通信接口(串口1、串口2、串口3和串口4)。每个串行口由2个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率生器等组成。每个串行口的数据缓冲器由2个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址码。串行口1的两个缓冲器共用的地址码是99H,串行口2的两个缓冲器共用的地址码是9BH,串行口3的两个缓冲器共用的地址码
14、是ADH,串行口4的两个缓冲器共用的地址码是85H。串行口1的两个缓冲器统称串行通信特殊功能寄存器SBUF,串行口2的两个缓冲器统称串行通信特殊功能寄存器S2BUF,串行口3的两个缓冲器统称串行通信特殊功能寄存器S3BUF,串行口4的两个缓冲器统称串行通信特殊功能寄存器S4BUF。玩转项目开发 任务九汽车串口通信控制器设计与制作STC15W4K32S4系列单片机的串行口1有4种工作方式,其中两种方式的波特率是可变的,另两种是固定的,以供不同应用场合选用。串行口2/串行口3/串行口4/都只有两种工作方式,这两种方式的波特率都是可变的。用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查
15、询或中断方式对接收/发送进行程序处理,使用十分灵活。STC15W4K32S4系列单片机的串行口1对应的硬件部分是TxD和RxD。串行口1可以在3组管脚之间进行切换。通过设置特殊功能寄存器AUXR1/P_SW1中的位S1_S1/AUXR1.7和S1_S0/P_SW1.6,可以将串行口1从RxD/P3.0,TxD/P3.1切换到RxD_2/P3.6,TxD_2/P3.7,还可以切换到RxD_3/P1.6,TxD_3/P1.7。STC15W4K32S4系列单片机的串行口2对应的硬件部分是TxD2和RxD2。串行口2可以在2组管脚之间进行切换。通过设置特殊功能寄存器P_SW2中的位 S2_S/P_SW
16、2.0,可 以 将 串 行 口 2从 RxD2/P1.0,TxD2/P1.1切 换 到RxD2_2/P4.6,TxD2_2/P4.7。玩转项目开发 任务九汽车串口通信控制器设计与制作STC15W4K32S4系列单片机的串行口3对应的硬件部分是TxD3和RxD3。串行口3可以在2组管脚之间进行切换。通过设置特殊功能寄存器P_SW2中的 位 S3_S/P_SW2.1,可 以 将 串 行 口 3从 RxD3/P0.0,TxD3/P0.1切 换 到RxD3_2/P5.0,TxD3_2/P5.1。STC15W4K32S4系列单片机的串行口4对应的硬件部分是TxD4和RxD4。串行口4可以在2组管脚之间进
17、行切换。通过设置特殊功能寄存器P_SW2中的 位 S4_S/P_SW2.2,可 以 将 串 行 口 4从 RxD4/P0.2,TxD4/P0.3切 换 到RxD4_2/P5.2,TxD4_2/P5.3。玩转项目开发 任务九汽车串口通信控制器设计与制作2.串行口串行口1的控制寄存器的控制寄存器SCON和和PCONSTC15系列单片机的串行口1设有两个控制寄存器:串行控制寄存器SCON和波特率选择特殊功能寄存器PCON。串行控制寄存器SCON用于选择串行通信的工作方式和某些控制功能。其格式如表所示。玩转项目开发 任务九汽车串口通信控制器设计与制作SM0/FE:当PCON寄存器中的SMOD0/PCO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 任务 汽车 串口 通信 控制器 设计 制作 ppt 课件
限制150内