重邮自动工程实训实验报告_第1页
重邮自动工程实训实验报告_第2页
重邮自动工程实训实验报告_第3页
重邮自动工程实训实验报告_第4页
重邮自动工程实训实验报告_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生实验报告册课程名称:自动工程实训学 院:自动化专业班级:姓 名:学 号:指导教师:成 绩:学年学期:2017 -2018 学年 o春þ秋学期重庆邮电大学教务处制实验项目名称车灯本地控制实验实验地点电装实训室A303实验时间2017/10/23一二节实验指导教师成绩一、实验目的1)了解车灯实验箱控制板原理图2)熟悉车灯的控制逻辑(逻辑图、逻辑表)3)了解并熟悉MCS08DZ60主要模块,看懂数据手册4)学会在CodeWarrior软件环境下的简单编程。二、实验原理(或设计方案)通过车灯逻辑控制图我们可知我们可以将输入输出变量传给MCS08DZ60芯片,通过MCS08DZ60处理,输

2、出对各种车灯进行有效控制。车灯输入输出配置说明:/输入 PTCD_PTCD2 /远光灯开关 PTBD_PTBD1 /小灯开关PTCD_PTCD1 /左转灯开关 PTAD_PTAD0 /右转灯开关PTFD_PTFD7 /近光灯开关 PTBD_PTBD0 /前雾灯灯开关 PTDD_PTDD5 /刹车指示灯开关 保留未用 /输出 PTBD_PTBD6 /远光灯 PTAD_PTAD6 /小灯 PTBD_PTBD5 /左转灯 PTAD_PTAD5 /右转灯 PTCD_PTCD4 /近光灯 PTBD_PTBD4 /前雾灯 PTAD_PTAD4 /刹车指示灯 保留未用 注:所有输出为高电平才有效。通过上表我

3、们可以得到每个车灯模块需要达到的控制效果,我们通过CodeWarrior编程,结合车灯控制台,以达到以上效果。三、实验仪器设备、材料车灯控制台、CodeWarrior软件、一台电脑四、实验步骤(或设计过程)1)实验相关关键原理图了解(如继电器、开关量输入接口、AD输入接口等)、输入输出接口定义; 电机驱动模块中J1、J2为输出控制接插件,OUTPUT0-OUTPUT7为7个继电器输出控制信号,电路原理图如图1所示,J1、J2的具体管脚定义如表1和表2所示。图1 电机驱动模块电路原理图图2、 输入模块电路原理图2)软件流程图3)软件模块功能介绍软件模块主要有IO口控制模块、RTC定时中断模块、M

4、CG时钟模块、CAN总线模块几个部分。其中IO口分为输入和输出,实现对各车灯的控制,RTC定时器通过产生一个100ms的时间基准,控制灯光的闪烁以及CAN报文的发送。IO口控制模块 在本模块中,通过对7个输入和7个输出IO口的控制,来实现车灯的按钮控制,主要的程序代码如下:void IO_Init(void) PTDDD_PTDDD5=0; /输入 PTFDD_PTFDD7=0; PTBDD_PTBDD0=0; PTCDD_PTCDD1=0; PTADD_PTADD0=0; PTCDD_PTCDD2=0; PTBDD_PTBDD1=0; PTDD_PTDD5=1; /刹车指示灯开关 PTFD_

5、PTFD7=1;/倒车指示灯开关 PTBD_PTBD0=1; /车门灯开关 PTCD_PTCD1=1;/左转灯开关 PTAD_PTAD0=1; /右转灯开关 PTCD_PTCD2=1;/远光灯开关 PTBD_PTBD1=1; /近光灯开关 PTBDD_PTBDD6=1;/输出 PTADD_PTADD6=1;/ PTBDD_PTBDD5=1; PTADD_PTADD5=1; PTCDD_PTCDD4=1; PTBDD_PTBDD4=1; PTADD_PTADD4=1; PTBD_PTBD6=0;/远光灯 PTAD_PTAD6=0;/近光灯 PTBD_PTBD5=0;/左转灯 PTAD_PTAD5

