《嵌入式系统-使用HCS12微控制器的设计与应用.docx》由会员分享,可在线阅读,更多相关《嵌入式系统-使用HCS12微控制器的设计与应用.docx(27页珍藏版)》请在课桌文档上搜索。
1、嵌入式系统与单片机嵌入式系统的由来(通用计算机系统、嵌入式计算机系统)单片机的含义MCU与嵌入式系统的关系MCU的开展简史开展趋势大容量、高性能化小容量、低价格化外围电路内装化8位16位f32位f64位与硬件相关的术语封装(PaCkage)印刷电路板(PCB)动态可读/写随机存储器(DRAM)静态可读/写随机存储器(SRAM)只读存储器(RoM)Flash存储器(FIaShMemory)模拟量开关量1.2.2 与通信相关的术语并行通信串行通信串行外设接口(SPI)集成电路互连总线I2C通用串行总线USB控制器局域网CAN背景调试模式BDM边界扫描测试协议JTAG1.2.3 与功能模块相关的术语
2、通用输入/输出GPIOA/D与D/A脉冲宽度调制器PWM看门狗液晶显示器LCD发光二极管LED键盘1.2.4 与嵌入式软件相关的术语中断中断效劳程序实时操作系统RTOSCOS-II临界区嵌入式产品的一般构成嵌入式产品的一般开发方法1根本输入/输出分析2选择MCU的根本方法3选择评估系统并对与MCU相关的硬件进行初步评估4设计并制作硬件系统5进行硬件系统的模块测试6软件系统设计7系统测试8进一步工作嵌入式系统的特点资源受限开发需要专用工具和特殊方法要求较高可靠性和稳定性有实时约束通常极其关注本钱大多要求低功耗专用性很强技术含量高具有很长生命周期1.4.2 嵌入式系统的学习建议明确学习的目的选择好
3、入门的机型必要的记忆勤于实践学习各种接口的原理与时俱进,不断改良自己的学习方式从底层抓起,一点一滴打好根底FreescaleHCS12系列MCU的命名规那么MC9S12Dx256BxxxE:产品状态:存储器类型标志:CPU标志:系列标志:存储空间大小及版本工作温度范围标志:封装标志:无铅组装标志2.1.2HCS12各子系列MCU简介系列B系列C系列A系列D系列E系列GC系列H系列NE系列Q系列T系列UF系列相同点工作电压一般为5V不同点ROM大小RAM大小EEPROM大小Flash容量I/O口数串行借口A/D转换器FreescaleHCS12系列MCU的命名规那么MC9S12Dx256Bxxx
4、E:产品状态:存储器类型标志:CPU标志:系列标志:存储空间大小及版本工作温度范围标志:封装标志:无铅组装标志2.1.2HCS12各子系列MCU简介系列B系列C系列A系列D系列E系列GC系列H系列NE系列Q系列T系列UF系列相同点工作电压-一般为5V不同点ROM大小RAM大小EEPROM大小Flash容量I/O口数串行借口A/D转换器MCU性能概述1 .时钟和复位产生模块、存储器与封装形式2 .丰富的I/O接口3 .3.2运行模式1 .单片运行模式2 .扩展运行模式2.3.3内部结构简图、引脚图及引脚功能80引脚112引脚MC9S12DG128MCU的最小系统设计2.4MC9S12DG128的
5、存储器映像I/O接口的根本概念2.5.2AO.B口、E口和K口数据方向存放器分别为DDRA、DDRIkDDREDDRK0:定义输入1:定义输出I/O存放器分别为PORTA、PORTIkPORTE、PORTK输出时,0:输出低电平1:输出高电平输入时,0:外部输入低电平1:外部输入高电平上拉电阻控制存放器PUCR四口共用0:没有内部上拉电阻1:有内部上拉电阻2.5.3H口、J口、M口、P口、5口和1口1 .端口的存放器数据方向存放器I/O存放器输入存放器低功耗驱动存放器0:输出功耗正常1:输出功耗为正常的1/6上拉下拉使能存放器0:禁用上拉或下拉电阻1:允许上拉或下拉电阻上拉下拉选择存放器0:上
6、拉1:下拉2 .端口的复用功能T口:接收输入捕捉功能SD:SCESPl模块关联作为通信接口M:与ByteFIight、BDLCCAN、SPl模块关联作为通信接口P口:与PWM、SPI模块关联作为通信接口H口:与SPl模块关联作为通信接口J:与CAN、IlC模块关联作为通信接口3 .5.4其他I/O口A/D口:作为AD转换模块的模拟量输入口和外界触发脉冲的输入口也可以做为普通输入口3.1CPU12根本组成3.2寻址方式1 .内在寻址方式(INH)2 .立即寻址方式(IMM)3 .直接寻址方式(DIR)4 .扩展寻址方式(EXT)5 .相对变址寻址方式(REL)6 .变址寻址方式(IDX)7 .5
7、位偏移量变址方式8 .9位偏移量变址方式9 .16位偏移量变址方式10 .16位间接变址方式11 .自增自减变址寻址方式12 .累加器偏移变址寻址方式13 .累加器D间接寻址3.3指令系统1算术运算(加、减、乘、除、加1、减1、)2逻辑运算(与、或、异或、)3位操作(位测试、置位、)4移位(算术/逻辑/循环左/右移、)5程序控制(转移、比拟相等转移、)6模糊指令7数据传送(取数、存数、进栈、出栈、)8其他指令数据传送类指令取数指令存数指令传递指令交换指令MOVE指令堆栈指令算术运算类指令加、减法指令自增、自减指令比拟指令测试指令逻辑运算指令清零指令取反/求补指令乘/除法指令最大/最小值指令乘积
8、累加指令记忆标志位:C-进/借位标志V一溢出标志H-加法半字节进位标志N一正负标志位Z一零标志位3.3.3位操作类指令位测试指令BITA、BITB位置1指令BSET位清零指令BCLR移位类指令算术左移(ASL)逻辑左移(LSL)算术右移(ASR)逻辑右移(LSR)循环左移(ROL)循环右移(ROR)协助记忆:算术:Arithmetic逻辑:Logic左:Left右:Right循环:Rotate程序控制类指令短转移指令(地址偏移量:-128+127)长转移指令(地址偏移量:-32768+32767)位条件转移指令(地址偏移量:-128+127)BRCLRBREST循环控制指令跳转指令无条件转移J
9、MP绝对转移调用JSR相对转移调用BSR3.3.6模糊指令MEMREVREVWWAV3. 3.7其他指令表插补指令中断指令变址操作指令指针和变址计算指令条件码指令停止与等待模式指令后台模式与空操作3.4CPU12与CPUO8的比拟HCS12汇编源代码格式根本概念编译器伪指令语句元素标号操作码操作数(常数、#、圆点)注释MT-IDEforHCSI2开发环境中的汇编伪指令变量定义Al:.balign1A2:.baIignw1数字常数与字符串常数定义常数赋值与文本替代符伪指令,definePI=3.14存储定位伪指令文件包含伪指令.include3. 5.3CodeWarriorforHCSI2开发
10、环境中的汇编伪指令变量定义1.ABELl:DS.B1LABEL2:DS.W1数字常数与字符串常数定义常数赋值与文本替代符伪指令PI:EQU3.14存储定位伪指令文件包含伪指令INCLUDEMT-IDEforHCS12集成开发环境简称MT环境Freescale公司CodeWarriorforHCS12集成开发环境简称CW环境MT-IDEforHCS12集成开发环境CodeWarriorforHCS12集成开发环境嵌入式系统工程文件组织列表文件(*.LIS或*.LST)列表文件的行内容格式:目标代码文件(*S19)目标代码文件是以S记录(八种)格式表示的机器码文件与链接相关的地址信息文件小灯闪烁汇
11、编工程在MT环境下的文件组织1与芯片相关的程序文件DG128SM.h定义芯片映像存放器名Vector.s一定义中断向量表Isr.s-中断处理子程序Startl2.s一系统启动文件MCUInit.h芯片初始化头文件MCUInit.s芯片初始化文件2硬件对象控制文件1.ED.h-小灯控制引脚宏定义包含小灯驱动所需头文件小灯控制引脚宏定义小灯驱动子程序声明1.ED.s-小灯驱动子程序定义子程序LEDInit:初始化定义子程序LED_L_A:驱动小灯亮,暗3通用程序文件Includes,h-总头文件工程中用到的头文件有关常量命名GeneralFun.s-通用子程序定义子程序DeIayX:延时4主程序文
12、件main,s-主程序工程描述包含总头文件主程序内部直接调用子程序子程序编写标准(以LED.s为例)MT环境下第一个汇编工程的链接信息文件链接信息文件IinkerJd链接有两种模式内存直接模式内存扩展模式4. 3.3MT环境下第一个汇编工程的执行过程小灯闪烁C工程在MT环境下的文件组织MT环境下第一个C工程的链接信息文件链接信息文件Iinker.Id内容与汇编链接信息相同4.4.3MT环境下第一个C工程的执行过程小灯闪烁汇编工程在CW环境下的文件组织CW环境下第一个汇编工程中的链接信息文件CW环境下第一个汇编工程的执行过程小灯闪烁C工程在CW环境下的文件组织4.6.2CW环境下第一个C工程中的
13、链接信息文件CW环境下第一个C工程的执行过程小灯闪烁C工程在CW环境下的文件组织4.6.2CW环境下第一个C工程中的链接信息文件CW环境下第一个C工程的执行过程映像存放器名C工程中调用汇编语句的格式中断函数的声明根本概念1.异步串行通信的格式(NRZ)2 .串行通信的波特率定义:每秒内传送的位数。单位:b/s或bps常用:1200bpsX4800bpsX9600bps3 .奇偶校验奇校验:校验位为0或L使得1的数目是奇数偶校验:校验位为0或1,使得1的数目是偶数4.串行通信的传输方式单工:1根数据线全双工:2根数据线半双工:1根数据线RS-232C总线标准1 .采用负逻辑逻辑“1”:T5V-3
14、V逻辑ii0ff:+3V15V2 .传输距离W30m,通信速率20Kbps3 .接口9芯、25芯地线、发送数据线、接收数据线SCI的外围硬件电路SCI的根本编程原理SCI的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转换为单线输出。SCI波特率存放器根据波特率设置存放器的公式:BR=fBUS(16Bt)举例:总线频率fBUS=19.6608MHz,定义波特率Bt=9600(针对SCIO)SCI0BDL=0x80;须先给低8位赋值Sciobdh=OxOO;再给高5位赋值SCI控制存放器1缩写:SCIOCRRSCI1CR1位
15、定义:举例:设置允许SCI、正常码输出、8位数据、无校验Sciocri=OxOO;SCI控制存放器2缩写:SCI0CR2SCI1CR2位定义:举例:设置允许发送、允许接收,查询方式收发SCI0CR2=0x0C;SCI状态存放器1缩写:SCIOSR1SCI1SR1位定义:只读常用:D7=l:可以发送数据;D7=0:不可以发送数据,需等待D5=l:可以取出数据;D5=0:不可以取出数据,需等待SCI状态存放器2缩写:SCI0SR2SCI1SR2位定义:只读常用:DO=I:正在接收数据;SCI数据存放器缩写:SCIODRHSCIODRL、SCIlDRH、SCI1DRL位定义:SCI初始化发送一个数据
16、与接收一个数据串行通信子函数SCLh:串行通信头文件串行通信存放器及标志位定义串行通信相关函数声明SCIInit.c:串行口SClO初始化函数voidSCIInit(void)SCI.c:串行发送与接收通用子函数voidSCISendl(INT8Uo)voidSCISendN(INT8Un,INT8Uch)INT8USCIRel(INT8U*p)INT8USCIReN(INT8Un,INT8Uch)5.5.2查询方式收发测试工程查询方式收发测试工程主函数文件main,c中断方式测试工程辅助工具中断方式HCSI2C语言主程序串行中断子函数声明(isr.h)ttifndefISRJ防止重复定义de
17、fineISRJvoidISR_Receive(void);/接收中断函数声明void_attribute_(interrupt)ISR_Empty(void);void_start(void);/复位函数(StartCode.s中定义,特殊)芯片开关总中断的宏定义defineENABLE,INTERRUPTS_asm_Ccli)开中断#defineDISABLE,INTERRUPTS_asm_(,zsei)关中断开关各模块中断的宏定义开放或禁止SCIO的接收中断的宏定义defineEnableSCIReIntSCI0CR2=0x20开放SCIo接收中断defineDisableSCIReIn
18、tSCI0CR2&=OxDF禁止SClo接收中断ttendif串行中断函数(isr.c)/ISR_Receive:SCIO接收中断函数void_attribute_(interrupt)ISR_Receive(void)(INT8Ui;INT8USeriaIBUff1;存放接收数据的数组Disablejnterrupts;关总中断i=SCIReN(IjSerialBuff);等待接收1个数据if(i=0)SCISendN(l,SerialBuff);发送接到的数据ENABLE_INTERRlJPTS;开总中断)ISR_Empty:空中断函数定义void_attribute_(interrupt
19、)ISR_Empty(void)()将串口端用作电源5.6.2握手5.6.3唤醒功能空闲线唤醒地址标志唤醒键盘模型及接口键盘模型(通、断)键盘接口:独立式键盘、矩阵式键盘键盘的根本问题键的识别抖动问题重键问题键值计算方法(以符号“1为例)键盘函数定义头函数(KBh)键盘扫描识别存放器及标志位定义#defineKB_PPTH键盘接在PTH口上#defineKB_DDDRH相应的方向存放器#defineKB_PEPERH相应的上拉下拉电阻允许存放器#defineKB_PSPPSH相应的极性选择存放器#defineKB_IEPIEH相应的中断允许存放器#defineKB_IFPIFH相应的中断标志存
20、放器/键盘扫输识别函数声明voidKB_Init(void);/键盘初始化INT8UKB_Scanl(void);扫描读取键值INT8UKB_Def(INT8UKB_valve);键值转为定义值INT8UKB_ScanN(INT8UKB_count);屡次扫描键盘6.2.2 键盘函数定义(KBc)键盘初始化的函数voidKB_Init(void)扫描一注读取键值的函数INT8UKB_Scanl(void)扫描KB_count次读取键值的函数INT8UKB_ScanN(INT8UKB_count)将键值KB_valve转为定义殖的函数INT8UKB_Def(INT8UKB_valve)6.2.3
21、 测试工程的主函数(main,c)扫描法LED显示编程原理8段数码管由8个发光二极管(LED)组成需有8位(即1个字节)数据来控制各个位段的亮灭扫描法LED显示编程原理接口实例数码管HCSl2C语言实例LLED函数定义头文件(LED.h)2 .LED函数定义文件(LED.c)4连排LED初始化函数voidLEDInit(void)在4连排LED上显示以Buf为首地址的4个数据voidLEDShow(INT8U*Buf)在第i个LED上显示数字cvoidLEDShowl(INT8Ui,INT8Uc)3 .测试工程的主函数(main.c)第1步:禁止总中断第2步:芯片初始化第3步:SCl模块初始化
22、、LED控制引脚初始化第4步:LED初始显示“0123”第5步:开放SCl接收中断第6步:开放总中断第7步:假设正确收到数据,刷新显示缓冲区第8步:转第7步1.CD的特点低电压微功耗平板型结构使用寿命长被动显示显示信息量大且易于彩色化无电磁辐射6.4.2LCD的分类按电光效应分类电场效应类电流效应类电热写入效应类热效应类按显示内容分类字段型点阵字符型点阵图形型按LCD的采光方式分类带背光源不带背光源点阵字符型液晶显示模块的根本特点字符群:5X8或5X11点阵块主控制电路:HD44780内部具有字符发生器自定义字符RAM数据显示RAM标准接口特性模块结构紧凑、轻巧、装配容易。单+5V电源供电低功
23、耗、高可靠性。6.5.2HD44780的引脚与时序一引脚HD44780的编程结构1.指令存放器(IR)2,数据存放器(DR)3 .忙标志(BF)4 .地址计数器(AC)5 .显示数据存放器(DDRAM)6 .字符发生器ROM(CGROM)7 .字符发生器RAM(CGRAM)6. 5.4HD44780的指令集点阵字符型LCD编程1.CD函数定义头文件(LCD.h)液晶显示存放器及标志位定义液晶显示相关函数声明7. 6.2LCD函数定义(LCDc)初始化LCD函数voidLCDInit(void)HD44780显示屏显示str所指向的32个数据voidLCDShow(INT8Ustr)执行给定的c
24、md命令,且延时voidLCD_Command(unsignedcharcmd)测试工程的主函数(main,c)Hz- 9 Hz Hz- 9 Hz -以以以以以以9 12345678 第第第第第第第第:定义初始显示缓存并赋初值:禁止总中断:芯片初始化:串行口初始化、LCD初始化:开放总中断:LCD显示初始化:假设正确收到32个数据,那么显示到LCD:转第7步功能描述SPl模块的I/O引脚从机选择引脚主出从入引脚MOSl主入从出引脚MlSOSPI串行时钟引脚SPSCKSPI模块的存放器SPI编程根本方法SPI初始化第1步:写控制字到SPlCR,确定是否允许SPl接收中断、SPl的工作方式、时钟极
25、性、时钟相位、是否允许SPl等。第2步:写控制字到SPISCR,确定SPl的波特率。发送与接收1字节数据通过SPI发送1字节数据voidSPISendl(INT8USendData)通过SPI接收1字节数据INT8USPIRevKvoid)SPI接口对一些扩展芯片如AD采集芯片TLC2543等应用比拟广泛。TLC2543与具有SPI或相同接口能力的MCU可以直接连接.对于没有SPl接口的MCU可以通过软件编程合成SPl操作。IIC总线特点二线制支持多主控位速率100kbit/s3.4Mbitso连接到相同总线的IC数量7.4.2 IIC总线标准的开展历史1992年1998年2001年7.4.3
26、 IlC总线的相关术语主机(主控器)从机(被控器)地址发送器接收器SDA(SerialDAta)SCL(SerialCLock)HC寻址约定地址总线上数据的有效性总线上的信号IIC总线寻址约定起始信号后的第一个字节为寻址字节寻址字节由被控器的七位地址位和一位方向位组成任意两个从机的地址都不相同7.5.5主机向从机读写1个字节数据的过程DG128芯片IIC的模块允许多主机模式,符合IlC总线协议;可软件编程选择256个串行时钟频率;软件编程实现ACK信号;位与位之间的中断传输方式;仲裁丧失中断的同时,自动从主机模式切换到从机模式;具有从地址识别中断;起停信号的产生和检测,并可以重复产生开始信号;
27、信号的产生和检测;总线繁忙检测。7.6.2HC模块存放能介绍IIC模块编程IlC模块初始化函数voidIICInit(void)接收与发送1字节数据接收1字节数据的函数INT8UIICreadl(INT8UDeviceAddr,INT8UAccessAddr,INT8U*Data)发送1字节数据的函数INT8UIICwritel(INT8UDeviceAddr,INT8UAccessAddr,INT8UData)接收与发送N字节数据接收N字节数据的函数INT8UIICreadN(INT8UDeviceAddr,INT8UAccessAddr,INT8UData,INT8UN)发送N字节数据的函
28、数INT8UIICwriteN(INT8UDeviceAddr,INT8UAccessAddr,INT8UData,INT8UN)仲裁程序时钟同步握手时钟周期延长.1.1A/D转换1.采样精度1 .采样速率2 .滤波3 .物理量回归4 .1.2A/D转换器积分型A/D转换器逐次逼近型A/D转换器8.1. 3D/A转换D/A转换器的转换精度分辨率转换误差D/A转换器的转换速度建立时间tset转换速率SR8.1.4 D/A转换器D/A转换器的组成开关网络电阻网络集成运放组成比例求和电路倒T型电阻网络D/A转换器DG128内部A/D转换模块存放器A/D转换控制存放器2A/D转换控制存放器3A/D转换
29、控制存放器4A/D转换控制存放器5A/D转换状态存放器OA/D转换测试存放器1A/D转换状态存放器1A/D转换输入使能存放器A/D转换端口数据存放器A/D转换结果存放器8.1.5 A/D转换模块的根本编程方法1 .A/D转换初始化ATDCTL2=ObIIOOOO(X);/ATDCTL2.ADPU=1为翻开转换电源开关/ATDCTL2.AFFC=1为A/D转换CCF自动清0位ATDCTL3=0b00001011;/ATDCTL3.S1C=1表示序列长度为1/ATDCTL3.FIFO=0为非FIFO模式/ATDCTL3.FRZ0-FRZ1=11表示立刻进入冻结模式ATDCTL4=ObOOO(X)I
30、ll;/ATDCTL4.PRS4-PRSO=OOlll表示总线频率16分频ATDCTL4&=ObolllIl11;/ATDCTL4.SRES8=0表示10位转换精度2 .启动A/D转换ATDCTL5=ObOO100000;/ATDCTL5.DJM=0,结果存放器数据采用左调整方式/ATDCTL5.SCAN=1,连续转换序列/ATDCTL5.CC-CA=000,启动0通道转换3 .获A/D转换结果while(l)判断ATDSTAT0的第7位是否为1if(ATDSTAT0&(lSCFBit)!=0)从A/D数据存放器O中读数据temp=ATDDRO;/!O-bit数据对数据调整,使低十位有效tem
31、p=(temp6);break;returntemp;返回1O-bit的转换结果8.3.1 A/D转换C语言头函数(ADCh)/AD转换存放器及标志位定义#defineSCFBit7转换完成标志位串行通信相关函数声明/A/D转换初始化voidADCInit(Void);/1路10位A/D转换INT16UADCvalue(INT8Uchannel);/1路10位A/D转换(中值滤波)INT16UADCmid(INT8Uchannel);/1路10位A/D转换(平均值滤波)INT16UADCave(INT8Un,INT8Uchannel);8.3.2 A/D转换的C语言子函数(ADcC)A/D转换
32、初始化voidADCInit(Void)1路10位A/D转换函数INT16UADCvaIue(INT8Uchannel)1路A/D转换函数(中值滤波)INT16UADCmid(INT8Uchannel)1路A/D转换函数(均值滤波)INT16UADCave(INT8Un,INT8Uchannel)8.3.3 A/D转换测试实例主函数(mainc)第1步:禁止总中断第2步:芯片初始化第3步:串口初始化第4步:A/D转换初始化第5步:在通道0做A/D转换,200次中值滤波第6步:发送高8位数据第7步:发送低8位第8步:延迟第9步:转第5步8.4.1A/D芯片TLC2543概述引脚说明编程要点控制字
33、的格式内部存放器转换过程与MCU的接口方法SPI模块与TLC2543的接口扩展扩展电路设计编程方法SPl头函数(SPLh)SPI通信存放器及标志位定义SPI通信相关函数声明TLC2543驱动函数(TLC2543_Driver.c)1路AD转换函数INT16UTLC2543(INT16Ucs,INT8Uchannel)n路AD均值滤波函数voidADCP(INT8Un,INT8Ucs,INT8Uchannel,INT16U*Values)应用举例:利用上述子程序实现n路A/D数据的采集,并进行平均值滤波。每一路取n次求平均。voidDCP(INT8Un,INT8Ucs,INT8Uchannel,
34、INT16U*Values)n:均值滤波次数cs:片数Channel:每片的通道数Values:AD平均值DA芯片TLV5608概述引脚说明TLV5608的控制存放器控制存放器O(CTRLO)控制存放器I(CTRLI)TLV5608工作原理SPI模块与TLV5608的接口实现扩展DA的程序实现D/A转换中的SPl初始化voidDSPIInit(void)D/A转换程序voidDC(INT16U*value)TLV5608芯片D/A转换初始化子程序(TLV5608Init.c)voidTLV5608Init(void)TLV5608芯片D/A转换子程序(TLV5608Z.c)voidTLV560
35、8Z(INT16Uchannel,INT16Ubuf)热敏电阻温度传感器灰度传感器超声波传感器红外线传感器实现计数与定时的根本方法完全硬件方式完全软件方式可编程定时器9.1.2MC9S12DG128BMCU的定时接口根本原理概述定时器模块的3类根本存放器定时器系统控制存放器I(TSCRl)定时器系统控制存放器2(TSCR2)定时器计数器(TCNT)主定时器中断标志存放器2(TFLG2)9.2.2定时器模块的中断13个中断向量8个定时器通道产生的中断1个模数计数器下溢中断1个脉冲累加器B溢出中断1个脉冲累加器A输入中断1个脉冲累加器A溢出中断1个定时器溢出中断9.2.3定时溢出中断编程C语言程序
36、实例(MCU方程序)定时溢出中断编程C语言程序实例主程序(main,c)第1步:禁止总中断第2步:芯片初始化第3步:模块初始化(串口初始化、定时器1初始化)第4步:内存初始化第5步:开放各模块中断(开放SCIo接收中断、开放定时器1溢出中断)第6步:开放总中断第7步:发送当前时分秒第8步:转第7步定时溢出中断编程C语言程序例向量表文件(VeCtOrs.c)void(*constvector)()=isrRe,ffd6(SCIO中断)iSrTimOver,ffde(时钟溢出)_start/fffe(reset)r;输入捕捉的根本含义与输入捕捉功能相关的引脚IoC(HOC78个通道分成两组,每组4
37、个通道输入捕捉的根本含义输入捕捉存放器输入捕捉/输出比拟选择存放器(TIOS)通道存放器07(TC(7)定时器中断标志存放器I(TFLGI)定时器中断允许存放器(TIE)定时器控制存放器3/定时器控制存放器4(TeTL3/TCTL4)输入控制修改存放器(ICOVW)输入控制系统控制存放器(ICSYS)延迟计数控制存放器(DLYCT)定时器输入捕捉保持存放器03(TCoHTC3H)模数减1计数器(MCCNT)9.3.3带缓冲和不带缓冲的输入捕捉通道不带缓冲的输入捕捉通道带缓冲的输入捕捉通道D输入捕捉锁存模式2)输入捕捉队列模式9.3.4输入捕捉中断编程C语言程序实例输入捕捉中断编程C语言程序例主
38、程序(Inain.c)第1步:禁止总中断第2步:芯片初始化第3步:模块初始化(输入捕捉初始化、小灯初始化)第4步:开放总中断第5步:转第5步(等待中断)输入捕捉中断编程C语言程序例向量表文件(VeCtOrs.c)void(*constvector)()=ISRTimerChanO,/ffee(定时器通道0)_start/fffe(复位)输出比拟的根本含义与输出比拟功能相关的引脚与输入捕捉的引脚相同输出比拟的含义功能:用程序的方法在规定的时刻输出需要的电平,实现对外部电路的控制。9.4.2 输出比拟存放器输入捕捉/输出比拟选择存放器(TlOS)定时器控制存放器1/定时器控制存放器2(TeTLl/
39、TCTL2)通道存放器07(TC07)定时器强制输出比拟存放器(CFoRC)输出比拟7屏蔽存放器(OC7M)输出比拟7数据存放器(OC7D)定时器溢出翻转存放器(TTOV)定时器中断允许存放器(TlE)和主定时器中断标志存放器I(TFLGI)脉冲累加的根本含义与脉冲累加功能相关的引脚外部引脚为POP3脉冲累加的含义脉冲累加器有两种工作模式脉冲累加锁存模式脉冲累加队列模式9.4.3 脉冲累加存放器16位脉冲累加器A控制存放器(PACTL)脉冲累加标志存放器(PAFLG)16位脉冲累加器B控制存放器(PBCTL)脉冲累加器B标志存放器(PBFLG)脉冲累加器计数器3O(PACN3PACNO)输入脉
40、冲累加器控制存放器(ICPAR)8位脉冲累加器保持存放器30(PA3HPAOH)16位模数减1计数器控制存放器(MCCTL)16位模数减1计数器标志存放器(MCFLG)9.4.4 脉冲累加器编程C语言程序实例(MCU方程序)定时器脉冲累加器编程C语言程序实例主程序(main第1步:禁止总中断第2步:芯片初始化第3步:模块初始化(串行通信初始化、脉冲累加器初始化)第4步:内存初始化第5步:开放总中断第6步:等待中断,将计数值发送给PC机第7步:转第6步定时器脉冲累加器A初始化子程序(PA.c)第1步:禁止总中断第2步:设置单独使用脉冲累加器的条件第3步:设置脉冲累加方式第4步:选择脉冲累加器计数
41、器加1操作的触发条件第5步:设置中断条件第6步:启用脉冲累加器A第7步:开放总中断脉冲累加器计数器中断编程C语言程序例向量表文件(VeCtorS.c)void(*constvector)()=ISR_Empty,/ff80(保存)ISR_PA,/ffda(脉冲累加输入边缘)ISR_PAOV,/ffdc(脉冲累加器A溢出中断).start/fffe(复位)CAN的根本概念CAN的分层结构CAN对象层报文滤波以及状态和报文的处理。CAN传输层把接收到的报文提供应对象层,以及接收来自对象层的报文。物理层在不同节点之间根据所有的电气属性进行位信息的实际传输。10.1.3报文传输和帧结构数据帧10.2M
42、SCAN12模块简介MSCAN12特性符合CAN2.0A/B协议标准支持标准和扩展数据帧格式数据长度为08字节可编程位速率,最大IMbPS支持远程帧拥有5个FIFO机制的接收缓冲区,3个具有局部优先级的发送缓冲区具有灵活的标识符验收模式10.2.2外部引脚报文存储结构标识符验收滤波MSCAN12有4种滤波器方式双标识符验收过滤器四个标识符验收过滤器八个标识符验收过滤器关闭过滤器MSCAm2模块内存映射10.3.2MSCAN12模块存放器1 .控制存放器1) MSCAN控制存放器0(CANCTLO)2) MSCAN控制存放器I(CANCTLI)3) MSCAN总线时钟存放器O(CANBTRO)4
43、) MSCAN总线时钟存放器I(CANBTRI)5) MSCAN接收器标志存放器(CANRFLG)6) MSCAN接收器中断使能存放器(CANRIER)7) MSCAN发送器标志存放器(CANTFLG)8) MSCAN发送器中断使能存放器(CANTlER)9) MSCAN发送器消息中止控制存放器(CANTARQ)10) MSCAN发送器消息中止控制存放器(CANTAAK)11) MSCAN发送缓冲区选择存放器(CANTBSEL)12) MSCAN标识符验收控制存放器(Cantidac)13) MSCAN接收错误计数存放器(CANRXERR)14) MSCAN发送错误计数存放器(CANTXERR)15) MSCAN标识符验收码存放器(CANlDAR07)16) MSCAN标识符屏蔽存放器(CANIDMR07)2 .报文存储机制(1)标识符存放器(IDRo3)(2)数据段存放器(