ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:38.09KB ,
资源ID:7299968      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7299968.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式技术基础与实践王宜怀复习指导Word文件下载.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式技术基础与实践王宜怀复习指导Word文件下载.docx

1、7.S08 CPU的寻址方式:(1)内在寻址方式(INH)(2)立即寻址方式(IMM)(3)直接寻址方式(DIR)(4)扩展寻址方式(EXT)(5)无偏移量变址方式(IX)(6)8位偏移量变址方式(IX1)(7)16位偏移量变址方式(IX2)(8)相对变址寻址方式(REL)(9)存储器:直接地址直接地址寻址方式(DD)(10)存储器:直接地址变址、变址加1的寻址方式(DIX+)(11)存储器:立即数直接地址寻址方式(IMD)(12)存储器:变址直接地址、变址加1的寻址方式(IX+D)(13)无偏移量变址、变址加1寻址方式(IX+)(14)8位偏移量变址、变址加1寻址方式(IX1+)(15)8位

2、偏移量堆栈寻址方式(SP1)(16)16位偏移量堆栈寻址方式(SP2)8.S08 CPU的指令系统:(1)数据传送指令:取数指令、存数指令、堆栈操作指令、寄存器间数据传送指令、存储器间数据传送指令。(2)算术运算指令:加减指令堆栈操作指令、乘/除法指令、加1/减1指令、取反/求补指令、比较指令、清零指令、测试是否为0指令、SP与HX增加指令。(3)逻辑运算指令:完成逻辑与、或、异或等操作。(4)位操作类指令:位测试、位置1、位清0等操作。(5)移位类指令:单向移位指令、循环移位指令。(6)程序控制指令:一般转移指令、特殊转移指令、跳转指令 。(7)其他指令。第3章第一个样例程序及CodeWar