6、=0;/右转灯 PTCD_PTCD4=0;/门灯 PTBD_PTBD4=0;/倒车指示灯 PTAD_PTAD4=0;/刹车指示灯 MCG时钟模块 本模块采用外部晶体为4MHZ、总线频率8为MHZ的时钟源。相应的程序代码请参考光盘中的源代码。CAN总线模块 本模块主要包括CAN模块寄存器的初始化设置,本实验中设置的CAN通信波特率为125kbps,此外,还有CAN发送和CAN接收两个部分,相应的程序代码请参考光盘中的源代码。RTC定时中断 本模块中包括RTC定时器初始化,RTC定时器中断函数,通过RTC定时来产生400ms的定时器中断发送CAN报文,相应的程序代码请参考光盘中的源代码。灯光逻辑控

7、制 这部分主要是通过按键来控制车灯的点亮和熄灭等操作,通过检测输入信号(按钮的动作),来判断是哪个开关动作,从而实现相应的操作(灯点亮或熄灭)。4)下载程序实现结果五、实验过程原始记录(数据、图表、计算等)(或设计计算、图纸等)给实验箱上电,打开电源开关。当把按钮打到近光档时,近光灯点亮,继续把按钮打到远光灯时,近光灯远光灯同时点亮;当按下刹车灯的开关时,刹车灯点亮;当按下倒车灯的开关时,倒车灯点亮;当把按钮打到左转档时,左转指示灯会出现周期性(闪烁频率10HZ)的闪烁,把按钮打到右转档时,右转指示灯会出现周期性(闪烁频率10HZ)的闪烁,把按钮打到中间档时,左转灯和右转灯全部熄灭;当按下警示

8、灯开关时,左转向灯、右转向灯同时周期性(闪烁频率10HZ)的闪烁,并且车身上的四个门灯全部打开。六、实验结果及分析(或设计总结) 通过不断CodeWarrior软件环境下编程,不断实验,最终成功实现了对近光灯、远光灯、左转灯、右转灯、倒车灯、应急灯和雾灯等模块对应功能的实现,拨动每个模块车灯按钮便能实现对应的车灯效果。 通过这个实验我们第一次接触了汽车电子方面的控制技术,不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力,学习到了很多软硬件方面的知识,学会熟练使用CodeWarrior集成开发环境,学会了车灯控制台的硬件设计。实验时一定要在安全的

9、情况下多动手多实践才能熟悉控台才能了解操作过程的各个环节,同时在动手的过程中就能慢慢学会如何去调好每一个模块。是的,纸上得来终觉浅,在这次实验学习中我清楚的认识到了车灯控制操作更多要靠实践,衷心感谢学校给我们安排的这次学习机会,谢谢老师的安排同时希望我们专业以后会有更多这样的机会。七、评阅意见 评阅人签字:评阅日期:附录#include <hidef.h> /* for EnableInterrupts macro */#include "derivative.h" /* include peripheral declarations */#include &q

10、uot;MSCAN.h"Unsigned char flag,flag1,flag2,warn_flag;void delay(unsigned int x) unsigned int i,j; for(i=0;i<x;i+) for(j=0;j<250;j+) ; void IO_Init() / 配置为输入 PTDDD_PTDDD5 = 0; PTFDD_PTFDD7 = 0; PTBDD_PTBDD0 = 0; PTCDD_PTCDD1 = 0; PTADD_PTADD0 = 0; PTCDD_PTCDD2 = 0; PTBDD_PTBDD1 = 0; PTDD_P

11、TDD5 = 1; /刹车指示灯开关 保留未用 PTFD_PTFD7 = 1; /近光灯开关 PTBD_PTBD0 = 1; /前雾灯灯开关 PTCD_PTCD1 = 1; /左转灯开关 PTAD_PTAD0 = 1; /右转灯开关 PTCD_PTCD2 = 1; /远光灯开关 PTBD_PTBD1 = 1; /小灯开关 /配置为输出 PTBDD_PTBDD6 = 1; PTADD_PTADD6 = 1; PTBDD_PTBDD5 = 1; PTADD_PTADD5 = 1; PTCDD_PTCDD4 = 1; PTBDD_PTBDD4 = 1; PTADD_PTADD4 = 1; PTBD_

