220册《汽车电子与控制》实验指导书.docx
- 文档编号:6685827
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:51
- 大小:2.62MB
220册《汽车电子与控制》实验指导书.docx
《220册《汽车电子与控制》实验指导书.docx》由会员分享,可在线阅读,更多相关《220册《汽车电子与控制》实验指导书.docx(51页珍藏版)》请在冰豆网上搜索。
220册《汽车电子与控制》实验指导书
《汽车电子与控制》
实验指导书
班级:
学号:
姓名:
成绩:
汽车工程系
2013年5月
一、汽车电子实验系统简介
汽车电子实验系统基于Freescale单片机技术,系统集成了典型的汽车电子控制应用。
内容包括传感器信号采集、数据显示、总线通讯、执行部件控制等,通过在实验系统中选择不同的单片机和选择不同的模块,可以对多种单片机及多种控制方法进行学习。
系统结构如图1.1所示。
单片机最小系统模块采用欧式插座与母板连接,拔插可更换。
功能跳线区有4个位置,适用于单片机管脚较少,不能同时与各个功能模块连接的情况。
本实验指导书以112引脚16位单片机MC9S12D64说明本系统使用。
二、单片机最小系统模块
MC9S12D64引脚分布如图2.1所示:
图2.1MC9S12D64引脚分布
MC9S12D64单片机最小系统模块插座定义如图2.2及表2.1所示,模块上设计有通讯接口、电源口、跳线、复位按键等,详见模块实物。
图2.2MC9S12D64单片机最小系统模块插座定义
表2.1MC9S12D64最小系统模块插孔功能定义
MC9S12D64
单片机最小系统模块插座孔编号
功能或连接的单片机引脚(括号内为单片机引脚号),NC为无连接
1
XADDR16/PK2(6)
2
PWM3/KWP3/PP3
(1)
3
PS6/SCK0(95)
4
PAD15/AN15/ETRIG1(82)
5
PS7/SS0(96)
6
PP7/KWP7/PWM7(109)
7
PS5/MOSI0(94)
8
PP4/KWP4/PWM4(112)
9
PS4/MISO0(93)
10
PP5/KWP5/PWM5(111)
11
PJ6/KWJ6/SDA/RXCAN0(99)
12
IOC0/PT0(9)
13
PJ7/KWJ7/SCL/TXCAN0(98)
14
XADDR15/PK1(7)
15
PM0/RXCAN0/RXB(105)
16
PWM1/KWP1/PP1(3)
17
PM1/TXCAN0/TXB(104)
18
PWM2/KWP2/PP2
(2)
19
PS2/RXD1(91)
20
IOC4/PT4(15)
21
XADDR14/PK0(8)
22
IOC5/PT5(16)
23
PS3/TXD1(92)
24
IOC6/PT6(17)
25
XADDR19/PK5(19)
26
IOC7/PT7(18)
27
XADDR18/PK4(20)
28
PP6/KWP6/PWM6(110)
29
IOC2/PT2(11)
30
IOC1/PT1(10)
31
LSTRB/TAGLO/PE3(53)
32
PAD07/AN07/ETRIG0(81)
33
R/W/PE2(54)
34
IOC3/PT3(12)
35
PK7/ECS/ROMCTL(108)
36
KWJ1/PJ1(21)
37
ADDR0/DATA0/PB0(24)
38
KWJ0/PJ0(22)
39
ADDR2/DATA2/PB2(26)
40
ADDR1/DATA1/PB1(25)
41
PM7(87)
42
ADDR3/DATA3/PB3(27)
43
PM6(88)
44
ADDR4/DATA4/PB4(28)
45
PM5/TXCAN0/SCK0(100)
MC9S12D64(表2.1续)
单片机最小系统模块插座孔编号
功能或连接的单片机引脚(括号内为单片机引脚号),NC为无连接
46
ADDR5/DATA5/PB5(29)
47
PM4/RXCAN0/MOSI(101)
48
ADDR6/DATA6/PB6(30)
49
ADDR7/DATA7/PB7(31)
50
PA0/ADDR8/DATA8(57)
51
PA1/ADDR9DATA9(58)
52
PWM0/KWP0/PP0(4)
53
PA2/ADDR10/DATA10(59)
54
PAD14/AN14(80)
55
PA3/ADDR11/DATA11(60)
56
PAD06/AN06(79)
57
PA4/ADDR12/DATA12(61)
58
KWH7/PH7(32)
59
PA5/ADDR13/DATA13(62)
60
KWH6/PH6(33)
61
PA6/ADDR14/DATA14(63)
62
KWH5/PH5(34)
63
PA7/ADDR15/DATA15(64)
64
KWH4/PH4(35)
65~68
+12V
69~72
+5V
73~76
GND
77
PAD00/AN00(67)
78
PAD08/AN08(68)
79
PAD01/AN01(69)
80
KWH3/PH3(49)
81
PAD09/AN09(70)
82
KWH2/PH2(50)
83
PAD02/AN02(71)
84
KWH1/PH1(51)
85
PAD10/AN10(72)
86
KWH0/PH0(52)
87
PAD03/AN03(73)
88
NC
89
PAD11/AN11(74)
90
NC
91
PAD04/AN04(75)
92
NC
93
PAD12/AN12(76)
94
NC
95
PAD05/AN05(77)
96
NC
97
PAD13/AN13(78)
98~128
NC
三、系统功能模块介绍
3.1交通灯模块
交通灯模块如图3.1所示,所有LED灯采用灌电流驱动方式,当对应的单片机引脚输出低电平时灯亮,输出高电平时灯灭。
控制引脚对应如表3.1所示。
图3.1交通灯模块
表3.1交通灯MC9S12D64控制引脚
MC9S12D64(功能跳线不插)
灯号
单片机控制引脚
灯号
单片机控制引脚
1
PA7/ADDR15/DATA15(64)
9
PM7(87)
2
PA6/ADDR14/DATA14(63)
10
ADDR2/DATA2/PB2(26)
3
PA5/ADDR13/DATA13(62)
11
ADDR0/DATA0/PB0(24)
4
PM5/TXCAN0/SCK0(100)
12
PM6(88)
5
PA4/ADDR12/DATA12(61)
13
PK7/ECS/ROMCTL(108)
6
PA3/ADDR11/DATA11(60)
14
R/W/PE2(54)
7
PA2/ADDR10/DATA10(59)
15
LSTRB/TAGLO/PE3(53)
8
PA1/ADDR9DATA9(58)
16
PM4/RXCAN0/MOSI(101)
17
ADDR7/DATA7/PB7(31)
3.2继电器控制模块
继电器控制模块如图3.2所示,图中的继电器是一种合二为一的双继电器,其内部实际上是两个独立的继电器。
两个发光二级管作为指示灯,两者反极性并联。
不同的电流方向将使得其中一个指示灯亮。
控制继电器可切换电流方向,如图3.2中电路图所示,绿色指示灯点亮。
此电路常用于汽车电动玻璃升降器。
图3.2继电器控制模块
该模块对应的单片机控制引脚见表3.2
表3.2继电器控制模块单片机控制引脚
MC9S12D64(功能跳线不插)
继电器1
继电器2
XADDR18/PK4(20)
XADDR19/PK5(19)
3.3蜂鸣器模块
该模块控制蜂鸣器发声,向该模块输入方波信号,蜂鸣器内膜片振动发声。
功能跳线不插,MC9S12D64控制引脚为PWM3/KWP3/PP3
(1)
图3.3蜂鸣器模块
3.4数码管显示控制模块
该模块集成数码管控制显示芯片TEC9607控制5个数码管扫描显示,单片机通过SPI通讯方式将显示数据传送至TEC9607。
图3.4数码管显示控制模块
该模块对应的单片机控制引脚见表3.3
表3.3数码管显示模块单片机控制引脚
MC9S12D64(功能跳线不插)
时钟(SCP)
片选(LCP)
数据(SI)
PWM2/KWP2/PP2
(2)
XADDR15/PK1(7)
PWM1/KWP1/PP1(3)
3.5直流电机控制模块
该模块采用脉宽调制(PWM)控制加在RF371直流电机上的平均电压,从而达到调速目的,使用时PWM频率不低于2KHz,这个带编码器测速盘电机可取得较好的调速效果。
转速传感器输出频率与直流风扇转速对应的脉冲,旋转一周产生334个脉冲方波,单片机采集该转速脉冲信号实现闭环调节。
该模块可用于电机PID转速控制实验。
表3.4直流电机参数
电压
空载电流
转速
堵转电流
5V
35mA
1000转
0.4A
12V
42mA
4300转
1A
24V
52mA
8600转
1.8A
电机的接线方法是:
左边的两根黄线是电机引线,绿色和白色线是两组脉冲输出线,单组线就能测量转速,双脉冲可以判断旋转方向,红色的线接3V至5V电源给测速芯片供电,黑色线接地。
图3.5直流电机控制模块
该模块对应的单片机控制引脚见表3.5
表3.5直流电机控制模块单片机控制引脚
MC9S12D64(功能跳线不插)
PWM控制
转速采集
PP5/KWP5/PWM5(111)
IOC0/PT0(9)
3.6键盘矩阵模块
该模块采用行列扫描方法实现了8根控制引脚扫描16个按键,从而节约了单片机引脚资源。
模块中有4根行扫描线与4根列扫描线,以此构成4乘4键盘矩阵。
图3.6键盘矩阵模块
该模块对应的单片机控制引脚见表3.6
表3.6键盘矩阵模块单片机控制引脚
MC9S12D64(功能跳线不插)
行扫描线
列扫描线
KWH7/PH7(32)
KWH3/PH3(49)
KWH6/PH6(33)
KWH2/PH2(50)
KWH5/PH5(34)
KWH1/PH1(51)
KWH4/PH4(35)
KWH0/PH0(52)
3.7模数转换模块
该模块采用2个电位器输出电压信号用于数模转换,信号由单片机AD采集,图3.7两个跳线用于选择信号源,插右边选择电位器信号,插左边选择由接线端子输入的外部信号。
图3.7数模转换模块
该模块对应的单片机控制引脚见表3.7
表3.7数模转换模块单片机控制引脚
MC9S12D64(功能跳线不插)
电位器1
电位器2
PAD14/AN14(80)
PAD06/AN06(79)
3.8拨码开关模块
该模块采用1个8位拨码开关产生相应高低电平信号,从而指示拨码开关所给定的二进制数,8位拨码开关相当于8个小开关。
图3.8拨码开关模块
该模块对应的单片机控制引脚见表3.8
表3.8拨码开关模块单片机控制引脚
MC9S12D64(功能跳线不插)
拨码开关1
KWJ1/PJ1(21)
拨码开关2
KWJ0/PJ0(22)
拨码开关3
ADDR1/DATA1/PB1(25)
拨码开关4
ADDR3/DATA3/PB3(27)
拨码开关5
ADDR4/DATA4/PB4(28)
拨码开关6
ADDR5/DATA5/PB5(29)
拨码开关7
ADDR6/DATA6/PB6(30)
拨码开关8
PA0/ADDR8/DATA8(57)
3.9独立按键模块
独立按键模块采用4个独立按键(非扫描)产生相应高低电平信号,一个单片机引脚对应一个按键,按键按下时产生低电平。
图3.9独立按键模块
该模块对应的单片机控制引脚见表3.9
表3.9独立按键模块单片机控制引脚
MC9S12D64(功能跳线不插)
KEY1
KEY2
KEY3
KEY4
IOC6/PT6(17)
IOC5/PT5(16)
IOC4/PT4(15)
IOC7/PT7(18)
3.10光敏传感器模块
通过光敏传感器控制LED指示灯亮灭,将光敏传感器信号输入到单片机进行采集,由单片机根据采集的信号控制灯亮与灭。
图3.10光敏传感器模块
该模块对应的单片机控制引脚见表3.10
表3.10光敏传感器模块单片机控制引脚
MC9S12D64(功能跳线不插)
光敏传感器采集
指示灯控制
PAD07/AN07/ETRIG0(81)
PP6/KWP6/PWM6(110)
实验一单片机开关量控制
1.实验目的及器材
1.1了解CodeWarrior集成开发环境的基本操作,学会独立使用该开发工具;
1.2通过运行简单的例子,初步了解MC9S12D64C语言的使用以及MC9S12D64C语言程序编程框架;了解MC9S12D64单片机的初始化方法和端口定义;
1.3掌握对MC9S12D64单片机进行在线调试的方法。
1.4熟悉基于MC9S12D64模块的汽车电子实验箱系统。
1.5实验器材是MC9S12D64微控制器汽车电子实验箱系统。
2.预习内容
3.1MC9S12D64微控制器的寄存器地址分配。
3.2CodeWarrior开发环境及飞思卡尔单片机C语言基础知识。
3.软件设计要求
编写软件代码,实现17个LED交通灯逐个依次点亮的功能。
同时完成第7部分编程题的内容。
`
4.实验原理
4.1MC9S12D64微控制器教学实验箱使用说明
图1-1实验箱示意图
微控制器教学实验箱的基本使用方法如图1-1所示,在实验箱底板上插接MC9S12D64系统模块,该模块通过9针串口线与上位PC机连接,在上位PC机中运行微控制器教学实验系统软件实现串行通讯功能,完成在线编程、数据传输等功能。
4.2交通灯控制模块LED位置说明
图1-2LED位置示意图
表1-1LED引脚说明
MC9S12D64(功能跳线不插)
灯号
单片机控制引脚
灯号
单片机控制引脚
1
PA7/ADDR15/DATA15(64)
9
PM7(87)
2
PA6/ADDR14/DATA14(63)
10
ADDR2/DATA2/PB2(26)
3
PA5/ADDR13/DATA13(62)
11
ADDR0/DATA0/PB0(24)
4
PM5/TXCAN0/SCK0(100)
12
PM6(88)
5
PA4/ADDR12/DATA12(61)
13
PK7/ECS/ROMCTL(108)
6
PA3/ADDR11/DATA11(60)
14
R/W/PE2(54)
7
PA2/ADDR10/DATA10(59)
15
LSTRB/TAGLO/PE3(53)
8
PA1/ADDR9DATA9(58)
16
PM4/RXCAN0/MOSI(101)
17
ADDR7/DATA7/PB7(31)
4.3LED控制硬件接口电路
LED显示控制硬件接口电路如图1-3所示,当微控制器输出引脚为高电平时,LED熄灭;当微控制器输出引脚为低电平时,LED亮!
!
!
图1-3LED硬件电路图
4.4按键控制硬件接口电路
按键信号输入硬件接口电路如图1-4所示,按键松开为开路状态,微控制器引脚为高电平;按键按下,接通回路,微控制器引脚为低电平。
图1-4按键电路示意图
图1.5独立按键模块
该模块对应的单片机控制引脚见表1.2
表1.2独立按键模块单片机控制引脚
MC9S12D64(功能跳线不插)
KEY1
KEY2
KEY3
KEY4
IOC6/PT6(17)
IOC5/PT5(16)
IOC4/PT4(15)
IOC7/PT7(18)
5.实验步骤
5.1创建工程
打开CodeWarrior后显示如图所示:
选择
出现如图所示界面
由于本试验箱使用的是型号为MC9S12D64的单片机,所以选择MC9S12D64。
“Chooseyourdefaultconnection”选项指的是以何种方式将编译后的源代码写入到芯片里,有几个选择:
①“FullChipSimulation”飞思卡尔全芯片仿真模式,本实验用的串口线连接即选择此方式。
②“PEMultilink/CyclonePro”指的是用PE公司的硬件仿真器进行调试写入,原理如下图:
③“TBDML”选项,应用USBDM进行调试。
BDM(BackgroundDebuggingMode)是一种调试模式。
通过BDM接口可以完成基本的调试功能,例如:
设置断点、读写内存、读写寄存器、下载程序、单步执行程序、运行程序、停止程序运行等。
如下图所示:
5.2单击下一步进入如下对话框
选择编程语言
,所有实验采用的都是C语言。
其中“Relocatableassembly”表示相对地址汇编语言,程序代码在Flash的存储位置是由链接器指定,“C++”指的是C++语言,灰色的“Absoluteassembly”表示绝对地址的汇编语言,指程序代码在Flash的存储位置是由程序员指定的。
填写项目名称,后缀mcp不能更改,设置工程的存放位置,设置完毕后单击下一步
5.3选择None,“DeviceInitialization”表示设备初始化,“ProcessorExpert”表示专家系统。
5.4接下来进行一些选项设置,一般选择默认即可。
5.5PC-Lint功能可以查找到一般的程序错误或者是源程序中的可疑行错误,便于我们对程序进行排错。
如下所示:
5.6单击“完成”,选取所用到的MCU类型,实验箱所用到的处理器是MC9S12D64,属于VPVE型号的112脚的LQFP封装芯片。
在正确的芯片类型上打勾即可。
5.7进入CodeWarrior的主界面,如下所示:
5.8在main中编写主程序,主界面如下
5.9源代码写完以后,进入编译调试,
点击编译
,如果文件编译成功,会自动生成一个后缀名为*.S19的编译文件,
选择Project.abs.s19,将这个编译后的这个文件写入到MC9S12D64模块中。
5.10运行在线编程程序,界面如下:
设置com1口,波特率为38400,打开串口。
然后用手按住实验箱的bootload按键不放,再按下实验箱的reset按键,然后依次松开reset按键和bootload按键,利用此方法可以进行复位操作。
5.11选择步骤6.6编译生成的文件*.S19。
用鼠标点击“发送”按钮,就会出现蓝色的进度
条,结束后,程序就已经烧写到MC9S12D64微控制器中去了,如果程序和实验箱都没有问题的话,此时可以看到实验现象了。
5.12如果烧写程序过程中,出现握手信号错误,造成传输失败,检查波特率是否为38400,串口是否设置为com1口,手应该一直按住bootload按键(因为按键质量的问题,可能造成bootload和reset按键接触不良),检查白色9针串口线是否连接正确,实验箱电源是否打开,同时关闭其他使用串口的程序,或其他烧写程序。
6.思考题
6.1请简单介绍一下I/O接口以及A口的三个寄存器。
6.2嵌入式系统总是要用户对变量或寄存器进行位操作。
给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。
在以上两个操作中,要保持其它位不变。
6.3如何在C中初始化一个字符数组。
6.4如何在C中为一个数组分配空间。
6.5写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
6.6单片机的主程序永远不能结束,简述C编写死循环的几种方法。
7.编程题
7.1编写软件代码,实现LED1、LED3、LED5、LED7亮,且LED2、LED4、LED6、LED8灭的功能。
延时2秒后,8个LED的状态反向。
7.2编写软件代码,实现循环按顺序LED1、LED2、LED3、LED4、LED5、LED6、LED7、LED8、LED9、LED10、LED11、LED12、LED13、LED14、LED15、LED16、LED17依次点亮,每次只有1个灯亮,时间间隔为0.2秒。
7.3编写软件代码,实现循环按顺序LED1、LED2、LED3、LED10、LED11、LED12、LED4、LED5、LED6、LED9、LED8、LED7依次点亮,每次只有1个灯亮,时间间隔为0.2秒。
当LED7由亮变灭时,LED13、LED14、LED15、LED16、LED17同时亮。
7.4利用PORTC0实现转向闪光继电器以0.5Hz频率工作,即高、低电平交替持续1秒,连续工作。
7.5编写软件代码,采集按键1、按键2、按键3、按键4的状态,自由确定区分形式,通过数码管显示按下哪个按键。
7.6综合使用发光二极管及按键,编写程序,通过按键控制发光二极管亮、灭,实现简单应用系统的控制,可以自行设定按键选取及发光二极管亮、灭功能。
8.主程序代码
unsignedcharloop_index;//定义变量,记录点亮LED序号
DDRA=0xFE;//定义PORTA端口为输出口1,2,3,4,5,6,7
DDRM=0xF0;//M5,M4,M6,M7
DDRB=0x85;//B0,B2,B7
DDRK=0x80;//K7,
DDRE=0x0C;//E3,E2
PORTA=0xFF;
PTM=0xFF;
PORTB=0xFF;
PORTK=0xFF;
PORTE=0xFF;
loop_index=1;//变量初始化,程序起始点亮灯D0
for(;;)
{
switch(loop_index)
{
case1:
PORTA_BIT7=0;PORTB_BIT7=1;break;
case2:
PORTA_BIT6=0;PORTA_BIT7=1;;break;
case3:
PORTA_BIT5=0;PORTA_BIT6=1;break;
case4:
PTM_PTM5=0;PORTA_BIT5=1;break;
case5:
PORTA_BIT4=0;PTM_PTM5=1;break;
case6:
PORTA_BIT3=0;PORTA_BIT4=1;break;
case7:
PORTA_BIT2=0;PORTA_BIT3=1;break;
case8:
PORTA_BIT1=0;PORTA_BIT2=1;break;
case9:
PTM_PTM7=0;PORTA_BIT1=1;break;
case10:
PORTB_BIT2=0;PTM_PTM7=1;break;
case11:
PORTB_BIT0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车电子与控制 220 汽车 电子 控制 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)