3、rior工程组织1.通用I/O接口:I/O接口,即输入输出接口,是微控制器同外界进行交互的重要通道。所谓通用I/O,也记为GPIO(General Purpose I/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。2.上拉电阻和下拉电阻:MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”。3.AW60的GPIO接口:AW60有7个GPIO口,每个GPIO口的名称由一位英文字母组成,分别是A、B、C、D、E、F、G。GPIO模块的每个口最多

4、对应8个GPIO引脚,但各个GPIO口的编程寄存器均为8位,没有对应引脚的位无效。GPIO的基本寄存器:(1)端口数据方向寄存器(DDR):若为0,则为输入,若为1,则为输出。(2)端口数据寄存器:存放要输入或输出的数据。第4章基于硬件构件的嵌入式系统开发方法1.嵌入式系统开发主要存在以下两大问题:硬件设计缺乏重用支持驱动程序可移植性差 2.根据接口之间的生产消费关系,接口可分为两类:提供接口和需求接口。根据所拥有接口类型的不同,硬件构件分为三类: 核心构件、中间构件、终端构件。第5章串行通信接口SCI1.串行通信的概念:SCI(standard non-return-zero mark/sp

5、ace data format) “标准不归零传号/空号数据格式,通常采用NRZ数据格式。“不归零”的最初含义是:用正、负电平表示二进制值,不使用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。下图给出了8位数据、无校验情况的传送格式2.奇偶校验:字符奇偶校验检查(character parity checking)称为垂直冗余检查(vertical redundancy checking,VRC),它是每个字符增加一个额外位使字符中“1”的个数为奇数或偶数。奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果“1”的数目是奇

6、数,校验位应为“0”。偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如果是奇数则为“1”。3.串行通信的传输方式:单工(Simplex)、全双工(Full-duplex)、半双工(Half-duplex)。4.AW60的SCI模块的编程结构:从程序员角度看,涉及SCI的有8个8位寄存器,其中2个波特率寄存器,1个数据寄存器,3个控制寄存器,2个状态寄存器。SCI波特率计算公式:SCI波特率= fBUSCLK/(16BR),其中fBUSCLK为内部总线频率SCI控制寄存器1(SCIxC1)用于设置SCI的工作模式,可选择运行模式、唤醒模式、空闲类型检测以及奇偶校验。SCI控制寄

7、存器2(SCIxC2)用于收/发及相关中断控制的设置。5.SCI模块的编程结构:(1)SCI构件的初始化功能函数:void SCIInit(uint8 SCINo, uint8 sysclk, uint16 baud) uint16 ubgs = 0; if(SCINo 2) SCINo = 2; / 若传进的通道号大于2,则按照2来处理 / 计算波特率并设置:ubgs=fsys/(波特率*16)(其中fsys=sysclk*1000000) ubgs = sysclk *(10000/(baud/100)/16; / 理解参考上一行,此处便于CPU计算 SCI_BDH(SCINo) = (u

8、int8)(ubgs & 0xFF00)8); SCI_BDL(SCINo) = (uint8)(ubgs & 0x00FF); / 无校验,正常模式(开始信号+8位数据(先发最低位)+ 停止信号) SCI_C1(SCINo) = 0b00000000; / 允许发送,允许接收,中断方式收发 SCI_C2(SCINo) = 0b00001100;(2)SCI构件的单字节发送功能函数:void SCISend1(uint8 SCINo, uint8 ch) if(SCINo SCINo = 2; while(!SCI_S1(SCINo) & 0b1000000); / 判断发送缓冲区是否为空 S

9、CI_D(SCINo) = ch;(3)SCI构件的单字节接收功能函数:uint8 SCIRe1(uint8 SCINo, uint8 *p) uint16 k; uint8 i;if(SCINo for(k=0;k=0xFBBB) / 接收失败 i = 0xFF; *p = 0x01;return i;6.中断向量表:中断向量表是一个指针数组,其中每一项都存放了中断处理函数的入口地址。7.中断的处理过程一般为: 关中断、保护现场、 执行中断服务程序、 恢复现场、开中断。8.AW60中断源:AW60有26个中断源,按优先级从高到低的顺序分别是:复位中断(1个)、SWI指令中断(1个)、 引脚中

10、断(1个)、低电压检测中断(1个)、ICG中断(1个)、定时器中断(10个)、SPI中断(1个)、SCI中断(6个)、键盘输入中断(1个)、ADC转换完成中断(1个)、I2C中断(1个)和实时中断(1个)。26个中断源只有18个中断向量,有的是几个中断源使用同一个中断向量。第6章GPIO的应用实例键盘、LED与LCD1.键盘(1)AW60的键盘中断模块:AW60单片机上的PTG0 PTG4、PTD2 PTD3、PTD7共8个引脚与键盘中断模块(KBI)的引脚复用。键盘中断矢量地址:$FFD2$FFD3。键盘中断初始化顺序:先设置键盘中断状态和控制寄存器(KBI1SC),后设置键盘中断引脚使能寄

11、存器(KBI1PE)。(2)键盘编程扫描一次4X4键盘并返回扫描键值:uint8 KBScan1() uint8 line,i,tmp,tmp1,tmp2; line = 0b11111110; / 是第一根行线为0(低电平) for(i = 0;i4;i+) / 当前扫描的一行,输出低电平 KB_GP = line; / 输出开始扫描 asm(“NOP”); / 读取键盘口数据寄存器 tmp1 = KB_DP; / 输入扫描结果 tmp2 = KB_GP; / 整合扫描结果,即键盘输入引脚的4位 tmp = (tmp1 & 0x80); tmp1 &= 0x0C; tmp1 = (tmp13

12、); tmp |= tmp1; tmp |= (tmp2 & 0x1F); / 通过观察4根列线中是否出现低电平来判断当前行有无按键 if(tmp & 0xF0) != 0xF0) / 当前行有按键按下 break; line = (line 1) | 0x01;return tmp;2.数码管LED编程实例:(1)LED的引脚使用:利用MCU的PTB口控制8个位段(数据),PTB7 PTB0分别接h-a位段,PTD0,PTD1,PTD4,PTD5作为片选端(位控制)。(2)LED编程结构:void LEDInit() / LED初始化 LEDdata_D = 0xFF; LEDcs_D =

13、0x33;void LEDshow1(uint8 I,uint8 c) / 在LED上的第i位显示数字 LEDcs = CStablei; LEDdata = Dtablei;void LEDshow(uint8 *Buf) / 在LED上显示4个十进制数 uint8 i,j,c; for(i=0; c = Bufi-0; LEDshow(3-I,c); / 延时 for(j=0;j100;j+);3.液晶LCD编程实例(1)LCD的基本特点和分类方法1)低电压微功耗,2)平板型结构,3)使用寿命长,4)被动显示,5)显示信息量大且易于彩色化,6)无电磁辐射LCD的分类:1)按电光效应分类,L