12、PTBD6 = 0; /远光灯 PTAD_PTAD6 = 0; /小灯 PTBD_PTBD5 = 0; /左转灯 PTAD_PTAD5 = 0; /右转灯 PTCD_PTCD4 = 0; /近光灯灯 PTBD_PTBD4 = 0; /前雾灯灯 PTAD_PTAD4 = 0; /刹车指示灯 保留未用 void led_control() if(PTCD_PTCD2=1) /远光灯开关 PTBD_PTBD6 = 0; /远光灯关 else PTBD_PTBD6 = 1; /远光灯开 if(PTBD_PTBD1=1) /小灯开关 PTAD_PTAD6 = 0; /小灯关 else PTAD_PTAD

13、6 = 1; /小灯开 if(PTFD_PTFD7=1) /近光灯开关 PTCD_PTCD4 = 0; /近光灯关 else PTCD_PTCD4 = 1; /近光灯开 if(PTBD_PTBD0=1) /前雾灯开关 PTBD_PTBD4 = 0; /前雾灯关 else PTBD_PTBD4 = 1; /前雾灯开 void RTC_Init() RTCMOD= 0x00; RTCSC_RTIF = 0; /清除RTC标志位 RTCSC_RTCLKS = 0; /选择时钟源 00 1Khz 01 外部时钟 1x 内部时钟 RTCSC_RTIE = 1; /开定时器中断 RTCSC_RTCPS =

14、 13; /时钟源100预分频void main(void) DisableInterrupts; IO_Init(); RTC_Init(); EnableInterrupts; for(;) led_control(); /Send_CAN_Msg(); interrupt VectorNumber_Vrtc void RTI_ISR(void) /100ms定时中断 RTCSC_RTIF=1; /该位写0无效,写1清除RTIF位和实时中断 if(PTCD_PTCD1=1) /左转灯开关 flag1 = 0; PTBD_PTBD5 = 0; /左转灯关 else if(PTCD_PTCD1

15、=0) flag1+; if(flag1=4) flag1=0; PTBD_PTBD5=PTBD_PTBD5; /左转灯闪烁 if(PTAD_PTAD0=1) /右转灯开关 flag2 = 0; PTAD_PTAD5 = 0; /右转灯关 else if(PTAD_PTAD0=0) flag2+; if(flag2=4) flag2 = 0; PTAD_PTAD5=PTAD_PTAD5; /右转灯闪烁 实验项目名称智能天窗本地控制实验实验地点电装实训室A303实验时间2017.10.25一二节实验指导教师成绩一、实验目的1)掌握智能天窗控制的控制逻辑2)天窗控制编程基本方法3)在对原理图和外围

16、电路进行充分的了解4)编程实现智能天窗操作按钮对电机的控制、逻辑控制二、实验原理(或设计方案)智能天窗的逻辑图如下智能天窗的逻辑表如下智能天窗模块功能和定义表序号功能和定义动作显示形式与说明1天窗玻璃滑移控制向上按键天窗玻璃向前滑移(电机正转)向下按键天窗玻璃向后滑移(电机反转)2天窗玻璃斜升控制向上按键天窗玻璃向上斜升(电机正转)向下按键天窗玻璃向下斜降(电机反转)3阅读灯控制上按键闭合前阅读灯点亮(LED显示)下按键闭合后阅读灯点亮(LED显示)三、实验仪器设备、材料1) 智能控制实验箱一套2) BDM下载器一个3) 预装有Freescale开发软件的电脑四、实验步骤(或设计过程)1) 实

17、验相关关键原理图了解(如控制信号输入接口、控制量输出接口等)、输入输出接口定义; 控制信号输入电路原理图如下:INPUT0-INTPUT3、INPUT6为输入端口与外围按键连接,KRIN0-KRIN3、KRIN6与单片机个引脚相连。图1 控制信号输入端口(只列出两个端口其他的类似)引脚编号网络标号含义电平要求1INPUT0天窗玻璃滑移电机正转低电平有效2INPUT1天窗玻璃滑移电机反转低电平有效3INPUT2天窗玻璃斜升电机正转低电平有效4INPUT3天窗玻璃斜升电机反转低电平有效5INPUT4阅读灯控制低电平有效6INPUT5阅读灯控制低电平有效 表1 控制信号输入端口定义 图2中OUT0O

