




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
08系列单片机简介,Freescale的08系列单片机主要有HC08、HCS08和RS08三种类型。HC08推出较早,种类较多,针对不同场合都可以选到合适的型号。HCS08是最近推出的08系列单片机,性价比高,是08系列单片机的发展趋势。RS08是HCS08架构的简化版,其内核体积小,带有精简指令集、满足用户对体积更小、更加经济高效地解决方案的需求。,1,指产品状态存储器类型标志芯片内核型号标志存储器大小工作温度范围标志封装标志特别说明:FreescaleHC08芯片以前命名中包含了“68HC”部分,如:MC908GP32芯片以前的名称是MC68HC908GP32,在很多资料中对于HC08芯片都沿用了这种方法。,Freescale单片机基本命名规则,MC908GP32,2,08系列单片机资源简介,3,MC68HC908GP32单片机性能,存储容量:512B片内RAM;32K片内Flash;CPU速度:内部总线频率最高达8MHz;33根通用I/O脚,26根多功能I/O脚和5或7根专用I/O脚(复用)SCI和SPI;两个16位双通道定时器接口模块(TIM1和TIM2);8位键盘中断接口;增强的HC05CPU结构;16种寻址方式;16位变址寄存器和堆栈指针;,4,GP32内部结构简图,5,电源和时钟类引脚控制类引脚I/O类引脚其它,GP32的外部引脚,6,GP32最小系统,要使MCU能工作,至少必须有电源与滤波电路、晶振(即时钟)电路和复位电路。,7,GP32存储器组织-RAM,CPU08可寻址64KB地址空间$0000$FFFF,分成多个作用不同的区段。,$0040,用户RAM,栈RAM,$023F,SP,$00FF,第0页,寻址方便,但SP寄存器初值为$00FF,可用指令调整为$023F,8,GP32存储器组织-FLASH,$8000,用户代码区,$FDFF,可随机按字节读不可随机写,写前要先擦除,且需按一定步骤进行,9,GP32存储器组织-寄存器,每个寄存器都有一个固定的地址,如$0000是A口数据寄存器的地址,指令中出现地址$0000则是访问A口数据寄存器;为便于使用,通常用名字代替地址,做法是用伪指令将地址与“名”对应起来。如:C语言格式:#definePTA*(volatileunsignedchar*)0 x00汇编语言格式:或PTA=$0000,10,GP32存储器组织-向量区,$FFDC$FFFF为向量区,存放中断及复位后程序的入口地址;,.org0 xffdc/中断向量表起始地址vectab:.wordisrDummy/时基.wordisrDummy/AD转换.wordisrDummy/键盘.wordisrDummy/SCI发送.wordisrDummy/SCI接收.wordisrDummy/SCI错误.wordisrDummy/SPI发送.wordisrDummy/SPI错误.wordisrDummy/TIM2溢出.wordisrDummy/TIM2通道1输入捕捉/输出比较.wordisrDummy/TIM2通道0输入捕捉/输出比较.wordisrDummy/TIM1溢出.wordisrDummy/TIM1通道1输入捕捉/输出比较.wordisrDummy/TIM1通道0输入捕捉/输出比较.wordisrDummy/CGM的PLL锁相状态变化.wordisrDummy/IRQ引脚中断.wordisrDummy/SWI指令中断.wordMainInit/RESET(见主程序定位处),11,HC08CPU结构,目标代码与M68HC05系列单片机向上兼容16位堆栈指针SP、16位变址寄存器HX8MHzCPU内部总线频率64KB程序/数据存储器空间16种寻址方式存储器之间数据直接传送8位8位乘法、16位与8位除法指令,BCD指令模块化结构可扩展的内部总线定义可使寻址范围超过64KB低功耗的STOP、WAIT模式,12,HC08CPU内的5个寄存器,8位通用寄存器,用来存放操作数和运算结果。复位不影响。,16位地址寄存器,也可存放临时数据。H-高8位,X-低8位,可分开使用。复位后H被清零,指向下一个栈地址,采用递减的结构(即进栈SP减1,出栈SP加1)。复位后SP为$00FF。,存放下一条要执行的指令地址,复位后装入FFFE:FFFF中的内容。,C:D7上有进/借位,置1Z:运算结果为0,置1N:D7为1,则置1I:I为1,则禁止中断H:D3上有进位,置1V:补码运算有溢出,置1,13,HC08指令系统,CPU执行的操作命令称为指令。CPU执行的各种指令集合,称为该处理器的指令系统。HC08CPU共有270条具体指令。指令格式:指令由两部分组成:操作码和操作数。操作码:规定指令进行什么操作;操作数:指令操作的对象指令所占字节数:最短1字节,最长6字节。指令执行时间:最快1个CPU时钟振荡周期,最慢6个。确定指令中操作数的方法称为寻址方式(AddressingMode)。HC08的寻址方式共有16种。,14,HC08的寻址方式-1,15,HC08的寻址方式-2,说明:IX+和IX1+只用于CBEQ指令,通常用于寻找一段存储区中是否有与A中相等的数。,16,练习,请指出下列各指令中源和目标操作数,lda#$40lda$40ldhx#$8000lda,xlda$40,xmov#%10,$40mov%10,$40mov%10,x+,$40A$40A$8000HXHXA$40+HXA%10$40%10$40%10HX,(HX)+1HX,17,18,HC08指令系统简表,19,数据传送类-取存指令,例:LDA#$80LDX#%10000000LDHX#80,除立即数外,与取数指令对应。例:STA$80STX%100000000STHX$80,20,数据传送类-堆栈操作,进入中断服务程序或子程序时,通过入栈来保护各寄存器中的内容。退出时,通过出栈还原各寄存器。,21,数据传送类-寄存器间互传,22,数据传送类-存储器间互传,例:MOVN1,N2MOVN1,X+,23,算术运算类-加减,加、减指令的第一操作数在A中,第二操作数为立即数或存储器,结果放在A中。根据运算结果改变V、H、N、Z、C标志位:C若D7有进(借)位,则置1,否则清0。V若溢出,则置1,否则清0。H若D3有进位,则置1,否则清0(减法不影响H)。N若D7为1,则置1,否则清0。Z若结果为0,则置1,否则清0。,24,算术运算类-加减,如:ADD#$80ADDN1ADD,X,如:SUB#$80SUBN1SUB,X,25,算术运算类-乘除,MUL:X*A,乘积的高字节放入X中,低字节放入A中。同时清标志位H和C,不影响其它标志位。DIV:(H、A)/X,商放入A中,余数放入H中。若商大于$FF,则置标志C,否则清C。若商为0,置标志Z,否则清Z。不影响其它标志位。,26,算术运算类-自加1、减1,可对A、X和存储单元自加或自减,影响V、N、Z。,27,算术运算类-取反和求补,若A=$FF,执行COMA后,A=$00。若A=$00,执行COMA后,A=$FF。若A=$FF,执行NEGA后,A=$01。若A=$00,执行NEGA后,A=$00。,28,算术运算类-比较,比较指令执行减法,但不改变操作数,只影响标志位,29,算术运算类-清零、测试,清零指令将操作数清0,同时清V、N标志,置Z标志,不改变H、I、C标志。测试指令将操作数与0比较,清C标志,改变N、Z标志,不影响其它标志。,30,算术运算类-SP与HX自加,两条指令均不影响标志位,31,逻辑运算类,清V标志改变N、Z标志不影响H、C标志,32,位操作,位测试,与AND相同,但不影响操作数,清/置C标志,清/置中断标志I,清/置$00$FF存储单元的第n位,33,移位类-左移,只能移8位,b7C,其它左移1位,0b0,相当于乘2。ASL与LSL功能完全相同。,34,移位类-右移,ASR:b7不变,其它位右移1位,b0移入C,相当于除以2。LSR:0移入b7,其它位右移1位,b0位移入C。,35,移位类-循环移位,循环移位只是b7b0、C共9个位的移动,36,程序控制类-一般转移指令,标志位测试,无符号比较,有符号比较,位测试转移,无条件转移,全部相对转移,范围:-128127,37,程序控制类-特殊转移,38,程序控制类-跳转,无条件长跳,子程序调用,相对子程序调用,子程序返回,39,其它指令,中断,BCD调整,特殊指令,40,练习,ldhx#$0040mov#10,$50mov#-128,$51mov#127,$52findmaxmin:lda,xcmp$51bltfindminsta$51jmpnextfindmin:cmp$52bgtnextsta$52next:aix#1dbnz$50,findmaxmin,请说明下列程序段中各指令的寻址方式、运行结果以及该程序段的功能。,8016450040ldhx#$004080196E0A50mov#10,$50801C6E8051mov#-128,$51801F6E7F52mov#127,$528022findmaxmin:8022F6lda,x8023B151cmp$5180259104bltfindmin8027B751sta$5180292006branext802Bfindmin:802BB152cmp$52802D9202bgtnext802FB752sta$528031next:8031AF01aix#%180333B50ECdbnz$50,findmaxmin,41,42,HC08汇编程序设计,ldhx#$0040mov#10,$50mov#-128,$51mov#127,$52findmaxmin:lda,xcmp$51bltfindminsta$51jmpnextfindmin:cmp$52bgtnextsta$52next:aix#1dbnz$50,findmaxmin,maxminsub:ldhx#arrmov#10,nmov#-128,maxmov#127,minfindmaxmin:lda,xcmpmaxbltfindminstamaxjmpnextfindmin:cmpminbgtnextstaminnext:aix#1dbnz*n,findmaxminrts,43,HC08汇编程序设计-格式,.includeIncludes.h/头文件.orgRAMstartAddr/RAM区开始arr:.blkb10n:.blkb1max:.blkb1min:.FlashStartAddr/代码区开始a1:.byte19,13,16,21,0,8,10,5,-1,-32MainInit:SEI/关总中断LDHX#RAMEndAddr+1/HX=#RAMEndAddr+1TXS/HX-1-SP堆栈初始化JSRMCUInit/系统初始化MainLoop:JSRmaxminsubJMPMainLoop.includeSetUp.s/芯片初始化.include“Vectors08.s”/中断处理子程序与中断向量表文件,标号,(伪)指令,注释,44,HC08汇编程序设计-标号,标号须顶格,后跟冒号“:”(局部)或双冒号“:”(全局)字符集:AZ、az、09、“_”、“$”不以数字和$打头,大小写有别,不能重复,45,HC08汇编程序设计-常用伪指令,i1:.blkb4/相当于chari14;w1:.blkw4/相当于intw14;c1:.byte0 x36/相当于constcharc1=0 x36;w1:.word0 x3638/相当于constintw1=0 x3638;str1:.ASCII“helloworld!”/不含0str2:.ASCIZ“helloworld!”/以0结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论