MC9S12XS128单片机
基于MC9S12XS128单片机太阳能光伏发电自动跟踪系统
基于MC9S12XS128单片机太阳能光伏发电自动跟踪系统摘要我们提出一种基于MC9S12XS128单片机控制三维液压调整机构的太阳自动追踪系统的设计,实现太阳能电池板跟随太阳光旋转,保持平面与太阳光垂直,以达到最大光能获取率。
该系统价格低廉,性能可靠,具有较高的实用价值,可广泛应用于大中型光伏发电、聚热式聚光式发电等领域。
关键词光伏发电;太阳照射角;自动跟踪1太阳能光伏发电自动跟踪系统背景随着社会经济的快速发展,人类所面临的能源问题越来越突出,太阳能作为一种清洁能源无疑受到各国的普遍重视。
在相同条件下,光照强度越大,太阳能电池输出功率越大。
因而增大太阳能电池受光面的光照强度,就可增大太阳能电池输出功率。
除了提高太阳光电池本身的转换效应和提高蓄电池充放电效应外,对太阳的自动跟踪是太阳光伏发电系统中另一种提高转换效率的有效手段,因此在太阳能的利用过程中实施太阳跟踪是很有必要的。
2基于单片机MC9S12XS128太阳能光伏发电自动跟踪系统2.1概述目前本设计仅通过简单的计算公式得到的数据,对东西向进行每小时一次的角度改变,南北向进行每天一次的角度改变,再通过单片机的判断进行每晚的东西向回归控制以及每半年的南北向跟踪方向的改变控制。
2.2系统工作电源本系统根据发电系统的大小,适应性地采用两种供电方式,分为工作电源独立式、工作电源集中共用式(除电源的供给不同外,其他部分大体一致)。
系统主要由光强传感器(主要部件为光敏电阻)、信号处理器(S12单片机),蓄电池(12V~4V)等组成,对于只有少量太阳能电池板的发电设备(如家庭、移动通信基站等),采用独立式,独立式系统是系统工作电源有自身的蓄电池和太阳能电板供电。
为了使跟踪系统不影响正常的太阳能电池板向外供电,此系统的独立电源的蓄电池可以采用独立的成本低的实用性小太阳电池板对其充电。
这样可以消除跟踪系统对主要太阳能电板发电供电的影响和防止对昂贵的工业发电板资源的占用。
飞思卡尔MC9S12XS128单片机重点模块讲解
基于飞思卡尔 MC9S12XS128MCU 的模块讲解及测试
安徽工业大学 自动化系 刘昌元 delay(500); if(LED==0x80) LED=0x01; } } 综合以上的两段代码看在 52 单片机和 128 单片机上编程思路基本上没大的区别,唯一的区 别就是 128 单片机有数据方向寄存器来管理 I/O 口。 � 将部分端口做输入口使用,另外一部分端口做输出口使用时:例如我们将 PORTB 的端 口 B7 用来做输入口,B0-B5 口做输出指示,测试代码如下:
�
以端口 A 和端口 B 为例讲解,以上是我截取的技术手册上的,从上来看 A 口和 B 口各 有 8 个口,且 A0-A7;B0-B7 全部作为 GPIO (通用输入输出口 )使用。此处 A 口和 B 口 使用方法是一样的,我姑且就以端口 A 来讲解。 A 口和 B 口作为通用输入输出口使用时我们只需要掌握 4 个寄存器即可。 PORTA (A 口
�
这一点和 51 单片机的 I/O 口有区别,在典型的 51 单片中 P0 口内部没有上拉电阻,但作为 I/O 口使用时需要外接排阻。其他 P1-P3 口则可以直接作为双向口使用,51 单片在上电复位 后端口被默认的置 1.在 51 单片中端口的某一位置 0 时端口作为输出口使用,置 1 时作为输 入口使用。例如如果我们想把 P1 作为输出口使用时我们可以在程序开始时写 P1=0x00; 如果 我们想把 P1 口作为输入口使用时我们可以写 P1=0xff; 这一点正好和飞思卡尔的 128 单片机 相反,另外 128 单片有专门的数据方向寄存器 DDRA 或者 DDRB 等来管理各个端口的输入 输出选择,51 单片没有。如果我们想把端口 A 作为输入口使用,我们只需写 DDRA=0x00; 即所有位都置 0,如果我们想把端口 A 作为输出口使用,我们只需要写 DDRA=0xff; 即所有 位都置 1 ,而如 果我们想要 把端口 A 的高四 位做输入口 ,低 4 位做输 出口时我们 就 写 DDRA=0x0f; 当我们需要将该端口的某一位做输出或者输入口使用时只需要将该端口对应的 方向位置 1 或者置 0 即可。例如我们想把 A3 口作输入口, A4 口作输出口使用时我们只需 要写: DDRA_DDRA3=0; DDRA_DDRA4=1; 即可。 � � 对于数据方向寄存器的使用只要记住:置 1——输出 置 0——输入 PORTA 数据寄存器也是由 8 位组成,任何时候都可以对它进行读写操作。
MC9S12XS128中文资料
PWMCNTx:
PWM通道计数寄存器。
每个通道都有一个独立的8位计数器,其计数速率由所选择的时钟源决定。计数器的值可以随时读取而不影响计数器运行,也不影响PWM波形输出。在左对齐模式时,计数器从0计数至周期寄存器的值减1;在中心对齐模式,计数器从0计数至周期寄存器的值,然后再倒计数至0。
CFORC:
定时器比较强制寄存器。复位值为0x00。
FOCx=1将强制该位对应通道产生输出比较成功动作,但CxF中断标志位不置位。任何通道的强制比较成功动作若与普通比较成功动作同时发生,则强制比较成功动作优先发生,且CxF标志位不会置位。
被置位后瞬间将自动清除该位,所以任何时候对该寄存器的读动作都将返回0x00。
OC7M:
输出比较通道7屏蔽寄存器。复位值为0x00。
Setting the OC7Mx (x ranges from 0 to 6) will set the corresponding port to be an output port when the corresponding TIOSx (x ranges from 0 to 6) bit is set to be an output compare and the corresponding OCPDx (x ranges from 0 to 6) bit is set to zero to enable the timer port.A successful channel 7 output compare overrides any channel 6:0 compares. For each OC7M bit that is set, the output compare action reflects the corresponding OC7D bit.
基于MC9S12XS128单片机的触发装置研究
基于MC9S12XS128单片机的触发装置研究车辆轮对磨耗参数的检测,对保证车辆安全运行具有重要作用。
为了解决动态检测图像采集过程中,运动车辆轮对的定位与图像采集问题,文章基于飞思卡尔MC9S12XS128单片机,设计了适用于轮对动态检测环境的多通道触发装置。
该装置以双单片机组为控制核心,综合考虑并解决了电源控制、传感器输入信号捕捉与相机触发信号的控制等问题。
最后通过实验表明,该触发装置运行稳定,重复性实验中的被测物偏移误差小于0.1mm。
标签:Mc9s12xs128;单片机;触发;轮对;检测1 引言在整个铁路车辆运行系统中,车辆轮对作为与钢轨直接接触的部件,是直接影响车辆是否能够安全行驶的重要因素[1,2]。
车辆轮对参数的测量方法主要包括两大类,即静态检测法和动态检测法[3]。
静态检测法是针对车辆在静止状态时进行检测,存在受操作者主观影响,自动化程度较低等问题[4]。
动态检测方法采用机器视觉和图像处理技术,具有非接触和检测速度快等优点,能够减少检测过程中的人为误差,并提升检测效率[5,6]。
采用动态检测方法实现轮对在线检测首先要对被测物进行准确定位并采集图像。
对于这种高精度触发装置,未见相关文献描述,本文基于飞思卡尔MC9S12XS128单片机设计了一种适用于车辆轮对在线检测环境的实时图像采集触发装置。
该装置实现了车辆轮对磨耗在线检测中,对多个不同工位车辆轮对的准确定位和对应相机的触发控制。
2 触发装置总体设计触发装置主要用于实现轮对动态检测中控制图像采集设备在被测轮对到达设计位置的时刻,进行准确有效拍摄的关键功能。
要准确描述轮对状态需对同一轮对的多个位置进行检测。
为此设计的触发装置,分别在轨道左右侧各设置两组检测单元,对轮对图像进行多次采集。
以图1所示左一组检测单元为例,一组三个接近传感器安装在铁轨上,用于检测车辆的速度信息,结合最后一处传感器与CCD相机之间的距离由核心控制处理单元对相机拍摄时间进行计算。
MC9S12XS128单片机复习课程
PWME = 0X00; //禁止PWM输出 PWMCTL = 0Xf0; //通道0/1,2/3,4/5,6/7级联 PWMCLK = 0Xff; //PWM1,PWM3,PWM5时钟源为SA/SB,即级联后时钟源为SA/SB PWMPRCLK = 0X22; // 4分频 PWMPOL = 0Xff; //输出波形开始极性为1 output waveform which high first then low
1.禁止 PWM Disable PWM 寄存器为:PWME=0;
2.选择时钟 Select clock (prescaler and scale) for the PWM 寄存器为:PWMPRCLK,PWMSCLA,PWMSCLB, PWMCLK
3.选择极性 Select polarity 寄存器为:PWMPOL
6. 8 字节或 16 字节的通道协议。
7. 有4 个时钟源可供选择(A、SA、B、SB),他 们提供了一个宽范围的时钟频率。
PWM模块 特点:
8. 通过编程可以实现希望的时钟周期。 9. 具有遇到紧急情况关闭程序的功能。 10.每一个通道都可以通过编程实现左对齐输出还是
居中对齐输出。
PWM初始化步骤总结:
MC9S12XS128单片机
MC9S12XS128单片机特点
➢ 存储器:128KB FLASH;2KB EEPROM;8KB RAM; ➢ A/D:16通道模数转换器;可选8位、10位和12位精度; ➢ PWM:8位8通道或16位4通道PWM; ➢ 串行口:2个异步串行通讯SCI和2个同步串行设备接口
ECT模块(增强型定时器模块)
• ECT特点相当于高速的I/O口,由一个16为自由计 数器、8个16为的输入捕捉/输出比较通道、一个 16为脉冲累加器及一个16位的模数递减计算器 (MDC)组成。
飞思卡尔MC9S12XS128技术手册翻译AD
飞思卡尔MC9S12XS128技术手册(AD转换部分)英文资料:飞思卡尔MC9S12XS256RMV1官方技术手册1.1 XS12系列单片机的特点XS12系列单片机特点如下:·16位S12CPU—向上支持S12模糊指令集并去除了其中的MEM, WAV, WAVR, REV, REVW 五条指令;—模块映射地址机制(MMC);—背景调试模块(BDM);·CRG时钟和复位发生器—COP看门狗;—实时中断;·标准定时器模块—8个16位输入捕捉或输出比较通道;;—16位计数器,8位精密与分频功能;—1个16位脉冲累加器;·周期中断定时器PIT—4具有独立溢出定时的定时器;—溢出定时可选范围在1到2^24总线时钟;—溢出中断和外部触发器;·多达8个的8位或4个16位PWM通道—每个通道的周期和占空比有程序决定;—输出方式可以选择左对齐或中心对其;—可编程时钟选择逻辑,且可选频率范围很宽;·SPI通信模块—可选择8位或16位数据宽度;—全双工或半双工通信方式;—收发双向缓冲;—主机或从机模式;—可选择最高有效为先输出或者最低有效位先输出;·两个SCI串行通信接口—全双工或半双工模式·输入输出端口—多达91个通用I/O引脚,根据封装方式,有些引脚未被引出;—两个单输入引脚;·封装形式—112引脚薄型四边引线扁平封装(LQFP);—80引脚扁平封装(QFP);—64引脚LQFP封装;·工作条件—全功率模式下单电源供电范围3.15V到5V;—CPU总线频率最大为40MHz—工作温度范围–40 C到125 C第十章模拟—数字转换10.1 介绍ADC12B16C是一个16通道,12位,复用方式输入逐次逼近模拟—数字转换器。
ATD的精度由电器规格决定。
10.1.1 特点·可设置8位、10位、12位精度·在停止模式下,ATD转换使用内部时钟·转换序列结束后自动进入低耗电模式·可编程采样时间·转化结果可选择左对齐或右对齐·外部触发控制·转换序列结束后产生中断·模拟输入的16个通道为复用方式·可以选择VRH、VRL、 (VRL+VRH)/2特殊转换方式·转换序列长度1到16·可选择连续转换方式·多通道扫描·任何AD通道均可配置外部触发功能,并且可选择4种额外的触发输入。
飞思卡尔S12xs128单片机BDM调试器使用技巧
S12(X)单片机BDM调试器使用技巧第五届全国大学生“飞思卡尔”杯智能气车竞赛限制采用最新的MC9S12XS128(以下简称XS128)单片机作为主控芯片,替代MC9S12DG128。
XS128是Freescale公司推出的S12系列单片机中的一款增强型16位单片机。
片内资源丰富,接口模块有SPI、SCI、IIC、A/D、PWM等常见模块,在汽车电子应用领域具有广泛用途。
XS128和以往大赛使用的S12DG128系列单片机一样,调试接口都是使用Freescale公司传统的BD M(Background Debug Module)接口。
1 MC9S12XS128单片机介绍(1)CPU:增强型16位HCS12 CPU,片内总线时钟最高40 MHz;(2)片内资源:8 KB RAM、128 KB程序闪存、2 KB数据闪存;(3)串行接口模块:SCI、SPI;(4)脉宽调制模块(PWM)可设置成4路8位或者2路16位,逻辑时钟选择频率宽;(5)1个16路12位精度A/D转换器;(6)控制器局域网模块(CAN);(7)增强型捕捉定时器。
MC9S12XS128单片机有112、80和64引脚3种封装形式。
80-pin封装的单片机没有引出用于扩展方式的端口,仅引出了一个8路A/D接口。
竞赛可使用112或80引脚封装器件。
2 BDM接口和使用BDM调试器内部有一个8位的MC9HC08JB16单片机,该单片机有USB接口,可与PC 机信息交互。
HC08单片机和S12单片机间仅使用一根 I/O线通信,这根相连的信号线名为BKGD。
HC08单片机将BKGD置为输出,以串行发送命令,发送完成后转为输入,以接收信息。
S12单片机收到命令后转为输出,根据调试器发来的命令回送信息,然后立即转入接收态。
BDM工具以此方式实现S12单片机的在线调试、内部闪存的烧写等功能。
关于BDM接口的实现,读者可以参考Freescale任何一款S12单片机的器件手册,其对BDM接口的命令字、交互模式等都有详细描述。
资料:MC9S12XS128中文资料
飞思卡尔智能汽车竞赛XS128主要模块实验指导书第一章端口整合模块端口A,B和K为通用I/O接口端口E 整合了IRQ,XIRQ中断输入端口T 整合了1个定时模块端口S 整合了2个SCI模块和1个SPI模块端口M 整合了1个MSCAN端口P 整合了PWM 模块,同时可用作外部中断源输入端口H 和J 为通用I/O接口,同时可用作外部中断源输入端口AD 整合了1个16位通道ATD模块大部分I/O引脚可由相应的寄存器位来配置选择数据方向、驱动能力,使能上拉或下拉式装置。
当用作通用IO口时,所有的端口都有数据寄存器和数据方向寄存器。
对于端口T, S, M, P, H, 和J 有基于每个针脚的上拉和下拉控制寄存器。
对于端口AD 有基于每个针脚的上拉寄存器。
对于端口A、B、E 和K,有一个基于端口的上拉控制寄存器。
对于端口T, S, M, P, H, J, 和AD,有基于每个针脚的降额输出驱动控制寄存器。
对于端口A, B, E, 和K,有一个基于端口的降额输出驱动控制寄存器。
对于端口S、M,有漏极开路(线或)控制寄存器。
对于端口P、H 和J,有基于每个针脚的中断标志寄存器。
纯通用IO端口共计有41个,分别是:PA[7:0]PB[7:0]PE[6:5]PE[3:2]PK[7,5:0]PM[7:6]PH[7:0] (带中断输入)PJ[7:6] (带中断输入)PJ[1:0] (带中断输入)第二章脉冲宽度调制模块XS128具有8位8通道的PWM,相邻的两个通道可以级联组成16位的通道。
PWME:PWM通道使能寄存器。
PWMEx=1将立即使能该通道PWM波形输出。
若两个通道级联组成一个16位通道,则低位通道(通道数大的)的使能寄存器成为该级联通道的使能寄存器,高位通道(通道数小的)的使能寄存器和高位的波形输出是无效的。
PWMPOL:PWM极性寄存器。
PPOLx=1,则该通道的周期初始输出为高电平,达到占空比后变为低电平;相反,若PPOLx=0,则初始输出为低电平,达到占空比后变为高电平。
MC9S12XS(DG)单片机--110108
CodeWarrior开发平台上可用汇编,也可用C语言编程。
CodeWarrior的使用
六、9S12XS/DG 的开发样例
1. 9S12XS/DG 的工程组织与通用I/O口的控制 2. PWM 输出编程 3.模拟信号采集 4定时器的功能与使用 5. 9S12XS/DG 的存储器控制 6. SCI/SPI串行数据通信 8.
;定义五个字的存储区,首址为X2
若要对X2的第三字赋值,可用如下语句:
STX X2+2
②数字常数/字符串常数定义伪指令:
格式: [<label>:] DC [.<size>] <expression> [ ,<expression>]…
功能:在Flash区定义一个size×n 个字节的存储区。
例: C1: DC .B $25
Freescale
车模用单片机原理与使用
讲座
车模电路组成
显示电路
路径检测 速度检测 电源电路
MCU
数据输入 电路
舵机控制
电机 速度控制
内容
一、飞思卡尔车模用单片机性能 二、9S12XS/DG 的硬件资源 三、9S12XS/DG 的硬件系统 四、9S12XS/DG的指令系统 五、 9S12XS/DG 的开发平台 六、9S12XS/DG 的开发样例
;定义一字节常数,即C1= $25
C2: DC .W $2538 ;定义一字常数,即C2= $2538
③常数赋值伪指令: 格式: <label>: EQU <expression> <label>: SET <expression> 功能:定义<label> 等于的值<expression>的值。 注意: <expression> 要有确定的值。 例: PI: EQU 3
基于MC9S12XS128单片机智能赛车的设计
基于MC9S12XS128单片机智能赛车的设计【摘要】本文是实现基于MC9S12XS128单片机智能赛车的设计,它是一种以规定的汽车模型为载体,采用16位微控制器XS128为核心控制模块,通过自主设计电源电路,电机驱动电路、道路光电传感器电路,硬件部分合理布局,同时编写配套程序,使其能够自主识别路径的模型赛车。
【关键词】智能车;MC9S12XS128;传感器;PID控制;直流伺服控制;PWM技术1.绪论MC9S12XS128单片机智能赛车的设计,它是以规定的汽车模型为载体,采用16位微控制器XS128为核心控制模块,通过自主设计电源电路,电机驱动电路、道路光电传感器电路,硬件部分合理布局,同时编写配套程序,使其能够自主识别路径的模型车。
它能在规定赛道上,以最短时间跑完全程,该设计主要包括机械设计,电路设计,软件设计三大部分。
1.1 国外智能车的发展历史伴随内燃机的诞生,在公路上行驶的汽车,经过一百多年持续发展,汽车技术已经有了很大的提高,人们在享受汽车的便利和舒适的同时,也发现汽车给社会的进步带来了许多麻烦,甚至危及到了人们的生命及财产安全。
同时,交通拥挤和环境污染问题也给城市的发展带来了严重后果。
因此,迫使我们不断采用高、新技术装备汽车,以提高车辆的安全性、可靠性并迅速解决公路交通的公害问题。
未来汽车概念将发生根本性的变化。
“汽车”将转变为带有一些辅助机械的机电一体化装置,汽车不再是个机械装置,它正向大众消费类电子产品转移。
智能汽车也就是人们常说的无人驾驶汽车,它的研制最早目的是为了前线战争和后方刑事需要,使它能够在危害场合代替人执行任务,从而减少人员伤亡以及财产损失。
现在这项智能技术主要有两方面的应用,首先是应用在民用汽车上,使计算机代替人成为汽车司机,将人们从大量的驾车时间中解放出来,并向新能源汽车以及更智能的方向发展,比如在主动安全、驾驶安全和行人安全方面等。
其次应用还是在军事方面,通过使用无人或遥控智能的武器平台来完成抢险救灾、排爆等工作,甚至还包括一些更危险的军事环境。
mc9s12xs128程序教程
711 次
该寄存器是 0~7 通道 PWM 输出起始极性控制位,用来设置 PWM 输出的起始 电平。
用法:PWMPOL_PPOL0=1--- 通道 0 在周期开始时输出为高电平,当计数 器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变 为低电平。
2、PWM 波形对齐寄存器 PWMCAE
该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。这 两种模式如图 10 和图 11 所示。
图 10 等待模式
图 11 冻结模式
只有当相应的通道关闭后,才能改变 这些控制字。 用法: PWMCTL_CON67=1 --- 通道6、7 级联成一个 16 位的 PWM 通道。此 时只有7 通道的控制字起作用,原通道 7 的使能位、PWM 输出极性选择位、时 钟选择控制位以及对齐方式选择位用来设置级联后的 PWM 输出特性 PWMCTL_CON67=0 --- 通道6,7 通道不级联 CON45、CON23、CON01 的用法同 CON67 相似。设置此控制字的意 义在于扩大了PWM 对外输出脉冲的频率范围。 PSWAI=1 --- MCU 一旦处于等待状态,就会停止时钟的输入。这样就不 会因时钟在空操作而费电;当它置为0,则MCU 就是处于等待状态,也允许 时钟的输入。 PFRZ=1 --- MCU 一旦处于冻结状态,就会停止计数器工作。 (责任编辑:dzsj8)
1、PWM 预分频寄存器 PWMPRCLK
PWMPRCLK 寄存器每一位如图 3 所示:
复位默认值:0000 0000B
813 次
图3 PWMPRCLK 寄存器
PWMPRCLK 寄存器包括 ClockA 预分频和 ClockB 预分频的控制位。ClockA、 ClockB 的值为总线时钟的 1/2n (0≤n≤7),具体设置参照图 4 和图 5
MC9S12XS128单片机简介
MC9S12XS128 单片机简介1、HCS12X 系列单片机简介Freescale 公司的16 位单片机主要分为HC12 、HCS12、HCS12X 三个系列。
HC12核心是16 位高速CPU12 核,总线速度8MHZ;HCS12 系列单片机以速度更快的CPU12 内核为核心,简称S12 系列,典型的S12 总线速度可以达到25MHZ。
HCS12X 系列单片机是Freescale 公司于2005 年推出的HCS12 系列增强型产品,基于S12 CPU 内核,可以达到25MHz 的HCS12 的2-5 倍性能。
总线频率最高可达40 MHz。
S12X 系列单片机目前又有几个子系列:MC9S12XA 系列、MC9S12XB 系列、MC9S12XD 系列、MC9S12XE 系列、MC9S12XF系列、MC9S12XH 系列和MC9S12XS 系列。
MC9S12XS128 就是S12X 系列中的一个成员。
2、MC9S12XS128 性能概述MC9S12XS128 是16 位单片机,由16 位中央处理单元(CPU12X)、128KB 程序Flash(P-lash)、8KB RAM、8KB 数据Flash(D-lash)组成片内存储器。
主要功能模块包括:内部存储器内部PLL 锁相环模块2 个异步串口通讯SCI1 个串行外设接口SPIMSCAN 模块1 个8 通道输入/输出比较定时器模块TIM周期中断定时器模块PIT16 通道A/D 转换模块ADC1 个8 通道脉冲宽度调制模块PWM输入/输出数字I/O 口3、输入/输出数字I/O 口MC9S12XS128 有3 种封装,分别为64 引脚、80 引脚、112 引脚封装。
其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。
MC9S12XS 系列具有丰富的输入/输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ 和PORTAD 共11 个端口。
飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置
飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置手把手教你写S12XS128程序--PWM模块介绍该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。
本文为第一讲,开始介绍该MCU的PWM模块。
PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。
每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。
每一个P WM 输出通道都能调制出占空比从0—100% 变化的波形。
PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的P WM 输出使能都可以由编程来控制。
4、PWM 输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。
当通道关闭或PWM 计数器为0时,改变周期和脉宽才起作用。
6、8 字节或16 字节的通道协议。
7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。
8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。
它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。
当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。
用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。
当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道 1 的使能位控制PWM 的输出。
MC9S12XS128 中 PIT (周期中断定时器) 的使用
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
/*-----------------PIT0初始化------------------*/
那么如何通过编程来实现 PIT 来定时呢?在 数据手册的 363 页给出了 汇编代码的实现,当初我使用的时候已经把汇编转化成 C 语言了。
下面简单地来说下 PIT 的编程过程->:
1、8-Bit Micro Timer 0 跟 8-Bit Micro Timer 1 从 Bus Clock 里面获取时钟信号,通过编程 PITMTLDX 这
在 MC9S12XS128 这款单片机中 没有像 51 或者 AVR 那样的递减计数器,即在一个计时计数器中装一个数,单片机 让这个数在一定的时钟周期性 减 1 ,直道这个数减到 0 为止来实现多少时间的定时。当寄存器的值变为0时又重新装入数来再计时,装数有自动装载和手动装载两种,学过 51 跟 AVR 的朋友应该明白这两种模式。虽然 MC9S12XS128 这款单片机没有这样的定时器,但是它提供了 PIT 定时器,即 Periodic Interrupt Timer (S12PIT24B4CV1),即周期性中断定时器。PIT 分为 PIT0、PIT1、PIT2、PIT3 ,它们均是以中断的方式来实现定时的,具体能够实现多大范围的定时可参考 datasheet . PIT0、PIT1、PIT2、PIT3 对应的中断向量号分别为 66、67、68、69。还要注意 PIT 是没有外部引脚的。
void Pit0_Init(void)
我的128单片机引脚资料
锁相环设置
S12XS系列单片机使用时钟和重置生成器(CRG)模块来控制时钟,内部集成锁相环控制模块
默认是使用外部时钟频率作为芯片时钟频率,可以通过软件进行倍频和分频。
/*******************CRG模块相关控制寄存器描述*************C9S12XS128MAA 资源
管脚个数 作用 备注
PORTA(简称PA) 8 通用I/O口
PORTB(简称PB) 8 通用I/O口
RTICTL------实时时钟中断控制寄存器
COPCTL------看门狗控制器
ARMCOP------看门狗复位寄存器
/*************************************************************/
PORTK(简称PK) 无 通用I/O口
PORTE(简称PE) 5 IRO和XIRQ引脚可作为外部中断输入
PORTT(简称PT) 8 集成了TIM模块功能
PORTS(简称PS) 4 集成了SCI和SPI模块功能
SYNR--------CRG合成器寄存器
REFDV-------CRG合时钟分配寄存器
POSTDIV-----CRG预分频寄存器寄存器
CRGFLG------CRG标志寄存器
CRGINT------CRG中断使能寄存器
CLKSEL------CRG时钟选择寄存器
PLLCTL------锁相环控制寄存器
PORTM(简称PM) 6 集成了CAN总线模块
PORTP(简称PP) 7 集成了PWM模块功能 缺PP6
PORTH(简称PH) 无 外部中断输入口
单片机课程设计报告mc9s12xs128
单片机课程设计报告题目:对可调光LED灯发光强度进行控制学院:机电工程学院班级:自09A-1姓名:学号:0910101011指导教师:一、设计任务:1、单片机可选用飞思卡尔型。
2、按键及显示方案可采用CH451芯片或其他方案。
3、设计并制作可调光LED灯,并对发光强度进行控制。
二、设计方案:硬件选择:飞思卡尔MC9S12S128系类单片机,驱动模块,LED 模块,CH4541模块;工作原理:通过调节PWM为1KHz至10KHz TTL方波,调节其占空比,从而调节电压,决定了发光强度。
MC9S12S128部分管脚图:MC9S12S128主要系统参数:S12X CPU,最高总线速度 40MHz64KB、128KB和256KB 闪存选项,均带有错误校正功能(ECC) 带有ECC的、4KB至8KB DataFlash,用于实现数据或程序存储配置8 、10或12位模数转换器(ADC),转换时间3μ s支持控制区域网(CAN)、本地互联网(LIN)和串行外设接口(SPI)协议模块带有16-位计数器的、8-通道定时器出色的EMC,及运行和停止省电模式1、由于MC9S12S128自带有AD以及PWM 功能,所以对软件的要求交简单。
2、键盘输入采用CH451整体模块3、通信端口为PA口,与中断端口三、硬件结构:CH451硬件电路结构驱动模块设计四、软件设计4.1 HCS12控制软件主要理论智能车开发环境采用了飞思卡尔HCS12系列单片机开发软件CodeWarrior。
该软件具有支持多种语言、开发环境界面统一、交叉平台开发以及支持插件工具等特点。
在CodeWarrior界面完成编译后,通过BDM FOR S12工具,在CodeWarrior环境下向MC9S12模块下载程序。
BDM FOR S12工具使用简单,十分方便。
在整个系统设计中,用到了4个单片机基本功能模块:时钟模块、PWM输出模块、AD转换模块、。
通过编写程序先对所用到的模块进行初始化,并通过对相应数据寄存器或状态寄存器的读写,实现期望的功能。
MC9S12XS128开发板实验指导手册
2.2 LED电路 该开収板设计有 8 个独立的 LED,通过单片机的 I/O 口直接控制。电路采用了 I/O 口灌
电流的驱动方式来驱动 LED,所以不需要驱动就可以点亮 LED,引脚辒出高电平时 LED 熄灭, 低电平时 LED 点亮。
3.1 安装 CodeWarrior 软件…………………………………………..……………….....................................16 3.2 安装 BDM 驱动…………………………………………………..……………….........................................16 3.3 创建新工程…………………………….………….….…………..……………….........................................16 3.4 调试新建工程……………….…….………….…………………..………………........................................20 第 4 章 基础实验………………………….………………..…………………..……………........................................24 实验一 复位及看门狗…….….………………..…………………..………………........................................24 实验二 蜂鸣器实验……………………………..…………………..………………........................................26 实验三 LED 灯实验……….…..………………..…………………..………………........................................27 实验四 按键实验……………………………..…………………..………….………........................................28 实验五 ATD 实验…………..………………..….………………..………….………........................................32 实验六 锁相环实验…………………………..…………………..………….……….......................................36 实验七 SCI 串口实验………………………..…………………..………….……….......................................37 实验八 PWM 实验………………………..…………………..………….………............................................40 实验九 TIM 实验………………………..….………………..………….………..............................................41 实验十 实时中断实验………………….….…………..………….……….................................................43 实验十一 PIT 实验………………………..…………………..….….……….................................................44 实验十二数码管实验……..………..…………………..………….……….................................................45 第 5 章 高级实验……………..…………………..……………..………….………..................................................46 实验一 数字电压表..…………………..……………..………….………....................................................46 实验二 数字秒表及定时器…..……………..………….……….........................................................47 实验三 蜂鸣器播放音乐……..……………..………….………............................................................48 实验四 汉显液晶实验…………..……………..………….………..........................................................49 实验五 ZX0802A 小液晶实验..……………..………….……….........................................................51 实验六 遥控模块实验…………..……………..………….………..........................................................52 实验七 温度传感器实验………..……………..………….……….........................................................54 实验八 RS-485 总线实验……..……………..………….………..........................................................55 实验九 LIN 总线实验……..….…………..………….……….................................................................57 实验十 CAN 总线实验……..…………....………….……….................................................................61 实验十一 SAE-J1939 实验………....………………….….…..............................................................64 实验十二 SD 卡实验………....…….…………….….……….................................................................65 实验十三 综合演示实验…....………………….….……….................................................................67 第 6 章 补充实验……………..…………………..……………..………….………..................................................68 实验一 DFLASH 实验.…………………..……………..………….………....................................................68
改进版:飞思卡尔MC9S12XS128(64pin)引脚功能说明
21
PE4
ECLK
端口E:通用I/O,总线时钟输出
DIR1
22
VSSX2
电源
23
VDDX2
电源
24
外部复位
25
VDDR
电源
26
VSS3
电源
27
VSSPLL
电源
28
EXTAL
外部时钟输入
29
XTAL
振荡器输出
30
VDDPLL
电源
31
PE1
端口E:通用I/O,可屏蔽中断输入
Keyon(启动)给定
AN5
45
PAD06
AN06
端口A/D:通用I/O,ATD模拟信号输入
46
PAD07
AN07
端口A/D:通用I/O,ATD模拟信号输入
预留输入给定
47
VDDA
电源
48
VRH
电源
49
VRL
VSSA
电源
50
PS0
RXD0
端口S:通用I/O,SCI0的RXD
SCI0_RXD
51
PS1
TXD0
端口S:通用I/O,SCI0的TXD
DIR5
57
PM3
端口M:通用I/O,SPI0的从机选择
DIR6
58
PM2
MISO0
端口M:通用I/O,SPI0的MISO
DIR7
59
PM1
TXCAN0
TXD1
端口M:通用I/O,CAN0的TX,SCI1的TXD
N_TX
60
PM0
RXCAN0
RXD1
端口M:通用I/O,CAN0的RX,SCI1的RXD
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.CodeWarrior IDE 12 应用
MC9S12XS128单片机
• MC9S12XS128(以下简称XS128)是Freescale公 司推出的S12XS系列单片机中的一款增强型16位 单片机,S12XS系列单片机是在S12XE系列基础 上去掉XGate协处理器的单片机,该系列单片机 采用 CPU12X V2内核,可运行在40MHz总线频 率上。不仅在汽车电子、工业控制、中高档机电 产品等应用领域具有广泛的用途,而且在FLASH 存储控制及加密方面呢也有很强的功能。
PWM模块 特点:
1. 它有 8 个独立的输出通道,并且通过编程可控 制其输出波形的周期。 2. 每一个输出通道都有一个精确的计数器。 3. 每一个通道的 PWM 输出使能都可以由编程来控 制。 4. PWM 输出波形的翻转控制可以通过编程来实现。 5. 周期和脉宽可以被双缓冲。当通道关闭或 PWM 计数器为 0 时,改变周期和脉宽才起作用。 6. 8 字节或 16 字节的通道协议。 7. 有4 个时钟源可供选择(A、SA、B、SB),他 们提供了一个宽范围的时钟频率。
ECT初始化程序:
以0通道为例:
void ECT_Init(void) { TIE = 0x00; //通道0~7的使能屏蔽 TIOS = 0x00; // 所有的端口设置成输入捕获模式 TSCR1 = 0x90; // 使能时钟模块,定时器标志位 快速清零,读取数据自动清零 TCTL4_EDG0B = 0; TCTL4_EDG0A = 1; //捕捉 上升沿,0通道 TIE_C0I = 1; // 使能0通道中断,中断服务程序中 读取捕获数 }
ECT模块(增强型定时器模块)
• ECT特点相当于高速的I/O口,由一个16为自由计 数器、8个16为的输入捕捉/输出比较通道、一个 16为脉冲累加器及一个16位的模数递减计算器 (MDC)组成。
ECT初始化
极速挑战中使用了输入捕获(IC)通道,下面介绍IC通道的 初始化。 1. 端口设置成输入捕获模式: 寄存器TIOS,并使TIOS = 0x00; 2.设定自由计数器溢出中断及分频系数 寄存器存器为TSCR1,使TSCR1=0x09; 4.设置捕获上升沿、下降沿或上升下降沿。 寄存器TCTL3、TCTL4; 5.打开输入捕获中断使能 寄存器:TIE
CodeWarrior新建工程
第三步:进入欢迎界面,点击下一步。然后选择芯 片型号 MC9S12XS128,点击下一步。程序一定 要与单片机型号一直,否则在硬件调试中会出现 错误。
CodeWarrior新建工程
第四步:选择使用的语言,在此选择 C语言,点击 “下一步”。
CodeWarrior新建工程
The end,thank you!
CodeWarrior编译 第十二步:程序输入以后,点击工具栏的 图标 检查程序是否有错,如果有错,会在编 辑框上方提示错误警告,以 为标 志,程序中会随之用红色。检查程序并 修改,直到没有错误为止。
CodeWarrior程序下载 第一步:在上述单片机程序编译的基础上,将编程 器与试验板连接好,编程器下载口用BDM同计算 机相连点击 图标 开始调试(debug),进入 调试仿真状态后会出现如下界面。
AD初始化总结步骤:
1. 内部触发,A/D转换精度; 寄存器为:ATD0CTL1 2.外部触发,AD中断允许; 寄存器为:ATD0CTL2 3.数据对齐方式,采样序列长度 寄存器为:ATD0CTL3 4.采样时间选择位,AD时钟选择; 寄存器为:ATD0CTL4 5.采样通道选择,单/多次采样选择位 寄存器为:ATD0CTL5
MC9S12XS128单片机特点 存储器:128KB FLASH;2KB EEPROM;8KB RAM; A/D:16通道模数转换器;可选8位、10位和12位精度; PWM:8位8通道或16位4通道PWM; 串行口:2个异步串行通讯SCI和2个同步串行设备接口 SPI; CRG时钟和复位发生器:锁相环、看门狗、实时中断; 增强型捕捉定时器; I2C总线; CAN总线:3个1Mbps的CAN总线,兼容CAN2.0 A/B; 背景调试模式(BDM); 封装:LQFP-112和LQFP-80;
极速挑战用到的单片机模块
ADC模块
PWM模块
ECT捕获
ADC模块
ADC:电路里面的模拟信号转换为数字信号的转换 器; 特点: AD时钟频率满足500KHz~2MHz; 16通道模数转换器; 8位数字量,10位数字量,12位数字量转换,最 短时间3us; 外部触发控制; 可选择单次转换模式或连续转换模式;
CodeWarrior程序下载 第二步:出现如下图框,则点击确定;
CodeWarrior程序下载 第三步:接下来出现如下图形,说行程序正在下载 至单片机。
CodeWarrior程序下载 第四步:点击如下图标 ,则程序开始在单片机中 运行,此时可拔出下载线,或直接拔掉下载线, 按下单片机上的复位键,程序也开始运行。
PWM模块 特点:
8. 通过编程可以实现希望的时钟周期。 9. 具有遇到紧急情况关闭程序的功能。 10.每一个通道都可以通过编程实现左对齐输出还是 居中对齐输出。
PWM初始化步骤总结:
1.禁止 PWM Disable PWM 寄存器为:PWME=0; 2.选择时钟 Select clock (prescaler and scale) for the PWM 寄存器为:PWMPRCLK,PWMSCLA,PWMSCLB, PWMCLK 3.选择极性 Select polarity 寄存器为:PWMPOL 4.选择对齐模式 Select center or left aligned mode 寄存器为:PWMCAE 5.对占空比和周期编程 Program duty cycle and period 寄存器为:PWMDTYx, PWMPERx 6.使能 PWM 通道 Enable used PWM channels 寄存器为:PWME
CodeWarrior新建工程
第一步:双击桌面 CodeWarrior IDE 12图标,进入 CodeWarrior IDE 12运用界面。在打开的界面中 点击菜单 File,在其下拉菜单中点击New,新建 数据库文件 。
CodeWarrior新建工程
第二步:新建一个数据库,如图选择第一行,然后 再右面命名 123 (任意命名均可),双击 HC(S)12 New Project Wizard,如下图所 示:
PWM初始化步骤总结: 7.设定PWM周期 PWM Channel Period Registers 寄存器为:PWMPERx; 8.设定占空比 PWM Channel Duty Registers 寄存器为:PWMDTYx; 9.使能PWM Enable PWM 寄存器为:PWME;
PWM初始化实例:
• 第五步:选择调试专家,在此选择“NO” ,点击 “下一步” 。
CodeWarrior新建工程
第六步:界面如下图所示,选择“NO” ,点击 “下一 步” 。
CodeWarrior新建工程
第七步:界面如下图所示,选择” ANSI startup code” ,点击“下一步” 。
CodeWarrior新建工程 第八步:选择有无浮点格式,根据自己情况而定, 本程序在此选择第二选项,点击“下一 步”。
Codewarrior软件
• Codewarrior软件使用大赛中采用Codewarrior 3.1 for HCS12作为推荐的程序编译软件。 "CodeWarrior for S12" 是面向以HC12或S12为 CPU的单片机嵌入式应用开发的软件包。包括集 成开发环境IDE、处理器专家库、全芯片仿真、 可视化参数显示工具、项目工程管理器、C交叉 编译器、汇编器、链接器以及调试器。在 Codewarrior软件中可以使用汇编语言或C语言,以 及两种语言的混合编程。
CodeWarrior新建工程 第九步:界面出现“选择存储模式?”,选择 Banked,点击下一步。
CodeWarrior新建工程 第十步:界面出现“选择硬件连接电缆型号” ,选 择 第一项和最后一项,点击“完成”。
CodeWarrior新建工程 第十一步:进入如下界面,点击左侧 Sources文件 前面的加号,选择主程序中的 Main.c, 双击左键进入,可写入程序。
void PWM_Init() { PWME = 0X00; //禁止PWM输出 PWMCTL = 0Xf0; //通道0/1,2/3,4/5,6/7级联 PWMCLK = 0Xff; //PWM1,PWM3,PWM5时钟源为SA/SB,即级联后时钟源为SA/SB PWMPRCLK = 0X22; // 4分频 PWMPOL = 0Xff; //输出波形开始极性为1 output waveform which high first then low when the duty counter is reached PWMCAE = 0x00; //左对齐输出模式 output left align wavefor PWMSCLA = 0x05; //Clock SA is CLOCKA/(2*PWMSCLA) PWMSCLB = 0x05; //Clock SB is CLOCKB/(2*PWMSCLB) PWMPER45 = 10000; //设定输出周期=通道时钟周期*10000 PWMDTY45 = 5000;//占空比=[(PWMDTY01+1)/(PWMPER01+1)]*100% PWME = 0xff; //使能PWM }
AD初始化实例
void ATD_Init(void) { ATD0CTL1 = 0x20;//内部触发允许、A/D转换精度 ATD0CTL2 = 0x62;//禁止外部触发,快速清零,AD中断允许 ATD0CTL3 = 0x80;//数据对齐方式,采样序列长度 ATD0CTL4 = 0x92;//采样时间选择位,AD时钟选择 ATD0CTL5 = 0x30;//采样通道选择,单/多次采样选择位 ATD0DIEN = 0x00;//禁止数字输入 }