18、UT7分别于单片机个控制端口相连,单片机输出的控制信号经过ULN2803A后信号被放大直接输出控制继电器。 图3中继电器输出OUTPUT1,OUTPUT2和OUTPUT3,OUTPUT4分别控制电机转动(图示只列出一个继电器),端口定义如表2所示。图2 单片机控制信号输出图3 继电器控制接口含义电平要求OUTPUT0OUTPUT1天窗滑移电机两个输入端不能相等,相等电机停止转动OUTPUT2OUTPUT3天窗斜升电机两个输入端不能相等,相等电机停止转动表2 天窗电机控制端口定义2) 软件流程图 3) 软件模块功能介绍void Init_IO(void); 为单片机端口寄存器控制函数,定义端口为

19、输入还是输出;void RTC_Init(void);定时器初始化函数,定义为100ms中断一次;void MCU_Init(void);电机控制端口初始化函数,初始化为停止;void MCG_Init(void);时钟源初始化函数;void CANInit(void);CAN通信初始化函数;void Send_CAN_Msg(void);CAN发送数据函数;void CAN_TxData( UINT32 CAN_ID,UINT8 Msg_Length,UINT8 *CANTxData); CAN发送数据函数;void scankeystate(void);按键状态扫描函数,按键状态放在相应的

20、变量中;void MOTORcontrol(void);天窗电机控制函数;interrupt VectorNumber_Vrtc void RTC_ISR(void);定时器中断函数;interrupt VectorNumber_Vcanrx void CANRx_ISR(void);CAN发送数据中断函数。4) 实验程序见光盘资料5) 下载程序6) 程序下载后的操作,如按动某按钮,与之对应的电机会转动。五、实验过程原始记录(数据、图表、计算等)(或设计计算、图纸等)电子控制系统ECU是一个数字控制电路,并设有定时器、蜂鸣器和继电器等。其作用是接受开关输入的信息,通过数字电路进行逻辑运算,确定

21、继电器的动作,以控制天窗开闭.执行机构是用来执行驾驶员的指令,使天窗进行开闭。六、实验结果及分析(或设计总结) 通过两个输入变量便能够对电机进行正反转控制,天窗开闭过程就是电机的正反转过程,通过不断CodeWarrior软件环境下编程,不断实验,最终成功实现了智能天窗的控制。 这个实验必须了解天窗电机控制端口定义以及看懂继电器控制接口原理图,这样才能知道怎样通过编程对天窗进行控制。通过这个实验我们学会了汽车天窗电机的控制技术,熟练使用CodeWarrior集成开发环境写的编程,学会了天窗的硬件设计。培养了我们实际操作能力,把理论控制原理用于实践,联系实际,学以致用,衷心感谢学校给我们安排的这次

22、学习机会,谢谢老师的安排同时希望我们专业以后会有更多这样的机会。七、评阅意见 评阅人签字:评阅日期:附录#include <hidef.h> /* for EnableInterrupts macro */#include "derivative.h" /* include peripheral declarations */#include "mc9s08dz60.h"#include "includes.h"typedef unsigned short UINT16;typedef unsigned char UINT

23、8;typedef unsigned long UINT32;#define CAN_TXID 0x574 /* Transmit message */#define CAN_RXID 0x74 /* Receive message */#define STD_ID (UINT32)(CAN_TXID) << 21)UINT8 RxData8; UINT8 TxBuffer=0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00;UINT16 num;UINT8 TPMFlag;UINT8 FLAG;UINT8 temp1,MOUPsta,MODOWNst

24、a,MTUPsta,MTDOWNsta;UINT8 Bit7=0,Bit6=0,Bit5=0,Bit4=0,Bit3=0,Bit2=0,Bit1=1,Bit0=1,data,temp=0;UINT8 MOUPs,MODOWNs,MTUPs,MOT,MTDOWNs,MTT;UINT8 CANsendDelayFlag;void delay(long z)long x,y;x=z;y=z;while(x-);while(y-);while(z-);/CAN发送数据函数/void CAN_TxData( UINT32 CAN_ID,UINT8 Msg_Length,UINT8 *CANTxData)

