智能车电磁组报告.docx
- 文档编号:3006333
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:15
- 大小:366.93KB
智能车电磁组报告.docx
《智能车电磁组报告.docx》由会员分享,可在线阅读,更多相关《智能车电磁组报告.docx(15页珍藏版)》请在冰豆网上搜索。
智能车电磁组报告
目录
一.学分认定书………………………………………………XX
二.实验报告……………………………………………………XX
三.智能车制作研究报告………………………………………XX
四.心得体会…………………………………………………XX
五.附录:
程序源代码……………………………………………XX
(要求:
给出一级目录,宋体加粗,四号字,1.5倍行距。
)
一.学分认定书(每个队员1份)
二.实验报告
实验一.通用输入输出口和定时中断
一、实验目的
1.掌握MC9S12XS128汇编语言对通用端口的操作指令。
2.掌握程序中指令循环和跳转的方法。
3.学会使用程序延时,并会大概估算延迟时间。
二、实验任务
1.将PORTA口接八位DIP开关,PORTB口接七段数码管显示,PORTK控制四个数码管其中某一个显示。
2.采用定时中断方式,利用八位DIP开关输入二进制数,数码管显示其十进制数。
三、实验内容
实验中每个通用输入输出端口要用到的寄存器都有两个,端口定义寄存器和端口方向寄存器。
以A端口为例,端口定义寄存器为PORTA和端口方向寄存器为DDRA。
在MC9S12XS128的DATASHEET上可以查到DDRA的地址是0x00(输入),DDRB的地址是0xFF(输出),DDRK的地址是0xFF(输出)。
则初始化端口PORTA、PORTB、PORTK的语句为:
voidinitGPIO(void){
DDRA=0x00;
DDRB=0xFF;
DDRK=0xFF;
}
置0表示该位为接受输入位,置1表示该位为输出位。
MC9S12DP256/DG128中可以使用实时时钟或增强型定时器来完成定时功能,二者是相互独立的。
本实验中用实时时钟定时。
实时时钟的可以通过对外部晶振分频而得到一个定时中断。
RTICTL是实时时钟控制寄存器,向该寄存器写入内容,通过查表会得到一个分频因子,外部晶振除以分频因子就是中断的频率了。
因为外部晶振频率是16MHz,要得到1ms中断一次,需要16000分频。
在MC9S12XS128的DATASHEET上可以查到RTICTL设置为0x8F,中断允许寄存器CRGINT设置为0x80(开中断)。
则初始化中断程序为:
voidInitRTI(void){
RTICTL=0x8F;
CRGINT=0x80;
}
一但进入中断,即开始读PORTA口的二进制数,并转换为十进制,通过PORTB口显示出来。
由于是数码管动态显示,PORTK口控制四个数码管轮流显示。
具体程序见开发板例程中——SevenSegmentDigitalTube。
四、思考题
1.如果不用PORTA口做输入,直接让单片机内部从0—9999自动计数,并在PORTB口显示出计数过程,PORTK口控制四个数码管轮流显示,程序该如何改?
对程序的修改如下:
voidinterrupt7RTI_INT(void){
time++;
if(time>=50){
time=0;
Count_Num++;
LedData[0]=Count_Num/1000%10;
LedData[1]=Count_Num/100%10;
LedData[2]=Count_Num/10%10;
LedData[3]=Count_Num%10;
if(Count_Num>=9999){
Count_Num=0;
}
}
PORTK=0x01< PORTB=LedCode[LedData[LedNum]]; LedNum++; if(LedNum>=4)LedNum=0; CRGFLG=0x80; } 这样便可以在数码管中显示动态显示0000—9999,经试验检测该方法正确。 实验二.A/D转换实验 一、实验目的 了解S12单片机ADC模块的使用方法。 二、实验任务 用S12的ADC模块将一路(或多路)模拟电平转换成数字量,并将转换结果显示在数码管上,或者通过SCI发送到PC终端显示出来。 三、实验内容 1、与S12的ADC模块相关的寄存器如下,各寄存器的详细定义可参阅datasheet。 ATDCTL2: 控制寄存器。 主要设置A/D标志位清除方式、A/D采样触发方式、是否允许A/D采样完成中断等。 ATDCTL3: 控制寄存器。 主要设置每次A/D转换采样几路电平、采样结果的存储方式等。 ATDCTL4: 控制寄存器。 主要设置A/D转换精度、A/D转换时钟频率等。 ATDCTL5: 控制寄存器。 主要设置A/D转换结果的对齐方式和数据类型,以及A/D的采样模式(连续采样/单词采样,顺序转换/单通道转换等) ATDSTAT0: 状态标志寄存器。 包括A/D转换完成标志,出错标志、转换结果存储索引等标志位。 ATDTEST1: 测试寄存器。 ATDSTAT1: 标志寄存器。 标识一次A/D转换中各通道的完成情况。 以上寄存器的具体内容和其他与ADC模块相关的寄存器请参看datasheet相应章节。 2、本实验采取AN14单通道连续AD转换模式,且结果存放在ATD0DR0L中,转换序列长度为1,转换精度为8位,在freeze模式下继续转换。 通过查看datasheet,得出ATD0初始化程序如下: voidATD0_init(void){ ATD0CTL1=0x0e;//转换精度为8位,从AN14通道转换 ATD0CTL2=0x40;//禁止外部触发,中断禁止 ATD0CTL2_ASCIE=1;//允许中断 ATD0CTL3=0x88;//转换序列长度为1,在freeze模式下继续转换 ATD0CTL4=0xFF; ATD0CTL5=0x2E;//单通道连续AD转换模式 } 具体程序见开发板例程中——testAN14。 四、预习要求 (1)参考datasheet明确ADC各寄存器的作用,主要思考以下问题: 1.A/D转换的时钟应该是多少? 如何设置分频因子? 答: A/D转换的时钟应该是如下: 其中PRS为ATDCLT4中的后五位。 2.A/D转换如何启动? 有几种启动方式? 分别如何设置相关寄存器? 答: 可以用ATD0CLT2去给ATD模块上电,有五种上电(触发方式) 分别如下: 设置ATD0CLT2中的10~12位。 第10位为0时忽略外部触发,为1时则使用内部触发。 但第十位为1时,前两位为00,01,10,11,分别对应下降沿触发,上升沿触发,低电平触发,高电平触发。 3.每次A/D转换启动那几路电平采样? 采样结果如何存储(注意FIFO的A/D转换模式)? 采样结果的数据类型(8位/10位? 左对齐/右对齐? 有符号数/无符号数? )? 答: 每次启动那一路转化得看ATD0CTL5中的设置。 采样结果的储存也是在该寄存器控制的。 采样结果的位数也是该寄存器控制。 如ATD0CTL5=00110000时该结果为左对齐无符号型数据是连续转化,多通道转化。 并且从0通道开始转化。 4.如何判断A/D转换是否结束? 如何清标志位? 答: 从ATD0START1_CCF0=0时转化完成。 (2)如何实现多通道转换? 答: ATD0CTL5中的第四位置1。 五、实验现象 开发板通电后,用起子旋转电位器,发现数码管上数字从0—255连续变化。 实验三、PWM模块实验 一、实验目的 1.学习使用PWM模块。 2.用PWM实现小型直流电机调速和舵机转向。 二、实验任务 1、使用单片机内部PWM模块调制产生不同脉宽的方波,实现小型直流电机调 速和舵机转向。 2、将PORTA口接八位DIP开关,PORTB口接七段数码管显示,PORTK控制 四个数码管其中某一个显示,数码管动态显示原理同实验1。 拨码开关高两位控 制舵机,当为00,11代表舵机转到正中央,为10,01代表舵机分别左转右转。 拨 码开关低六位控制电机,表示PWM占空比。 数码管第一位显示舵机控制方向,后 两位显示电机占空比。 三、实验内容 1.PWM模块共有28个寄存器,其中8个为系统保留寄存器,具体介绍如下: PWM启动寄存器(PWME) 本寄存器的8个bits分别用来开关8路PWM的通道。 PWM极性寄存器(PWMPOL) 本寄存器的8位bits分别用来设定8路PWM通道输出波形的起点电平。 PWM预分频寄存器(PWMPRCLK) 本寄存器用来设定ClockA和ClockB的预分频因子。 ClockA分频寄存器(PWMSCLA) 本寄存器提供PWM模块操作时的几个控制位。 PWM通道周期寄存器(PWMPERx) 此8个寄存器分别为8个通道设定方波的周期。 PWM通道脉宽寄存器(PWMDTYx) 此8个寄存器分别为8个通道设定脉宽。 PWM初始化程序如下: voidinitPWM(void){ PWME=0x00;//关闭所有PWM通道 PWMPOL=0xFF;//PWM极性选择,选择一个周期开始时为高电平 PWMPRCLK=0x22;//CLOCKA,B时钟分频,均选择从总线四分频10M PWMSCLA=5;//CLOCKSA从CLOCKA十分频,1M PWMSCLB=5;//CLOCKSB从CLOCKB十分频,1M PWMCTL=0xF0;//01级联,23级联,45级联,67级联 PWMCLK=0xFF;//PWM始终选择,选择CLOCKSASB为PWM时钟 PWMPER01=1000;//电机PWM正转频率1k PWMDTY01=0; PWMPER23=1000; PWMDTY23=0;//电机反转频率为1k PWMPER45=20000;//舵机PWM频率为50Hz PWMDTY45=STEER_CENTER;//舵机占空比 PWME_PWME3=1; PWME_PWME1=1;//电机PWM波开始输出 PWME_PWME5=1;//舵机PWM波开始输出 } 参考程序参见实验例程——motorpwm 四、实验现象 拨码开关高两位控制舵机转向,当为00,11舵机在中央,为10,01舵机分别左转右转。 拨码开关低六位控制电机,表示PWM占空比。 数码管第一位显示舵机控制方向,后两位显示电机占空比。 占空比越大,转速越大。 四、电磁组实验——信号处理 一、实验步骤 1、电磁传感器检测到信号 2、单片机处理这些信号——判断是否需要转向、减速 二、实验内容 1、电磁感器检测处理后为一模拟电平,需用到AD转换程序。 将光信号转换为数字量存在单片机中。 接下来由单片机处理这些数,判断是否要转向。 最简单的两个传感器布局,当导线在传感器中央时,相应的AD数值相同,导线偏向右边的传感器时,右边传感器的值变大,左边传感器值变小。 本实验关键在于如何确定导线位置。 2、输入输出口和ATD的初始化同前面的实验一和实验二,将程序运行后,打 开Data1窗口,找出AD转换后的数字值,应该在0-255之间。 将车子的左边电感对准黑色牵引线,观察两个传感器。 理论上应该该电感的值最大,调解好放大器的应在160左右记录该数值(159),再将黑线想又移动,发现右边传感器的值逐渐增大,左边传感器的值逐渐减小。 黑线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电磁 报告