虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

加法减法

  • 基于FPGA的32位RISC处理器设计与实现

    随着SOC技术、IP技术以及集成电路技术的发展,RISC软核处理器的研究与开发设计开始受到了人们的重视。基于FPGA的RISC软核处理器在各个行业开始得到了广泛的应用,特别是在一些基于FPGA的嵌入式系统中有着越来越广泛的应用前景。 该论文在研究了大量国内外技术文献的基础上,总结了RISC处理器发展的现状与水平。认真分析了RISC处理器的基本结构,包括总线结构,流水线处理的原理,以及流水线数据通路和流水线控制的原理;并详细分析了该设计采用的指令集——MIPS指令集的内在结构。设计出了一个32位RISC软核处理器,这个软核处理器采用五级流水线结构,能完成加法、减法、逻辑与、逻辑或、左移右移等算术逻辑操作,以及它们的组合操作。通过软件仿真和在Altera的FPGA开发板上进行验证,证明了所设计的32位RISC处理器能准确的执行所选用的MIPS指令集,运行速度能达到30MHz,功能良好。 通过对所设计对象特点及其可行性的研究,选用了Altera公司QuartusⅡ软件作为设计与仿真验证的环境。在设计方法上,该课题采用了自顶向下的设计方法。在设计过程中采用了边设计边验证这种设计与验证相结合的设计流程,大大提高了设计的可靠性。该课题在设计过程中还提出了两个有效的设计思路:第一是在32位寄存器的设计中利用FPGA的内部RAM资源来设计,减少了传输延时,提高了运行速度,并大大减少了对FPGA内部资源的占用;第二是在系统架构上采用了柔性化的设计方法,使得设计可以根据实际的需求适当的增减相应的部件,以达到需求与性能的统一。这两个方法都有效地解决了设计中出现的问题,提高了处理器的性能。

    标签: FPGA RISC 处理器

    上传时间: 2013-07-21

    上传用户:caozhizhi

  • 用FPGA实现带硬件浮点运算器的8051

    8051系列是至今为止最成功的单片机之一,在FPGA平台上研究带硬件浮点运算器的8051是对其在SoC及专用化的方向上的一次迈进。文章首先介绍了8051的基本架构,包括硬件模块、指令系统、内存分配以及基本外设。然后讲解了在设计8051时如何划分模块,每个模块的功能与设计,同时也介绍了如何设计流水线来加速8051的处理速度。对于浮点运算器,文章介绍了IEEE浮点数的表示方法,包括各种特殊值的表示方法以及作用。在探讨浮点运算器设计的时候首先是给出了模块的划分及其实现的功能,然后以生动的实例介绍了加减乘除四种浮点运算的算法。在介绍完8051与浮点运算器设计以后,文章介绍了如何将浮点运算器集成到8051上,包括硬件上的数据线接口和控制线接口,以及软件中如何运用硬件浮点运算器。最后文章给出了此设计在ModelSim上的仿真结果以及在CyclonelIFPGA芯片上的验证过程,可以清楚地看到,与KeilC51软件库的浮点运算相比,加法运算从186个时钟周期减少到4个时钟周期,减法运算从200个时钟周期减少到4个时钟周期,乘法运算从241个时钟周期减少到4个时钟周期,而除法则由原来的¨lO个时钟周期减少到4个时钟周期,可见硬件浮点运算器使8051在运算能力上有了质的提高。 笔者也在“Google”和“百度”搜索引擎上,以及“维普数据论文网’’上搜索过,都没有发现有类似的设计,带硬件浮点运算器的8051可谓是一次创新,希望在实际应用中能有用武之地。

    标签: FPGA 8051 硬件 浮点运算器

    上传时间: 2013-04-24

    上传用户:13081287919

  • cad填充图案大全下载_cad填充图案怎么安装

    不少使用CAD的朋友在找CAD填充图案,附件是小编收集的近千种cad填充图案打包,供CAD学习和使用者参考,希望对大家能有所帮助。以下是cad填充图案使用说明。 CAD填充图案使用说明: 1、将填充名改成自己比较容易识别的名称,但要注意填充文件和填充名要完全一致(不用区分大小写)。 我收集的这些填充图案有些是中文名称,很容易就知道填充图案的类型。有些是英文名,本来我想将这些英文名都改成中文名的填充。 我可以提供大家方法。先用记事本打开其中一个填充文件,如下图所示: 图中打开的填充名为b043,文件名也必须为043,否则CAD是不认的。类似上图所示的填充,如果希望CAD的填充列表中直接显示中文,方便查找,你就需要先用记事本将PAT文件打开,复制“板岩”,选中b043,粘贴将其替换成“板岩”,关闭并保存文件。选中文件后单击文件名进入重命名转台,选中前面的B043,CTRl+V粘贴,将"B043.pat"修改成"板岩.pat"。 修改的最终效果类似下图所示的“六边形蜂窝转”填充。 2、不建议将所有收集的填充都一次性复制到CAD的填充目录(patterns)下。 如果将大量填充都复制到CAD的填充目录下,在填充时效率并不高,因为要在上千种填充中找出你要使用的填充,也不是一件简单的事情。因此我建议不要做加法,而是应该做减法,将自己可能用到的填充保留,把根本不会用到的填充删除。 对于这个压缩包也是如此,当需要使用其中某种填充时,你再将填充拷过去。 3、如何在这么多填充图案中找到自己需要的填充图案。 由于有些填充图案用的是英文名,可以分别通过文件名和包含文字来搜索你要找的填充名来判断在这些填充中是否有你需要的填充。如果找到的是一个英文名称的填充文件,你可以参照第一点中的方法进行修改,方便使用。

    标签: cad 图案

    上传时间: 2014-01-18

    上传用户:凌云御清风

  • AVR单片机原理及应用

    《AVR单片机原理及应用》详细介绍了ATMEL公司开发的ATmega8系列高速嵌入式单片机的硬件结构、工作原理、指令系统、接口电路、C编程实例,以及一些特殊功能的应用和设计,对读者掌握和使用其他ATmega8系列的单片机具有极高的参考价值 AVR单片机原理及应用》具有较强的系统性和实用性,可作为有关工程技术人员和硬件工程师的应用手册,亦可作为高等院校自动化、计算机、仪器仪表、电子等专业的教学参考书。 目录 第1章 绪论 1.1 AVR单片机的主要特性 1.2 主流单片机系列产品比较 1.2.1 ATMEL公司的单片机 1.2.2 Mkcochip公司的单片机 1.2.3 Cygnal公司的单片机 第2章 AVR系统结构概况 2.1 AVR单片机ATmega8的总体结构 2.1.1 ATmega8特点 2.1.2 结构框图 2.1.3 ATmega8单片机封装与引脚 2.2 中央处理器 2.2.1 算术逻辑单元 2.2.2 指令执行时序 2.2.3 复位和中断处理 2.3 ATmega8存储器 2.3.1 Flash程序存储器 2.3.2 SRAM 2.3.3 E2pROM 2.3.4 I/O寄存器 2.3.5 ATmega8的锁定位、熔丝位、标识位和校正位 2.4 系统时钟及其分配 2.4.1 时钟源 2.4.2 外部晶振 2.4.3 外部低频石英晶振 2.4.4 外部:RC振荡器 2.4.5 可校准内部.RC振荡器 2.4.6 外部时钟源 2.4.7 异步定时器/计数器振荡器 2.5 系统电源管理和休眠模式 2.5.1 MCU控制寄存器 2.5.2 空闲模式 2.5.3 ADC降噪模式 2.5.4 掉电模式 2.5.5 省电模式 2.5.6 等待模式 2.5.7 最小功耗 2.6 系统复位 2.6.1 复位源 2.6.2 MCU控制状态寄存器——MCUCSR 2.6.3 内部参考电压源 2.7 I/O端口 2.7.1 通用数字I/O端口 2.7.2 数字输入使能和休眠模式 2.7.3 端口的第二功能 第3章 ATmega8指令系统 3.1 ATmega8汇编指令格式 3.1.1 汇编语言源文件 3.1.2 指令系统中使用的符号 3.1.3 ATmega8指令 3.1.4 汇编器伪指令 3.1.5 表达式 3.1.6 文件“M8def.inc” 3.2 寻址方式和寻址空间 3.3 算术和逻辑指令 3.3.1 加法指令 3.3.2 减法指令 3.3.3 取反码指令 3.3.4 取补码指令 3.3.5 比较指令 3.3.6 逻辑与指令 3.3.7 逻辑或指令 3.3.8 逻辑异或 3.3.9 乘法指令 3.4 转移指令 3.4.1 无条件转移指令 3.4.2 条件转移指令 3.4.3 子程序调用和返回指令 3.5 数据传送指令 3.5.1 直接寻址数据传送指令 3.5.2 间接寻址数据传送指令 3.5.3 从程序存储器中取数装入寄存器指令 3.5.4 写程序存储器指令 3.5.5 I/0端口数据传送 3.5.6 堆栈操作指令 3.6 位操作和位测试指令 3.6.1 带进位逻辑操作指令 3.6.2 位变量传送指令 3.6.3 位变量修改指令 3.7 MCU控制指令 3.8 指令的应用 第4章 中断系统 4.1 外部向量 4.2 外部中断 4.3 中断寄存器 第5章 自编程功能 5.1 引导加载技术 5.2 相关I/O寄存器 5.3 Flash程序存储器的自编程 5.4 Flash自编程应用 第6章 定时器/计数器 6.1 定时器/计数器预定比例分频器 6.2 8位定时器/计数器O(T/CO) 6.3 16位定时器/计数器1(T/C1) 6.3.1 T/C1的结构 6.3.2 T/C1的操作模式 6.3.3 T/121的计数时序 6.3.4 T/C1的寄存器 6.4 8位定时器/计数器2(T/C2) 6.4.1 T/C2的组成结构 6.4.2 T/C2的操作模式 6.4.3 T/C2的计数时序 6.4.4 T/02的寄存器 6.4.5 T/C2的异步操作 6.5 看门狗定时器 第7章 AVR单片机通信接口 7.1 AVR单片机串行接口 7.1.1 同步串行接口 7.1.2 通用串行接口 7.2 两线串行TWT总线接口 7.2.1 TWT模块概述 7.2.2 TWT寄存器描述 7.2.3 TWT总线的使用 7.2.4 多主机系统和仲裁 第8章 AVR单片机A/D转换及模拟比较器 8.1 A/D转换 8.1.1 A/D转换概述 8.1.2 ADC噪声抑制器 8.1.3 ADC有关的寄存器 8.2 AvR单片机模拟比较器 第9章 系统扩展技术 9.1 串行接口8位LED显示驱动器MAX7219 9.1.1 概述 9.1.2 引脚功能及内部结构 9.1.3 操作说明 9.1.4 应用 9.1.5 软件设计 9.2 AT24C系列两线串行总线E2PPOM 9.2.1 概述 9.2.2 引脚功能及内部结构 9.2.3 操作说明 9.2.4 软件设计 9.3 AT93C46——三线串行总线E2PPOM接口芯片 9.3.1 概述 9.3.2 内部结构及引脚功能 9.3.3 操作说明 9.3.4 软件设计 9.4 串行12位的ADCTL543 9.4.1 概述 9.4.2 内部结构及引脚功能 9.4.3 操作说明 9.4.4 AD620放大器介绍 9.4.5 软件设计 9.5 串行输出16位ADCMAXl95 9.5.1 概述 9.5.2 引脚功能及内部结构 9.5.3 操作说明 9.5.4 应用 9.5.5 软件设计 9.6 串行输入DACTLC5615 9.6.1 概述 9.6.2 引脚功能及内部结构 9.6.3 操作说明 9.6.4 软件设计 9.7 串行12位的DACTLC5618 9.7.1 概述 9.7.2 内部结构及引脚功能 9.7.3 操作说明 9.7.4 软件设计 9.8 串行非易失性静态RAMX24C44 9.8.1 概述 9.8.2 引脚功能及内部结构 9.8.3 操作说明 9.8.4 软件设计 9.9 数据闪速存储器AT45DB041B 9.9.1 概述 9.9.2 引脚功能及内部结构 9.9.3 操作说明 9.9.4 软件设计 9.10 GM8164串行I/0扩展芯片 9.10.1 概述 9.10.2 引脚功能说明 9.10.3 操作说明 9.10.4 软件设计 9.11 接口综合实例 附录1 ICCACR简介 附录2 ATmega8指令表 参考文献

    标签: AVR 单片机原理

    上传时间: 2013-10-29

    上传用户:lanwei

  • 51单片机c语言超强学习资料

    单片机c语言学习和单片机制作资料: 函数的使用和熟悉 实例3:用单片机控制第一个灯亮 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 实例6:使用P3口流水点亮8位LED 实例7:通过对P3口地址的操作流水点亮8位LED 实例8:用不同数据类型控制灯闪烁时间 实例9:用P0口、P1 口分别显示加法和减法运算结果 实例10:用P0、P1口显示乘法运算结果 实例11:用P1、P0口显示除法运算结果 实例12:用自增运算控制P0口8位LED流水花样 实例13:用P0口显示逻辑"与"运算结果 实例14:用P0口显示条件运算结果 实例15:用P0口显示按位"异或"运算结果 实例16:用P0显示左移运算结果 实例17:"万能逻辑电路"实验 实例18:用右移运算流水点亮P1口8位LED 实例19:用if语句控制P0口8位LED的流水方向 实例20:用swtich语句的控制P0口8位LED的点亮状态 实例21:用for语句控制蜂鸣器鸣笛次数 实例22:用while语句控制LED 实例23:用do-while语句控制P0口8位LED流水点亮 实例24:用字符型数组控制P0口8位LED流水点亮 实例25: 用P0口显示字符串常量 实例26:用P0 口显示指针运算结果 实例27:用指针数组控制P0口8位LED流水点亮 实例28:用数组的指针控制P0 口8 位LED流水点亮 实例29:用P0 、P1口显示整型函数返回值 实例30:用有参函数控制P0口8位LED流水速度 实例31:用数组作函数参数控制流水花样 实例32:用指针作函数参数控制P0口8位LED流水点亮 实例33:用函数型指针控制P1口灯花样 实例34:用指针数组作为函数的参数显示多个字符串

    标签: 51单片机 c语言

    上传时间: 2013-10-21

    上传用户:llandlu

  • 单片机指令系统

    单片机指令系统 3.1 MCS-51指令简介 3.2 指令系统 3.1  MCS-51指令简介 二、MCS-51系列单片机指令系统分类 按寻址方式分为以下七种:按功能分为以下四种: 1、立即立即寻址         1、数据传送指令位操 2、直接寻址             2、算术运算指令 3、寄存器寻址           3、逻辑运算指令 4、寄存器间接寻址指令   4、控制转移类指令 5、相对寻址             5、位操作指令 6、变址寻址 7、位寻址 三、寻址方式 3、寄存器间接寻址    MOV A, @R1        操作数是通过寄存器间接得到的。 4、立即寻址               MOV  A, #40H        操作数在指令中直接给出。 5、基址寄存器加变址寄存器寻址        以DPTR或PC为基址寄存器,以A为变址寄存器,        以两者相加形成的16位地址为操作数的地址。                   MOVC A, @A+DPTR                   MOVC A, @A+PC 四、指令中常用符号说明 Rn——当前寄存器区的8个工作寄存器R0~R7(n=0~7); Ri——当前寄存器区可作地址寄存器的2个工作寄存器R0和R1(i=0,1); direct——8位内部数据存储器单元的地址及特殊功能寄存器的地址; #data——表示8位常数(立即数); #datal6——表示16位常数; add 16——表示16位地址; addrll——表示11位地址; rel——8位带符号的地址偏移量; bit——表示位地址; @——间接寻址寄存器或基址寄存器的前缀; ( )——表示括号中单元的内容 (( ))——表示间接寻址的内容; 五、MCS-51指令简介 1. 以累加器A为目的操作数的指令 2.  以Rn为目的操作数的指令 3.  以直接地址为目的操作数的指令 4.  以寄存器间接地址为目的操作数指令 应用举例1 8段数码管显示 应用举例2 3.2  指令系统 2、堆栈操作指令  3.  累加器A与外部数据传输指令 4.  查表指令    MOVC  A,   @A+PC  例子: 5.  字节交换指令 6.  半字节交换指令 二、算术操作类指令 PSW寄存器 2.  带进位加法指令 3.  加1指令 4.  十进制调整指令 5.  带借位减法指令(Subtraction) 6.  减1指令(Decrease) 7.   乘法指令(Multiplication) 8.  除法指令(Division)        三、逻辑运算指令 1.  简单逻辑操作指令 2.  循环指令 带进位左循环指令(Rotate  Accumulator Left   through  Carry  flag)      右循环指令(Rotate  Accumulator  Right) 带进位右循环指令(Rotate  A  Right  with  C) 3.   逻辑与指令 4.  逻辑或指令 5.  逻辑异或指令 四、控制转移类指令 1.  跳转指令 相对转移指令   SJMP   rel           PC←(PC)+2                                                                                                                            PC←(PC)+rel 程序中标号与地址之间的关系 2.  条件转移指令 3.  比较不相等转移指令 4.  减 1 不为 0 转移指令 5.  调用子程序指令 7.  中断返回指令 五、位操作指令 1.  数据位传送指令 2.  位变量逻辑指令 3.  条件转移类指令

    标签: 单片机 指令系统

    上传时间: 2013-10-27

    上传用户:xuanjie

  • 8086指令系统

    8086指令系统目录 概述 2.1节   目录 2.1.1--2.1.5(传送)     2.1.1 目录:1~3        2.1.1-1 mov类例1                   mov类例2                   mov类例3                   mov类例4(END)        2.1.1-2. xchg  --3.XLAT                 查表示意图(end)     2.1.2堆栈操作指令(1)            堆栈操作指令(2)            堆栈操作指令(3)            堆栈操作指令(4)            堆栈操作指令(5)(END)     2.1.3标志传送指令(1)            标志传送指令(2)(end)     2.1.4地址传送指令(1)            地址传送指令(2)            地址传送指令(3)(end)     2.1.5输入输出指令(1)            输入输出指令(2)            输入输出指令(3)(end) 2.2节   目录 2.2.1--2.2.6(算术)     2.2.1加法指令(1)            加法指令(2)            加法指令(3)            加法指令(4)            加法指令5 end     2.2.2减法指令(1)            减法指令(2)            减法指令(3)            减法指令(4)      减法指令(5)            减法指令(6)(end)     2.2.3乘法指令(1)            乘法指令(2)            乘法指令(3)(end)     2.2.4除法指令(1)            除法指令(2)(end)     2.2.5符号扩展指令(end) 符号扩展说明     2.2.6十进制调整指令(1)            十进制调整指令(2)            十进制调整指令(3)            十进制调整指令(4)            十进制调整指令(5)            十进制调整指令(6)            十进制调整指令(7)            十进制调整指令(8)            十进制调整指令(9)(end) 2.3节  目录 2.3.1--2. 3.3(位)     2.3.1 逻辑运算指令(1)             逻辑运算指令(2)             逻辑运算指令(3)             逻辑运算指令(4)             逻辑运算指令(END)     2.3.2 移位指令(1)             移位指令(2)             移位指令(3)             移位指令(4)(end)     2.3.3 循环移位指令(1)             循环移位指令(2)(end) 2.4节  目录     2.4.1 无条件转移指令(1) 短转移的转移范围             无条件转移指令(2)             无条件转移指令(3)             无条件转移指令(4)(end)     2.4.2 条件转移指令(1)             条件转移指令(2)             条件转移指令(3)             条件转移指令(4)             条件转移指令(5)(end)     2.4.3 循环控制指令(1)             循环控制指令(2)(end)  2.4.4 子程序调用及返回指令(1)        子程序调用及返回指令(2)        子程序调用及返回指令(3)        子程序调用及返回指令(4)        子程序调用及返回指令(5) 子程序调用及返回指令(6) (end)     2.4.5 中断控制指令(1)             中断控制指令(2)             中断控制指令(3)             中断控制指令(4)             中断控制指令(5)             中断控制指令(6)             中断控制指令(7)             中断控制指令(8)(end)     2.4.6 系统功能调用(1)             系统功能调用(2)             系统功能调用(3)(end) 2.5节 目录 1---6(串操作) 串操作(1)传送 串操作(2) 串操作(3) 串操作(4)存串 串操作(5)读串、比较 串操作(6)搜索、重复前缀 串操作(7)REP 串操作(8)REPZ/REPNZ 串操作(9)前缀注释 串操作(10)例题 串操作(11)注释(end) 2.6 处理机控制类指令(1)(end)

    标签: 8086 指令系统

    上传时间: 2013-10-30

    上传用户:大三三

  • SPCE061A指令系统

    SPCE061A采用的内核           SPCE061A采用的内核(CPU)为μ‘nSP。          μ‘nSP(读做micro-n-S-P)是凌阳科技推出的16位微处理器,它的突出特点是较高的处理速度,这就使其有能力进行复杂的数字信号处理(DSP,Digital Signal Processing)。 μ‘nSP内核由凌阳自主开发,因而也具备它自己的指令系统。 指令系统.61 3.1 指令系统的概述及符号约定.61 3.2 数据传送指令62 3.3 算术运算..66 3.3.1 加法运算..67 3.3.2 减法运算..68 3.3.3 带进位的加减运算.70 3.3.4 取补运算..70 3.3.5 SPCE061A的乘法指令.71 3.3.6 SPCE061A的n项内积运算指令.71 3.3.7 比较运算(影响标志位N,Z,S,C)..73 3.4 SPCE061A的逻辑运算.74 3.4.1 逻辑与..74 3.4.2 逻辑或..75 3.4.3 逻辑异或..76 3.4.4 测试(TEST).78 3.4.5 SPCE061A的移位操作.80 3.5 SPCE061A的控制转移类指令..83 3.6 伪指令86 3.6.1 伪指令的语法格式及特点..87 3.6.2 伪指令符号约定..87 3.6.3 标准伪指令.87 3.6.4 宏定义与调用98 3.6.5 段的定义与调用101 3.6.6 结构的定义与调用..102 3.6.7 过程的定义与调用..106 3.6.8 伪指令的应用举例..106

    标签: SPCE 061A 061 指令系统

    上传时间: 2013-10-31

    上传用户:xuanchangri

  • AVR高速嵌入式单片机原理与应用(修订版)

    AVR高速嵌入式单片机原理与应用(修订版)详细介绍ATMEL公司开发的AVR高速嵌入式单片机的结构;讲述AVR单片机的开发工具和集成开发环境(IDE),包括Studio调试工具、AVR单片机汇编器和单片机串行下载编程;学习指令系统时,每条指令均有实例,边学习边调试,使学习者看得见指令流向及操作结果,真正理解每条指令的功能及使用注意事项;介绍AVR系列多种单片机功能特点、实用程序设计及应用实例;作为提高篇,讲述简单易学、适用AVR单片机的高级语言BASCOMAVR及ICC AVR C编译器。 AVR高速嵌入式单片机原理与应用(修订版) 目录 第一章ATMEL单片机简介1.1ATMEL公司产品的特点11.2AT90系列单片机简介21.3AT91M系列单片机简介2第二章AVR单片机系统结构2.1AVR单片机总体结构42.2AVR单片机中央处理器CPU62.2.1结构概述72.2.2通用寄存器堆92.2.3X、Y、Z寄存器92.2.4ALU运算逻辑单元92.3AVR单片机存储器组织102.3.1可下载的Flash程序存储器102.3.2内部和外部的SRAM数据存储器102.3.3EEPROM数据存储器112.3.4存储器访问和指令执行时序112.3.5I/O存储器132.4AVR单片机系统复位162.4.1复位源172.4.2加电复位182.4.3外部复位192.4.4看门狗复位192.5AVR单片机中断系统202.5.1中断处理202.5.2外部中断232.5.3中断应答时间232.5.4MCU控制寄存器 MCUCR232.6AVR单片机的省电方式242.6.1休眠状态242.6.2空闲模式242.6.3掉电模式252.7AVR单片机定时器/计数器252.7.1定时器/计数器预定比例器252.7.28位定时器/计数器0252.7.316位定时器/计数器1272.7.4看门狗定时器332.8AVR单片机EEPROM读/写访问342.9AVR单片机串行接口352.9.1同步串行接口 SPI352.9.2通用串行接口 UART402.10AVR单片机模拟比较器452.10.1模拟比较器452.10.2模拟比较器控制和状态寄存器ACSR462.11AVR单片机I/O端口472.11.1端口A472.11.2端口 B482.11.3端口 C542.11.4端口 D552.12AVR单片机存储器编程612.12.1编程存储器锁定位612.12.2熔断位612.12.3芯片代码612.12.4编程 Flash和 EEPROM612.12.5并行编程622.12.6串行下载662.12.7可编程特性67第三章AVR单片机开发工具3.1AVR实时在线仿真器ICE200693.2JTAG ICE仿真器693.3AVR嵌入式单片机开发下载实验器SL?AVR703.4AVR集成开发环境(IDE)753.4.1AVR Assembler编译器753.4.2AVR Studio773.4.3AVR Prog783.5SL?AVR系列组态开发实验系统793.6SL?AVR*.ASM源文件说明81第四章AVR单片机指令系统4.1指令格式844.1.1汇编指令844.1.2汇编器伪指令844.1.3表达式874.2寻址方式894.3数据操作和指令类型924.3.1数据操作924.3.2指令类型924.3.3指令集名词924.4算术和逻辑指令934.4.1加法指令934.4.2减法指令974.4.3乘法指令1014.4.4取反码指令1014.4.5取补指令1024.4.6比较指令1034.4.7逻辑与指令1054.4.8逻辑或指令1074.4.9逻辑异或指令1104.5转移指令1114.5.1无条件转移指令1114.5.2条件转移指令1144.6数据传送指令1354.6.1直接数据传送指令1354.6.2间接数据传送指令1374.6.3从程序存储器直接取数据指令1444.6.4I/O口数据传送指令1454.6.5堆栈操作指令1464.7位指令和位测试指令1474.7.1带进位逻辑操作指令1474.7.2位变量传送指令1514.7.3位变量修改指令1524.7.4其它指令1614.8新增指令(新器件)1624.8.1EICALL-- 延长间接调用子程序1624.8.2EIJMP--扩展间接跳转1634.8.3ELPM--扩展装载程序存储器1644.8.4ESPM--扩展存储程序存储器1644.8.5FMUL--小数乘法1664.8.6FMULS--有符号数乘法1664.8.7FMULSU--有符号小数和无符号小数乘法1674.8.8MOVW--拷贝寄存器字1684.8.9MULS--有符号数乘法1694.8.10MULSU--有符号数与无符号数乘法1694.8.11SPM--存储程序存储器170 第五章AVR单片机AT90系列5.1AT90S12001725.1.1特点1725.1.2描述1735.1.3引脚配置1745.1.4结构纵览1755.2AT90S23131835.2.1特点1835.2.2描述1845.2.3引脚配置1855.3ATmega8/8L1855.3.1特点1865.3.2描述1875.3.3引脚配置1895.3.4开发实验工具1905.4AT90S2333/44331915.4.1特点1915.4.2描述1925.4.3引脚配置1945.5AT90S4414/85151955.5.1特点1955.5.2AT90S4414和AT90S8515的比较1965.5.3引脚配置1965.6AT90S4434/85351975.6.1特点1975.6.2描述1985.6.3AT90S4434和AT90S8535的比较1985.6.4引脚配置2005.6.5AVR RISC结构2015.6.6定时器/计数器2125.6.7看门狗定时器 2175.6.8EEPROM读/写2175.6.9串行外设接口SPI2175.6.10通用串行接口UART2175.6.11模拟比较器 2175.6.12模数转换器2185.6.13I/O端口2235.7ATmega83/1632285.7.1特点2285.7.2描述2295.7.3ATmega83与ATmega163的比较2315.7.4引脚配置2315.8ATtiny10/11/122325.8.1特点2325.8.2描述2335.8.3引脚配置2355.9ATtiny15/L2375.9.1特点2375.9.2描述2375.9.3引脚配置2395 .10ATmega128/128L2395.10.1特点2405.10.2描述2415.10.3引脚配置2435.10.4开发实验工具2455.11ATmega1612465.11.1特点2465.11.2描述2475.11.3引脚配置2475.12AVR单片机替代MCS51单片机249第六章实用程序设计6.1程序设计方法2506.1.1程序设计步骤2506.1.2程序设计技术2506.2应用程序举例2516.2.1内部寄存器和位定义文件2516.2.2访问内部 EEPROM2546.2.3数据块传送2546.2.4乘法和除法运算应用一2556.2.5乘法和除法运算应用二2556.2.616位运算2556.2.7BCD运算2556.2.8冒泡分类算法2556.2.9设置和使用模拟比较器2556.2.10半双工中断方式UART应用一2556.2.11半双工中断方式UART应用二2566.2.128位精度A/D转换器2566.2.13装载程序存储器2566.2.14安装和使用相同模拟比较器2566.2.15CRC程序存储的检查2566.2.164×4键区休眠触发方式2576.2.17多工法驱动LED和4×4键区扫描2576.2.18I2C总线2576.2.19I2C工作2586.2.20SPI软件2586.2.21验证SLAVR实验器及AT90S1200的口功能12596.2.22验证SLAVR实验器及AT90S1200的口功能22596.2.23验证SLAVR实验器及具有DIP40封装的口功能第七章AVR单片机的应用7.1通用延时子程序2607.2简单I/O口输出实验2667.2.1SLAVR721.ASM 2667.2.2SLAVR722.ASM2677.2.3SLAVR723.ASM2687.2.4SLAVR724.ASM2707.2.5SLAVR725.ASM2717.2.6SLAVR726.ASM2727.2.7SLAVR727.ASM2737.3综合程序2747.3.1LED/LCD/键盘扫描综合程序2747.3.2LED键盘扫描综合程序2757.3.3在LED上实现字符8的循环移位显示程序2757.3.4电脑放音机2777.3.5键盘扫描程序2857.3.6十进制计数显示2867.3.7廉价的A/D转换器2897.3.8高精度廉价的A/D转换器2947.3.9星星灯2977.3.10按钮猜数程序2987.3.11汉字的输入3047.4复杂实用程序3067.4.110位A/D转换3067.4.2步进电机控制程序3097.4.3测脉冲宽度3127.4.4LCD显示8字循环3187.4.5LED电脑时钟3247.4.6测频率3307.4.7测转速3327.4.8AT90S8535的A/D转换334第八章BASCOMAVR的应用8.1基于高级语言BASCOMAVR的单片机开发平台3408.2BASCOMAVR软件平台的安装与使用3418.3AVR I/O口的应用3458.3.1LED发光二极管的控制3458.3.2简易手控广告灯3468.3.3简易电脑音乐放音机3478.4LCD显示器3498.4.1标准LCD显示器的应用3498.4.2简单游戏机--按钮猜数3518.5串口通信UART3528.5.1AVR系统与PC的简易通信3538.5.2PC控制的简易广告灯3548.6单总线接口和温度计3568.7I2C总线接口和简易IC卡读写器359第九章ICC AVR C编译器的使用9.1ICC AVR的概述3659.1.1介绍ImageCraft的ICC AVR3659.1.2ICC AVR中的文件类型及其扩展名3659.1.3附注和扩充3669.2ImageCraft的ICC AVR编译器安装3679.2.1安装SETUP.EXE程序3679.2.2对安装完成的软件进行注册3679.3ICC AVR导游3689.3.1起步3689.3.2C程序的剖析3699.4ICC AVR的IDE环境3709.4.1编译一个单独的文件3709.4.2创建一个新的工程3709.4.3工程管理3719.4.4编辑窗口3719.4.5应用构筑向导3719.4.6状态窗口3719.4.7终端仿真3719.5C库函数与启动文件3729.5.1启动文件3729.5.2常用库函数3729.5.3字符类型库3739.5.4浮点运算库3749.5.5标准输入/输出库3759.5.6标准库和内存分配函数3769.5.7字符串函数3779.5.8变量参数函数3799.5.9堆栈检查函数3799.6AVR硬件访问的编程3809.6.1访问AVR的底层硬件3809.6.2位操作3809.6.3程序存储器和常量数据3819.6.4字符串3829.6.5堆栈3839.6.6在线汇编3839.6.7I/O寄存器3849.6.8绝对内存地址3849.6.9C任务3859.6.10中断操作3869.6.11访问UART3879.6.12访问EEPROM3879.6.13访问SPI3889.6.14相对转移/调用的地址范围3889.6.15C的运行结构3889.6.16汇编界面和调用规则3899.6.17函数返回非整型值3909.6.18程序和数据区的使用3909.6.19编程区域3919.6.20调试3919.7应用举例*3929.7.1读/写口3929.7.2延时函数3929.7.3读/写EEPROM3929.7.4AVR的PB口变速移位3939.7.5音符声程序3939.7.68字循环移位显示程序3949.7.7锯齿波程序3959.7.8正三角波程序3969.7.9梯形波程序396附录1AT89系列单片机简介398附录2AT94K系列现场可编程系统标准集成电路401附录3指令集综合404附录4AVR单片机选型表408参 考 文 献412

    标签: AVR 高速嵌入式 单片机原理

    上传时间: 2013-11-08

    上传用户:xcy122677

  • 微机原理与接口课件

    微处理器及微型计算机的发展概况  第一代微处理器是以Intel公司1971年推出的4004,4040为代表的四位微处理机。      第二代微处理机(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。     第三代微处理机 第三代微机是以16位机为代表,基本上是在第二代微机的基础上发展起来的。其中Intel公司的8088。8086是在8085的基础发展起来的;M68000是Motorola公司在M6800 的基础发展起来的;     第四代微处理机 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU为代表,     第五代微处理机的发展更加迅猛,1993年3月被命名为PENTIUM的微处理机面世,98年PENTIUM 2又被推向市场。 INTEL CPU 发展历史Intel第一块CPU 4004,4位主理器,主频108kHz,运算速度0.06MIPs(Million Instructions Per Second, 每秒百万条指令),集成晶体管2,300个,10微米制造工艺,最大寻址内存640 bytes,生产曰期1971年11月. 8085,8位主理器,主频5M,运算速度0.37MIPs,集成晶体管6,500个,3微米制造工艺,最大寻址内存64KB,生产曰期1976年 8086,16位主理器,主频4.77/8/10MHZ,运算速度0.75MIPs,集成晶体管29,000个,3微米制造工艺,最大寻址内存1MB,生产曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主频25/33/50/66/75/100MHZ,总线频率33/50/66MHZ,运算速度20~60MIPs,集成晶体管1.2M个,1微米制造工艺,168针PGA,最大寻址内存4GB,缓存8/16/32/64KB,生产曰期1989年4月 Celeron一代, 主频266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 总线频率66MHz,0.25微米制造工艺,生产曰期1998年4月) Pentium 4 (478针),至今分为三种核心:Willamette核心(主频1.5G起,FSB400MHZ,0.18微米制造工艺),Northwood核心(主频1.6G~3.0G,FSB533MHZ,0.13微米制造工艺, 二级缓存512K),Prescott核心(主频2.8G起,FSB800MHZ,0.09微米制造工艺,1M二级缓存,13条全新指令集SSE3),生产曰期2001年7月. 更大的缓存、更高的频率、 超级流水线、分支预测、乱序执行超线程技术 微型计算机组成结构单片机简介单片机即单片机微型计算机,是将计算机主机(CPU、    内存和I/O接口)集成在一小块硅片上的微型机。 三、计算机编程语言的发展概况 机器语言  机器语言就是0,1码语言,是计算机唯一能理解并直接执行的语言。汇编语言  用一些助记符号代替用0,1码描述的某种机器的指令系统,汇编语言就是在此基础上完善起来的。高级语言  BASIC,PASCAL,C语言等等。用高级语言编写的程序称源程序,它们必须通过编译或解释,连接等步骤才能被计算机处理。 面向对象语言  C++,Java等编程语言是面向对象的语言。 1.3 微型计算机中信息的表示及运算基础(一) 十进制ND有十个数码:0~9,逢十进一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加权展开式以10称为基数,各位系数为0~9,10i为权。 一般表达式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二进制NB两个数码:0、1, 逢二进一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加权展开式以2为基数,各位系数为0、1, 2i为权。 一般表达式:  NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六进制NH十六个数码0~9、A~F,逢十六进一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展开式以十六为基数,各位系数为0~9,A~F,16i为权。 一般表达式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同进位计数制之间的转换 (二)二进制与十六进制数之间的转换  24=16 ,四位二进制数对应一位十六进制数。举例:(三)十进制数转换成二、十六进制数整数、小数分别转换   1.整数转换法“除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。举例: 2. 小数转换法“乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。举例:  三、带符号数的表示方法 机器数:机器中数的表示形式。真值: 机器数所代表的实际数值。举例:一个8位机器数与它的真值对应关系如下:  真值: X1=+84=+1010100B     X2=-84= -1010100B   机器数:[X1]机= 01010100    [X2]机= 11010100(二)原码、反码、补码最高位为符号位,0表示 “+”,1表示“-”。 数值位与真值数值位相同。 例  8位原码机器数:  真值:   x1  = +1010100B     x2    =- 1010100B      机器数: [x1]原  = 01010100  [x2]原 = 11010100原码表示简单直观,但0的表示不唯一,加减运算复杂。 正数的反码与原码表示相同。       负数反码符号位为 1,数值位为原码数值各位取反。 例 8位反码机器数:          x= +4: [x]原= 00000100 [x]反= 00000100     x= -4: [x]原= 10000100  [x]反= 111110113、补码(Two’s Complement)正数的补码表示与原码相同。       负数补码等于2n-abs(x)8位机器数表示的真值四、 二进制编码例:求十进制数876的BCD码 876= 1000 0111 0110 BCD  876= 36CH = 1101101100B 2、字符编码    美国标准信息交换码ASCII码,用于计算      机与计算机、计算机与外设之间传递信息。 3、汉字编码 “国家标准信息交换用汉字编码”(GB2312-80标准),简称国标码。 用两个七位二进制数编码表示一个汉字 例如“巧”字的代码是39H、41H汉字内码例如“巧”字的代码是0B9H、0C1H1·4  运算基础 一、二进制数的运算加法规则:“逢2进1”       减法规则:“借1当2”       乘法规则:“逢0出0,全1出1”二、二—十进制数的加、减运算        BCD数的运算规则 循十进制数的运算规则“逢10进1”。但计算机在进行这种运算时会出现潜在的错误。为了解决BCD数的运算问题,采取调整运算结果的措施:即“加六修正”和“减六修正”例:10001000(BCD)+01101001(BCD)        =000101010111(BCD)                1 0 0 0 1 0 0 0       +  0 1 1 0 1 0 0 1           1 1 1 1 0 0 0 1        +  0 1 1 0 0 1 1 0     ……调整          1 0 1 0 1 0 1 1 1                                        进位  例:  10001000(BCD)- 01101001(BCD)= 00011001(BCD)                   1 0 0 0 1 0 0 0            -   0 1 1 0 1 0 0 1             0 0 0 1 1 1 1 1         -                    0 1 1 0   ……调整             0 0 0 1 1 0 0 1  三、 带符号二进制数的运算 1.5 几个重要的数字逻辑电路编码器译码器计数器微机自动工作的条件程序指令顺序存放自动跟踪指令执行1.6 微机基本结构微机结构各部分组成连接方式1、以CPU为中心的双总线结构;2、以内存为中心的双总线结构;3、单总线结构CPU结构管脚特点  1、多功能;2、分时复用内部结构  1、控制; 2、运算; 3、寄存器; 4、地址程序计数器堆栈定义 1、定义;2、管理;3、堆栈形式

    标签: 微机原理 接口

    上传时间: 2013-10-17

    上传用户:erkuizhang