25、 UINT8 TxBuffer = 0; UINT8 Index; if( CANsendDelayFlag!=0xff) return; if(!CANTFLG) /查找空闲发送缓冲区,并选中发送缓冲区 return;CANsendDelayFlag=0; CANTBSEL=CANTFLG; TxBuffer=CANTBSEL; *(UINT32 *) (UINT32)(&CANTIDR0)= CAN_ID; / CANTIDR0 = (UINT8)(CAN_ID)>>3); /CANTIDR1 = (UINT8)CAN_ID)&0x007)<<5);

26、 for (Index=0;Index<Msg_Length;Index+) *(&CANTDSR0 + Index)= CANTxDataIndex; CANTDLR =Msg_Length; /数据长度 CANTFLG =TxBuffer; / Start transmission /while(CANTFLG & TxBuffer)!=TxBuffer); /CAN发送数据函数/void Send_CAN_Msg(void) data=128*Bit7+64*Bit6+32*Bit5+16*Bit4+8*Bit3+4*Bit2+2*Bit1+Bit0; TxBuff

27、er1=data; CAN_TxData(STD_ID,sizeof(TxBuffer),TxBuffer);void main(void) Init_IO(); RTC_Init(); MCG_Init(); CANInit(); MCU_Init(); EnableInterrupts; for(;) if(temp=3) CANsendDelayFlag=0xff; Send_CAN_Msg(); temp=0; scankeystate(); MOTORcontrol(); void scankeystate(void) /按键状态扫描 if(!MOUP) MOUPsta=1; els

28、e MOUPsta=0;if(!MODOWN) MODOWNsta=1; else MODOWNsta=0; if(!MTUP) MTUPsta=1; else MTUPsta=0; if(!MTDOWN) MTDOWNsta=1; else MTDOWNsta=0;void MOTORcontrol(void) /电机控制 if(MOUPsta) /天窗玻璃滑移电机正反转 M1_OUT0=1; M1_OUT1=0; else if(MODOWNsta) M1_OUT0=0; M1_OUT1=1; else M1_OUT0=1; M1_OUT1=1; if(MTUPsta) /天窗玻璃斜升控制

29、电机正反转 M2_OUT2=1; M2_OUT3=0; else if(MTDOWNsta) M2_OUT2=0; M2_OUT3=1; else M2_OUT2=1; M2_OUT3=1; if(LIGHTON=0)&&(LIGHTOFF=0) /阅读灯控制 M3_OUT4=1; M3_OUT5=1; else if(LIGHTON=0) M3_OUT4=1; M3_OUT5=0; else if(LIGHTOFF=0) M3_OUT4=0; M3_OUT5=1; else M3_OUT4=0; M3_OUT5=0; interrupt VectorNumber_Vrtc v

30、oid RTC_ISR(void) RTCSC_RTIF=1; temp+; interrupt VectorNumber_Vcanrx void CANRx_ISR(void) UINT8 Msg_Length; UINT8 Index; Msg_Length=(CANRDLR&0x0F); for (Index=0; Index < Msg_Length; Index+) RxDataIndex = *(&CANRDSR0 + Index); CANRFLG_RXF = 1; /* Clear reception flag */ 实验项目名称车门本地控制实验实验地点电

31、装实验室A303实验时间2017.10.30一二节实验指导教师成绩一、实验目的1)掌握车门控制的控制逻辑2)车门控制编程基本方法3)在对原理图和外围电路进行充分的了解4)编程实现车门操作按钮对电机的控制、逻辑控制二、实验原理(或设计方案)智能天窗的逻辑图如下智能天窗的逻辑表如下车门模块功能和定义表序号功能和定义动作显示形式与说明1右车门玻璃滑移控制向上按键右车门玻璃向前滑移(电机正转)向下按键右车门玻璃向后滑移(电机反转)2左车门玻璃滑移控制向上按键左车门玻璃向前滑移(电机正转)向下按键左车门玻璃向后滑移(电机反转)3左后视镜上按键闭合左后视镜上移(电机正转)下按键闭合左后视镜下移(电机反转)

