MC9S12XS128学习中文精华版
- 格式:doc
- 大小:41.00 KB
- 文档页数:13
中南大学《过程控制仪表》课程设计报告设计题目液位控制系统设计指导老师王莉吴同茂设计者龚晓辉专业班级自动化09级05班02号设计日期2012年5月目录第一章过程控制仪表设计的目的意义 (1)1.1 设计目的 (1)1.2课程在教学计划中的地位和作用 (2)第二章液位控制系统实验控制设计与调试 (3)2.1 液位控制系统的工艺及控制要求 (3)2.2 液位系统控制实验方案设计 (5)2.3 系统调试与控制效果 (7)第三章火力发电气泡水位控制系统设计 (8)3.1 火力发电厂生产工艺及控制要求 (8)3.2 系统总体方案设计 (9)3.3 系统硬件设计 (11)3.4 系统软件设计 (14)第四章收获、体会和建议 (16)参考文献第一章过程控制仪表设计的目的意义1.1 设计目的本课程设计是为《过程控制仪表》课程而开设的综合实践教学环节,是对《现代检测技术》、《自动控制理论》、《过程控制仪表》、《计算机控制技术》等前期课堂学习内容的综合应用。
其目的在于培养学生综合运用理论知识来分析和解决实际问题的能力,使学生通过自己动手对一个工业过程控制对象进行仪表设计与选型,促进学生对仪表及其理论与设计的进一步认识。
其主要是设计工业生产过程经常遇到的压力、流量、液位及温度控制系统,使学生将理论与实践有机地结合起来,有效的巩固与提高理论教学效果。
1.2课程在教学计划中的地位和作用课程设计对过程控制课程有重要的实践意义,可以加深学生对所学知识的理解与运用。
主要的内容是通过对典型工业生产过程中常见的典型工艺参数的测量方法、信号处理技术和控制系统的设计,掌握测控对象参数检测方法、变送器的功能、测控通道技术、执行器和调节阀的功能、过程控制仪表的PID控制参数整定方法,进一步加强对课堂理论知识的理解与综合应用能力,进而提高学生解决实际工程问题的能力。
基本要求如下:1. 掌握变送器功能原理,能选择合理的变送器类型型号;2. 掌握执行器、调节阀的功能原理,能选择合理的器件类型型号;3. 掌握PID调节器的功能原理,完成相应的压力、流量、液位及温度控制系统的总体设计,并画出控制系统的原理图和系统主要程序框图。
S12单片机BDM调试器使用技巧摘要:全国大学生“飞思卡尔杯”智能汽车竞赛推荐使用Freescale公司的M C9S12系列单片机为主控芯片;有USB接口的TTBDM调试器是主要软件调试工具。
TTBDM调试器通过USB接口与PC通信,BDM接口与目标CPU通信,实现嵌入式软件的在线调试。
根据往届车模竞赛中参赛者遇到的一些问题和本中心在长期支持国内S12系列单片机用户中积累的经验,总结出BDM调试器的用法和注意事项,提供一些使用技巧,以求对参赛者和S12产品开发工程师有所帮助。
关键词: 9S12单片机;BDM;TTBDM第四届全国大学生“飞思卡尔杯”智能气车竞赛推荐采用最新的MC9S12XS1 28(以下简称XS128)单片机作为主控芯片,替代MC9S12DG128。
XS128是Free scale公司推出的S12系列单片机中的一款增强型16位单片机。
片内资源丰富,接口模块有SPI、SCI、IIC、A/D、PWM等常见模块,在汽车电子应用领域具有广泛用途。
XS128和以往大赛使用的S12DG128系列单片机一样,调试接口都是使用Freescale公司传统的BDM(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接口。
竞赛可使用1 12或80引脚封装器件。
2 BDM接口和使用BDM调试器内部有一个8位的MC9HC08JB16单片机,该单片机有USB接口,可与PC机信息交互。
单片机控制摄像头摄像、显示系统1111 单片机控制摄像头摄像、显示系统系别尚德光伏学院专业微电子技术班级 0801 学生姓名丁良林学号 100080253 指导教师陆亚青 2011年 4 月无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 1 单片机控制摄像头摄像、显示系统摘要本项目主要是通过是S12XS128单片机来控制摄像头的正常工作并由该单片机送到电脑上。
其实很简单就是通过单片机来控制摄像头来拍照然后单片机再将拍摄到的图片传输到电脑上显示让人眼能看到所拍摄的画面。
所选的MC9S12XS128 单片机产品满足了用户对设计灵活性和平台兼容性的需求并在一系列汽车电子平台上实现了可升级性、硬件和软件可重用性、以及兼容性。
它为用户削减了成本并缩小了封装尺寸。
该项目在很多领域都有广泛的应用例如大学生智能车制作和监控系统。
例外选的OV7620是一款CMOS摄像头器件是一款彩色CMOS 型图像采集集成芯片提供高性能的单一小体积封装该器件分辨率可以达到640X480传输速率可以达到30帧。
关键词MC9S12XS128单片机OV7620摄像头显示系统无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 2 abstract Abstractthis project mainly through is S12XS128 single shipcontrolling of the camera normal work and by the single-chip microcomputer to computer. Actually very simple is through the single ship controlling camera to take photos and then again to photograph of single-chip computer images transmitted to display on let the human eye can see the picture taken. Selected MC9S12XS128 microcontroller products meet the user to design flexibility and platform compatibility needs and in a series of automobile electronic platform achieved scalability the hardware and software reusability and compatibility. It for the user cut costs and reduce the encapsulation size. This project in many fields are widely used such as college students intelligent car production and monitoring system. Exception chosen OV7620 is a section CMOS camera device is a new color CMOS type image acquisition integrated chips to supply high-performance single small volume encapsulation this device resolution can achieve 640X480 transmission rate can reach 30 frames. Key wordsMC9S12XS128 microcontroller OV7620 cameras the display system. 无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 3 目录前言 ................................................................. .................................................................................. 1 第一章系统的结构和功能现象 ................................................................. .................................... 1 11 系统的总体结构 ................................................................. ............................................ 1 1.2功能及现象 ................................................................. ....................................................... 2 第二章飞思卡尔XS128单片机介绍 ..................................................................... ........................ 1 2.1 XS128特性与封装 ................................................................. ........................................... 1 2.2单片机和相关引脚介绍 ..................................................................... ............................... 3 第三章OV7620摄像头 ..................................................................... ...............................................1 3.1 OV7620各模块介绍 ................................................................. ......................................... 1 3.1.2本摄像头模块新增特点 ..................................................................... ....................... 1 第四章单片机的连接与编程 ..................................................................... .................................... 2 4.1XS128最小系统 ..................................................................... ...........................................2 4.2 XS128与OV7620的硬件连接 ................................................................. ......................... 2 4.3 MC9S12XS128最小系统测试程序 ..................................................................... ............... 1 4.4 摄像头摄像及PC显示程序 ..................................................................... ........................ 2 总结 ..................................................................... .............................................................................. 2 致谢 ................................................................. .................................................................................. 1 参考文献 ................................................................. ........................................................................ ..1 附录 ................................................................. ................................................................................ 2 无锡科技职业学院毕业设计论文单片机控制摄像头摄像、显示系统 1 前言我们本次设计主要功能是用MC9S12XS128单片机来控制摄像头OV7620的正常工作并且在电脑上显示接受的图像和数据也就是通过XS128单片机输出摄像头采集到的图像经PC串口在电脑上的上位机软件上显示。
PWM模块介绍⼿把⼿教你写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 的输出。
2010-2011 第二学期光电传感技术院系电子工程学院光电子技术系班级科技0803班姓名熊浩学号********班内序号10考核成绩基于光电传感器的自动循迹小车设计摘要新一代汽车研究与开发将集中表现在信息技术、微电子技术、计算机技术、智能自动化技术、人工智能技术、网络技术、通信技术在汽车上的应用。
智能汽车是是现代汽车发展的方向。
本系统采用光电传感器作为道路信息的采集传感器,单片机为控制系统的核心来处理信号和控制小车行驶。
MC9S12系列单片机在汽车电子控制领域得到广泛应用。
本论文是利用Freescale的MC9S12XS128微控制器对智能车系统进行设计。
智能车系统设计包括硬件电路和控制软件系统的设计。
关键字:智能车;光电传感器;自动循迹;控制算法;PID;引言自动循迹智能车是一个集环境感知、规划决策、自动驾驶等多种功能于一体的综合系统。
除了特殊潜在的军用价值外,还因其在公路交通运输中的应用前景受到很多国家的普遍关注。
近年来其智能化研究取得了很大进展,而其智能主要表现为对路径的自动识别和跟踪控制上。
路径跟踪问题的研究正吸引着国内外计算机视觉、车辆工程与控制领域学者们越来越多的注意,得出了很多有意义的成果。
这些方法可分为两类,即传统控制方法和智能控制方法。
传统控制方法多建立在精确数学模型基础上,而自动引导车系统具有复杂的动力学模型,是一个非线性、时延系统,由于各种不确定因素的存在,精确的数学模型难以获得,只能采用理想化模型来近似,所得到控制律较为繁琐,给实际应用造成不便。
随着近年智能控制论的兴起,一些智能控制方法如模糊控制,神经网络等逐步走向完善,尤其是模糊控制理论在很多地方显示出相当的应用价值,以此为基础,设计新概念的控制器受到人们很大关注。
同时,人们也正考虑这在各种方面包括硬件和软件的综合技术开发和研究探索,智能车的技术将会趋于成熟并得到广泛的应用。
本课题利用传感器识别路径,将赛道信息进行存储,利用单片机控制智能车行进。
飞思卡尔XS128系列(三)PIT后面仔细搜索,DG128和XS128区别还真的蛮大的,相对于平时使用来说,主要在ECT和AD这两块地方,像定时器模块这部分,查了很多资料,最后发现XS128没有DG128所具有的MDC 模数递减计数器模块,相对应的是PIT定时模块,还有比如没有了模糊指令的硬件支持,没有了i2c模块等等。
言归正传,开始讲PIT,讲PIT,我准备先简单讲讲寄存器,之前不讲主要是基本上买的到的书都是DG128的,里面关于IO口的寄存器和PWM的寄存器都是完全可以照搬的,而这一章的东西照搬是要出问题的。
核心内容就在这张图上:相信大家都明白总线的概念,在图中可以看到6个定时器模块,Micro Timer 0、Micro Timer 1、Timer 0、Timer 1、Timer 2、Timer 3,其中前两个是8位的,后四个是16位的。
从图中可以看出PIT模块是以总线时钟(Bus Clock)为基准时钟的,总线时钟通过8位Micro Timer 0和Micro Timer 1倍频形成两个基时钟,即Micro Timer Base 0和Micro Timer Base 1,这两个基时钟通过16位Timer给PIT提供时钟(通过寄存器PITMUX设置)。
原理讲完了,其实相对于PIT模块是一个24位的定时器(51单片机最多也就16位),这个计数范围还是蛮大的。
下面是一些寄存器的解释,解释完还是看代码吧。
S12PIT24B4CV1是一个模数递减计数器。
首先给计数寄存器设定一个初值,每经过一个总线周期,计数器进行一次减一操作,当计数器自减溢出时,触发中断。
因为总线周期是已知的,即可以通过计数器自减实现定时。
在XS128PIT模块中,需要用到得是如下几个寄存器。
1)、PIT Contorl and force Lad Micro TimerRegister(PITCFLMT)该寄存器用于PIT模块的使能设置和工作方式设置。
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接口的命令字、交互模式等都有详细描述。
IO口模块程序示例 Void PORTB_Init(void){ DDRB=0xff; //PB口作输出使用,1为输出,0为输入
PORTB=0x00; //PB口数据寄存器值
} 注意:IO口要注意以下几点:(1)每个IO口的数据寄存器名可能不同(2)AN口只能作输入用(3)PH,PJ(高两位,低两位),PP可用输入中断功能使用(4)IO口作输入与输出时有不同的寄存器对应(5)IO口作复用时不能作IO口用,相反也不行
IO口可用作:调试接口(接数码管、液晶、拨码开关等等)所以必须掌握 使用拨码开关要注意这样用; DDRB=0XFF; //输出
PORTB=0XFF;
DDRB=0X00; //输入
AD模块程序示例 Void ATD_Init(void){ ATD0CTL1 = 0x00; //8位精度,不放电
ATD0CTL2 = 0x42; //快速清除标志位,禁止外部触发,使能中断
ATD0CTL3=0x8a;//右对齐,每序列4次转换,不用FIFO,进入FreezeMode完成当前转换
ATD0CTL4 = 0x03; //采样用4个ATD周期,F(ATD)=1MHz[bus clock为8MHz]
ATD0CTL5 = 0x29; //SCAN模式,单通道,通道9
ATD0DIEN = 0x00; //禁止数据输入
} Void main(void){ ATD_Init(); ……………………………………… } #pragma CODE_SEG NON_BANKED void interrupt 22 Int_AD0(void) { DisableInterrupts;
AD_wData = ATD0DR0L; //读ATD转换的寄存器值(低八位) ATD0STAT0_SCF=0; //(当AFFC为1时,写0清零;为1 时写1清零)
EnableInterrupts; } 注意:ATD模块要着重注意:(1)标志位清零(比较复杂)(2)多通道转换后的储存顺序(3)精度的选择和转换速度(4) 单个通道与多通道转换的区别
定时器模块程序示例
Void Timer_Init(void){
TSCR1=0X90; //使能定时器并设置为自动清除标志TFLG1
TSCR2=0X03; //设置分频系数为8,及23 TIE=0X01; //定时器通道0中断使能
TIOS_IOS0=1; //PT0口为输出比较
TC0=TCNT+1677; //设定初值 //定的时间就是从0加到1677要的时间
EnableInterrupts; Void main(void){ Timer_Init(); ………………….. } #pragma CODE_SEG NON_BANKED
void interrupt 8 Timer(void) { DisableInterrupts; TC0=TCNT+1677; //设定比较器下次中断时间
TSCR1=0x00; //关定时器(一般情况定没必要用这个)
EnableInterrupts; } 注意:定时器模块要关重注意以下几点:(1)初值的设定,每次中断都要置初值(2)标志位的清零方式(3)PT口作为输入捕捉时的设置区别
脉冲累加模块示例
Void PT7_Init(void){
PACTL=0X40; //脉冲累加系统使能,下降没触发,使用预分频因子定义的时钟
PACNT=0X0000; //设定脉冲累加计数寄存器初值
} 注意:脉冲累加模块注意以下几点:(1)PACTL中的各位配合使用表,可以在自备次料上查 PWM脉宽调制模块示例 Void PWM_Init(void){
PWME=0X02; //使能PWM1口,及PP1口
PWMCTL=0X10; //级连PP0和PP1
PWMPRCLK=0X07; //预分频A系数为128
PWMCLK_PCLK1=0; //级连通道01选择时钟A
PWMPOL=0X02; //级连通道01极性们为先高电平输出 PWMCAE=0X00; //级连通道01为左边对齐输出
PWMDTY01=1000; //占空比寄存器值
PWMPER01=1500; //周期寄存器值
} 注意:PWM模块要注意以下几点:(1)PWM级联时寄存器名称区别(2)预分频与分频的联合应用
串行口SCI程序示例
Void SCI_Init(void){
SCI0BDL=(byte)(8000000/9600/16);//设置总线为8M时SCI波特率为9600Hz
SCI0CR1=0x00; //数据格式为8位(没有奇偶校验位)
SCI0CR2=0x2c; //接收中断使能,发送使能,接收器使能
} Void main(void){ SCI_Init(); ……………………… } #pragma CODE_SEG NON_BANKED
interrupt 20 void SCI_RX_IRS(void){ byte RxData,RX; DisableInterrupts; RX=SCI0SR1; //读状态寄存器,为清零作准备
RxData=(byte)SCI0DRL; //读接收寄存器的值 EnableInterrupts; } 注意:串行口SCI要注意以下几点:(1)波特率的设置注意总线频率是否有变(2)SCI数据格式(2)接收中断标志清零是先读状态寄存器再读数据寄存器(4)发送时不能用中断,只能轮询标志位(易错)!!!
琐相环模块程序示例
Void SetBusCLK_32M(void){
CLKSEL=0x00; //不使用锁相环
PLLCTL_PLLON=1; //锁相环电路允许
SYNR=0xc0|0x03; //SYNDIV=3
REFDV=0xc0|0x01; //REFDIV=1
POSTDIV=0x00; //分频系数为20=1
_asm(nop); //等待锁相环稳定
_asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); while(!(CRGFLG_LOCK==1)); CLKSEL_PLLSEL=1; //使用锁相环(只能写最后)
} 注意:锁相环要注意以下几点(1)锁相环使用后改变了总线频率,所以相它与总线频率相关的各模块寄存器也要相应改变,以免出现低级错误(易错)!!(2)锁相环设置顺序(3)超率不能超出范围(4)公式中的FOSC为晶振频率而非时钟频率,别搞错了!
SPI通信模块程序示例 void SPI_Init(void){ //SPI初始化
SPI0CR1=0xde; //SPI中断使能,SPI系统使能,SPI为主机模式,SPI时钟极性为低时钟有效,SPI传送期间从机SS脚可保持低电平
SPI0CR2=0x12;样 //模式错误使能,等待模式下停止SPI时钟
SPI0BR=0x07; //分频系数为256
SPI0SR_SPIF=0; //接收中断标志初始化为0
} void Send_Data(unsigned char data){ //SPI发送数据
while(!SPI0SR_SPTEF); //等待发送寄存器为空
SPI0DRL=data; while(!(SPI0SR_SPIF)); //等待接收标志置1,接收到的是返回值
aa=SPI0DRL; } unsigned char Read_Data(){ //SPI读数据
unsigned char data; while(!SPI0SR_SPTEF); //等待发送寄存器空(因为SPI中收、发都用一个寄存器)
SPI0DRL=0xff; while(!SPI0SR_SPIF); //等待接收标志置位
data=SPI0DRL; //读出数据
return data; //返回数据
} 注意:SPI要注意以下几点:(1)HCS12中SPI数据寄存器虽然有十六位,但有用的只有八位
(用到的)PC9S12XS128MAL中断向量表 #define VectorNumber_Vporth 25 PORTH中断号
#define VectorNumber_Vportj 24 PORTJ中断号
#define VectorNumber_Vatd0 22 A/D转换中断号
#define VectorNumber_Vsci1 21 串行口1中断号
#define VectorNumber_Vsci0 20 串行口0中断号
#define VectorNumber_Vtimch0 8 定时器中断