14、CD可分为电场效应类,电流效应类,电热效应类和热效应类。2)按现实内容分类,LCD可分为字段型,点阵字符型,点阵图形型。3)按LCD的采光方式分类,分为带背光源与不带背光源两大类。(2)HD44780:HD44780的外部引脚一般有14条,其中有8条数据线,3条控制线。HD44780指令集:(要求RS = 0)1)R/W = 0,DATA = 0000 0001 ,清屏2)R/W = 0,DATA = 0000 001* ,归位 3)R/W = 1,读忙操作。(3)LCD的引脚使用在实验板上LCD数据线7-14引脚分别MCU的PTA0-PTA7连接,LCD的控制线RS,R/W,E(4,5,6引

15、脚)分别与MCU的PTC4,PTC6,PTF6连接。(4)LCD编程结构:void LCDinit(void) uint16 i; / 定义数据口(PTA0-PTA7)为输出 LCDdata_D = 0b11111111; / 定义控制口(PTC4,PTC6)为输出 LCDctrlD1 |= (1LcdRS);LcdRW); LCDctrl1 &= (1 / RS,R/W=00,写指令 / 定义控制口(PTF6)为输出 LCDctrlD2 |= (1LcdE); LCDctrl2 |= (140us for(i =0;1000; / 2数据送到LCD数据线上 LCDdata = cmd; /

16、3给出E信号的下降沿,将数据写入LCD中 asm(“NOP”);asm(“NOP”);LCDctrl2 &/ 4等待for(i =0;第7章定时器模块1.AW60内的计时器:AW60提供两个独立的定时器,分别是TPM1和TPM2,其中TPM1有6个通道,TPM2有2个通道。2.定时器模块的寄存器:(1)状态和控制寄存器:D7(TOF)定时器溢出标志位,D6(TOIE)定时器溢出中断允许位,D4、D3(CLKS)时钟源选择位,D2-D0(PS)定时器分频因子选择位。(2)TPM计数寄存器(TPMxCNT):16位寄存器,每一计数周期自动加1,当时钟溢出时清零。(3)TPM预置寄存器(TPMxMO

17、D):16位寄存器,用于设定计数寄存器的计数溢出值。3.分频因子p与预置寄存器的设定:t=n/( fBUS/p) ,其中n为预置寄存器值4.定时器编程结构:void TPMInit(uint8 TPMNo) / 参数溢出处理 if(TPMNo TPMNo=2; else if(TPMNo= 60) / 秒溢出 *(p+1) += 1; / 分加1 *(p+2) = 0; / 清秒 if(*(p+1) = 60) / 分溢出 *p += 1; / 时加1 *(p+1) = 0; / 清秒 if(*p = 24) / 时溢出 *p = 0; / 清时5.AW60定时器的脉宽调制(PWM):分为两种

18、模式,边沿对齐PWM和中心对齐PWMvoid PWM(uint8 TPMNo, uint8 CHNo, uint16 Period, uint8 Duty) uint16 j; TPM_CSTR(TPMNo) = 0x00; / 设置PWM波的周期 = Period TPM_MODH(TPMNo) = (uint8)(Period TPM_MODL(TPMNo) = (uint8)Period; if(Duty100)Duty = 100; else if(Duty0)Duty = 0; j = (Period/100)*Duty; if(TPMNo 5)CHNo = 5; / 根据占空比,设

19、置相应通道数值寄存器 TPM1_CHVH(CHNo) = (uint8)(j TPM1_CHVL(CHNo) = (uint8)j; / 设置定时器1通道状态和控制寄存器 TPM1_CHSCSTR(CHNo) = 0b00101000;else / 定时器22)CHNo = 2; TPM2_CHVH(CHNo) = (uint8)(j TPM2_CHVL(CHNo) = (uint8)j; TPM2_CHSCSTR(CHNo) = 0b00101000;第8章串行外设接口SPI1.串行外设概念:一种同步串行通讯接口,用于微处理器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。时钟极性(

20、CPHA):表示时钟信号在空闲时是高电平还是低电平。时钟相位(CPOL):决定数据是在SPSCK的上升沿采样还是在SPSCK的下降沿采样。2.SPI模块的时序:确保发送数据在一周期开始的时刻上线,接收方在1/2周期的时刻从线上取数,这样是最稳定的通信方式。3.AW60 SPI模块编程SPI模块有5个8位寄存器,分别是2个控制寄存器,1个波特率寄存器,1个状态寄存器和1个数据寄存器。void SPIInit() SPI_CR1 = 0b01010000; / 不产生中断,主机方式,时钟空闲低电平 SPI_CR2 = 0b00000000; SPI_BR = 0b01000001;void SPI

21、SendOntByte(uint8 data) SPI_DR = data; while(0=(SPI_SR & (1SPI_SendEmyptBit); / 查询SPI状态寄存器是否发送成功void SPIRecvOneByte()SPI_ReceiveFullBit); / 判断接收缓冲区是否满 return SPI_DR;第9章Flash存储器在线编程1.Flash存储器编程方法有:写入器模式(监控模式)和在线编程模式(用户模式)2.Flash存储器的基本特点:固有不挥发性;易更新性;成本低、密度高、可靠性好。3.Flash编程的基本操作有两种:擦除(Erase):将存储单元的内容由二进

22、制的0变成1写入(Program):将存储单元的内容由二进制的1变成0擦除和写入操作都是通过设置或清除Flash存储器的控制寄存器(FLCR)的某个或某些位来完成的。4.Flash存储器的编程寄存器:6个,对应地址为$1820-$1826Flash时钟分频寄存器(FCDIV)、Flash选项寄存器(FOPT)、Flash配置寄存器(FCNFG)、Flash保护寄存器(FPROT)、Flash状态寄存器(FSTAT)、Flash命令寄存器(FCMD)5.在运行flash擦除及写入程序时,flash区会被加上高于普通工作电压的编程电压,导致flash区读取不稳定,应该怎么解决此问题?答:为了使擦除,写入程序正常执行,需将擦除,写入子程序移入RAM中并转入RAM区执行。为此需在RAM区开辟一个缓冲区,供程序移入使用。6

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2