32、左按键闭合左后视镜左移(电机正转)右按键闭合左后视镜右移(电机反转)上按键闭合左后视镜上移(电机正转)下按键闭合左后视镜下移(电机反转)4右后视镜左按键闭合左后视镜左移(电机正转)右按键闭合左后视镜右移(电机反转)三、实验仪器设备、材料1)实验控制对象模型的小车2)烧写程序的下载器3)一台电脑四、实验步骤(或设计过程)1.首先需要掌握车窗和前视镜控制的原理,其是通过控制电机的正反转从而控制车窗和前视镜的移动。2.阅读相关的程序,了解相关的定义,知道I/O口的含义以及其控制的相应电机。/输入信号#define LRUP PTAD_PTAD0 /选择左视镜#define LRDOWN PTCD_P

33、TCD1 /选择右视镜#define RFUP PTBD_PTBD0 /右前窗反转输入#define KRIN12 PTCD_PTCD2 /右前窗反转输入#define RFDOWN PTCD_PTCD0 /右前窗正转输入#define RRDOWN PTCD_PTCD2 /右前窗正转输入#define LFUP PTDD_PTDD7 /左前窗正转输入#define LFDOWN PTBD_PTBD1 /左前窗反转输入#define KRIN8 PTFD_PTFD7 /上#define KRIN9 PTDD_PTDD5 /下#define KRIN10 PTDD_PTDD4 /左#define

34、 KRIN11 PTDD_PTDD3 /右 /电机方向控制端口#define M_OUT1 PTBD_PTBD6 /左前窗输出#define M_OUT4 PTAD_PTAD5 /左前窗输出#define M_OUT2 PTAD_PTAD6 /右前窗输出#define M_OUT3 PTBD_PTBD5 /右前窗输出#define M_OUT8 PTAD_PTAD3 /左后视镜上下输出#define M_OUT5 PTCD_PTCD4 /左后视镜左右输出#define M_OUT9 PTBD_PTBD3 /左后视镜电机公共端#define M_OUT10 PTCD_PTCD3 /右后视镜上下输

35、出#define M_OUT7 PTAD_PTAD4 /右后视镜左右输出#define M_OUT11 PTAD_PTAD2 /右后视镜电机公共端3.根据相应的I/O口输入输出配置,在相应的电机控制程序中编写相关的控制电机程序。4.编写好程序后就用下载器下载到控制器上实现对车窗和前车镜的控制,如果编写的程序不能正确控制车窗和车镜,就再进行程序的编写直到能控制为止。五、实验过程原始记录(数据、图表、计算等)(或设计计算、图纸等)通过控制相应按钮能够实现对左右车门、左右后视镜的控制。六、实验结果及分析(或设计总结)通过本次实验,了解了对电机的控制,学会了电机控制的原理图,了解相关的程序控制语句,

36、通过两个输入变量便能够对电机进行正反转控制,车门后视镜玻璃升降过程就是电机的正反转过程,通过不断CodeWarrior软件环境下编程,不断实验,最终成功实现了车门的控制。 这个实验必须了解车门后视镜电机控制端口定义以及看懂继电器控制接口原理图,这样才能知道怎样通过编程对车门后视镜进行控制。通过这个实验我们学会了汽车电机的控制技术,熟练使用CodeWarrior集成开发环境写的编程,学会了车门后视镜的硬件设计。培养了我们实际操作能力,把理论控制原理用于实践,联系实际,学以致用,衷心感谢学校给我们安排的这次学习机会,谢谢老师的安排同时希望我们专业以后会有更多这样的机会。七、评阅意见 评阅人签字:评

37、阅日期:附录/头文件#include <hidef.h> /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */#include <stdlib.h>/#include "includes.h"/#include "main_asm.h" /* interface to the assembly module */宏定义#define RRUP PTBD_PTBD1 /#define

38、 RRDOWN PTCD_PTCD2 /#define LRUP PTAD_PTAD0 /选择左视镜#define LRDOWN PTCD_PTCD1 /选择右视镜#define RFUP PTBD_PTBD0 /右前窗正转输入#define RFDOWN PTCD_PTCD0 /右前窗转输入#define LFUP PTDD_PTDD7 /左前窗转输入#define LFDOWN PTDD_PTDD6 /左前窗反转输入#define KRIN8 PTFD_PTFD7 /上#define KRIN9 PTDD_PTDD5 /下#define KRIN10 PTDD_PTDD4 /左#defin

39、e KRIN11 PTDD_PTDD3 /右#define KRIN12 PTDD_PTDD2 /电机方向控制端口#define M_OUT0 PTCD_PTCD5 /左前窗输出#define M_OUT1 PTBD_PTBD6#define M_OUT2 PTAD_PTAD6 /右前窗输出#define M_OUT3 PTBD_PTBD5 #define M_OUT4 PTAD_PTAD5 /左后视镜前后输出#define M_OUT5 PTCD_PTCD4#define M_OUT6 PTBD_PTBD4 /右后视镜前后输出#define M_OUT7 PTAD_PTAD4#define

40、M_OUT8 PTAD_PTAD3 /左后视镜上下输出#define M_OUT9 PTBD_PTBD3#define M_OUT10 PTCD_PTCD3 /右后视镜上下输出#define M_OUT11 PTAD_PTAD2#define OUT12 PTBD_PTBD2 /保留void Init_IO(void) PTADD_PTADD0=0; PTBDD_PTBDD1=0; PTCDD_PTCDD2=0; PTCDD_PTCDD1=0; PTBDD_PTBDD0=0; PTCDD_PTCDD0=0; PTDDD_PTDDD7=0; PTFDD_PTFDD7=0; PTDDD_PTDDD

41、2=0; PTDDD_PTDDD3=0; PTDDD_PTDDD4=0; PTDDD_PTDDD5=0; PTDDD_PTDDD6=0; PTBDD_PTBDD6=1; PTCDD_PTCDD5=1; PTADD_PTADD6=1; PTBDD_PTBDD5=1; PTADD_PTADD5=1; PTCDD_PTCDD4=1; PTBDD_PTBDD4=1; PTADD_PTADD4=1; PTADD_PTADD3=1; PTBDD_PTBDD3=1; PTCDD_PTCDD3=1; PTADD_PTADD2=1; PTBDD_PTBDD2=1; void MCU_Init(void) M_O

42、UT0=0; M_OUT1=0; M_OUT2=0; M_OUT3=0; M_OUT4=0; M_OUT5=0; M_OUT6=0; M_OUT7=0; M_OUT8=0; M_OUT9=0; M_OUT10=0; M_OUT11=0; OUT12=1; KRIN8=1; KRIN9=1; KRIN10=1; KRIN11=1; void MOTORcontrol(void) if(PTDD_PTDD7=0) /左前窗 M_OUT4=0; M_OUT1=1; else if(PTBD_PTBD1=0) M_OUT4=1; M_OUT1=0; else M_OUT4=0; M_OUT1=0; i

43、f(PTBD_PTBD0&&PTCD_PTCD2)=0 ) /右前窗 M_OUT2=1; M_OUT3=0; else if(PTCD_PTCD0&&PTDD_PTDD2)=0) M_OUT2=0; M_OUT3=1; else M_OUT2=0; M_OUT3=0; /选择左后视镜 if(PTAD_PTAD0=0) /up if(PTFD_PTFD7=0) M_OUT8=0; /上下电机输出 M_OUT9=1;/M_out9作为电机公共端 /down else if(PTDD_PTDD5=0) M_OUT8=1; M_OUT9=0; else M_OUT8=M

44、_OUT9; /left if(PTDD_PTDD4=0) M_OUT5=0;/左右电机输出 M_OUT9=1; /right else if(PTDD_PTDD3=0) M_OUT5=1; M_OUT9=0; else M_OUT5=M_OUT9; /选择右后视镜 if(PTCD_PTCD1=0) /up if(PTFD_PTFD7=0) M_OUT10=0; /上下电机输出M_OUT11=1;/M_out11作为电机公共端 /down else if(PTDD_PTDD5=0) M_OUT10=1; M_OUT11=0; else M_OUT10=M_OUT11; /left if(PTDD_PTDD4=0) M_OUT7=0;/左右电机输出 M_OUT11=1; /right else if(PTDD_PTDD3=0) M_OUT7=1; M_OUT11=0; else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论