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

转换模式

  • 用51单片机实现公历与农历星期的转换

    实现公历与农历的转换一般采用查表法,按日查表是速度最快的方法但51 单片机寻址能力有限不可能采用按日查表的方法除按日查外,我们可以通过按月查表和按年查表的方法再通过适当的计算来确定公历日所对应的农历日期,本文采用的是按年查表法最大限度地减少表格所占的程序空间。

    标签: 51单片机 农历 转换

    上传时间: 2013-11-25

    上传用户:ouyangmark

  • CAN与RS232转换节点的设计与实现

    CAN与RS232转换节点的设计与实现 介绍将CAN总线接口与RS232总线接口相互转换的设计方法和2种总线电平转换关系,实现CAN总线与各模块的接口设计,制定了相应的软硬件设计方案,并给出软件设计流程图以及部分硬件设计原理图。为CAN总线与RS232总线互联提供了一种方法,对CAN总线与RS232总线接口设备的互联和广泛应用的实现具有重要意义。关键词:CAN总线;RS-232总线;串行通信Design and Realization of CAN and RS232 Transformation NodeZHOU Wei, CHENG Xiao-hong(Information Institute, Wuhan University of Technology, Wuhan 430070)【Abstract】This paper introduces one design method of the CAN bus interface and the RS232 bus interface interconversion, emphasizes two kindof bus level transformation relations, realizes the CAN bus and various modules connection design, formulates the design proposal of correspondingsoftware and hardware, and gives the flow chart of software design as well as the partial schematic diagram of hardware design. It providesonemethod for the CAN bus and the RS232 bus interconnection, has the vital significance to widespread application realization of the CAN busand theRS232 bus interface equipment interconnection.【Key words】CAN bus; RS-232 bus; serial communication

    标签: CAN 232 RS 转换

    上传时间: 2013-11-04

    上传用户:leesuper

  • 单片机外围线路设计

    当拿到一张CASE单时,首先得确定的是能用什么母体才能实现此功能,然后才能展开对外围硬件电路的设计,因此首先得了解每个母体的基本功能及特点,下面大至的介绍一下本公司常用的IC:单芯片解决方案• SN8P1900 系列–  高精度 16-Bit  模数转换器–  可编程运算放大器 (PGIA)•  信号放大低漂移: 2V•  放大倍数可编程: 1/16/64/128  倍–  升压- 稳压调节器 (Charge-Pump Regulator)•  电源输入: 2.4V ~ 5V•  稳压输出: e.g. 3.8V at SN8P1909–  内置液晶驱动电路 (LCD Driver)–  单芯片解决方案 •  耳温枪  SN8P1909 LQFP 80 Pins• 5000 解析度量测器 SN8P1908 LQFP 64 Pins•  体重计  SN8P1907 SSOP 48 Pins单芯片解决方案• SN8P1820 系列–  精确的12-Bit  模数转换器–  可编程运算放大器 (PGIA)• Gain Stage One: Low Offset 5V, Gain: 16/32/64/128• Gain Stage One: Low Offset 2mV, Gain: 1.3 ~ 2.5–  升压- 稳压调节器•  电源输入: 2.4V ~ 5V•  稳压输出: e.g. 3.8V at SN8P1829–  内置可编程运算放大电路–  内置液晶驱动电路 –  单芯片解决方案 •  电子医疗器 SN8P1829 LQFP 80 Pins 高速/低功耗/高可靠性微控制器• 最新SN8P2000 系列– SN8P2500/2600/2700 系列– 高度抗交流杂讯能力• 标准瞬间电压脉冲群测试 (EFT): IEC 1000-4-4• 杂讯直接灌入芯片电源输入端• 只需添加1颗 2.2F/50V 旁路电容• 测试指标稳超 4000V (欧规)– 高可靠性复位电路保证系统正常运行• 支持外部复位和内部上电复位• 内置1.8V 低电压侦测可靠复位电路• 内置看门狗计时器保证程序跳飞可靠复位– 高抗静电/栓锁效应能力– 芯片工作温度有所提高: -200C ~ 700C     工规芯片温度: -400C ~ 850C 高速/低功耗/高可靠性微控制器• 最新 SN8P2000 系列– SN8P2500/2600/2700 系列– 1T  精简指令级结构• 1T:  一个外部振荡周期执行一条指令•  工作速度可达16 MIPS / 16 MHz Crystal–  工作消耗电流 < 2mA at 1-MIPS/5V–  睡眠模式下消耗电流 < 1A / 5V额外功能• 高速脉宽调制输出 (PWM)– 8-Bit PWM up to 23 KHz at 12 MHz System Clock– 6-Bit PWM up to 93 KHz  at 12 MHz System Clock– 4-Bit PWM up to 375 KHz  at 12 MHz System Clock• 内置高速16 MHz RC振荡器 (SN8P2501A)• 电压变化唤醒功能• 可编程控制沿触发/中断功能– 上升沿 / 下降沿 / 双沿触发• 串行编程接口

    标签: 单片机 线路设计

    上传时间: 2013-10-21

    上传用户:jiahao131

  • dsPIC30F看门狗定时器和低功耗模式

    本章介绍dsPIC30F器件系列的看门狗定时器(WDT)和低功耗模式。dsPIC DSC 器件有两种低功耗模式,可以通过执行PWRSAV指令进入:• 休眠模式:CPU、系统时钟源和任何依靠系统时钟源工作的外设都被禁止。这是器件的最低功耗模式。• 空闲模式:CPU 被禁止,但是系统时钟源继续工作。外设继续工作,但可以有选择地禁止。WDT在使能时使用内部LPRC 时钟源工作,而且如果WDT没有被软件清零,它可以通过复位器件来检测系统软件的异常情况。可以使用WDT后分频器选择不同的WDT超时周期。WDT也可用于将器件从休眠或空闲模式唤醒。

    标签: dsPIC 30F 30 看门狗定时器

    上传时间: 2014-02-01

    上传用户:金苑科技

  • DA与AD转换

    计算机应用中,有时需处理的信息不是数字量,而是一些随时间连续变化的模拟量,甚至是一些非电量,如温度、压力、速度等。模拟量的存储处理困难。首先将非电的模拟信号变成与之对应的模拟电信号,这要通过各种传感器来完成。计算机可处理的信息均是数字量(电脉冲信号)1和0,必须把要处理的模拟电量转换成数字化的电信号,这需要模拟(Analog)与数字(Digital)转换电路。数字到模拟转换:(Digital to Analog Convert, D/A) D/A转换电路是模拟电路加上电子开关。D/A转换电路的核心是一个运算放大器。运算放大器的特性:(Operation Amplifier)    K->无穷大, V和->0  传递函数:V0 = -Vi * R0/Ri    Ii->0,  I和=If梯形R-2R电阻网络D/A转换器Ki受一个8位二进制代码控制   某位为1,对应开关K倒向右边;   某位为0,对应开关K倒向左边。Ki不论倒向哪边,均为接地VA-VH 的电位为:     VREF,1/2VREF,..1/128VREFVO= -VREF *(1/2K7+1/4K6+…+1/256K0)V0= -(0-255/256)VREF 8位D/A转换器DAC0830系列器件国家半导体公司(NS)产品,0830、0831、0832。R-2R梯形电阻网络D/A转换器,双缓冲结构。单电源、低功耗、电流建立时间1uS。与微计算机接口方便。8位D/A转换器DAC0830系列器件ILE:        输入锁存允许;  WR1#:       加载IN REG;  WR2#:        加载DAC REG;    XFER#:       IN REG传到DAC REG;  Iout1,Iout2: 外接OA输入;  Rfb:         反馈电阻接OA输出;  VREF:        参考电源,控制输出电压变化范围。

    标签: AD转换

    上传时间: 2013-10-16

    上传用户:lu2767

  • 子空间模式识别方法

    提出了一种改进的LSM-ALSM子空间模式识别方法,将LSM的旋转策略引入ALSM,使子空间之间互不关联的情况得到改善,提高了ALSM对相似样本的区分能力。讨论中以性能函数代替经验函数来确定拒识规则的参数,实现了识别率、误识率与拒识率之间的最佳平衡;通过对有限字符集的实验结果表明,LSM-ALSM算法有效地改善了分类器的识别率和可靠性。关 键 词 学习子空间; 性能函数; 散布矩阵; 最小描述长度在子空间模式识别方法中,一个线性子空间代表一个模式类别,该子空间由反映类别本质的一组特征矢量张成,分类器根据输入样本在各子空间上的投影长度将其归为相应的类别。典型的子空间算法有以下三种[1, 2]:CLAFIC(Class-feature Information Compression)算法以相关矩阵的部分特征向量来构造子空间,实现了特征信息的压缩,但对样本的利用为一次性,不能根据分类结果进行调整和学习,对样本信息的利用不充分;学习子空间方法(Leaning Subspace Method, LSM)通过旋转子空间来拉大样本所属类别与最近邻类别的距离,以此提高分类能力,但对样本的训练顺序敏感,同一样本训练的顺序不同对子空间构造的影响就不同;平均学习子空间算法(Averaged Learning Subspace Method, ALSM)是在迭代训练过程中,用错误分类的样本去调整散布矩阵,训练结果与样本输入顺序无关,所有样本平均参与训练,其不足之处是各模式的子空间之间相互独立。针对以上问题,本文提出一种改进的子空间模式识别方法。子空间模式识别的基本原理1.1 子空间的分类规则子空间模式识别方法的每一类别由一个子空间表示,子空间分类器的基本分类规则是按矢量在各子空间上的投影长度大小,将样本归类到最大长度所对应的类别,在类x()iω的子空间上投影长度的平方为()211,2,,()argmax()jMTkkjpg===Σx􀀢 (1)式中 函数称为分类函数;为子空间基矢量。两类的分类情况如图1所示。

    标签: 子空间 模式 识别方法

    上传时间: 2013-12-25

    上传用户:熊少锋

  • pic单片机实用教程(提高篇)

    pic单片机实用教程(提高篇)以介绍PIC16F87X型号单片机为主,并适当兼顾PIC全系列,共分9章,内容包括:存储器;I/O端口的复位功能;定时器/计数器TMR1;定时器TMR2;输入捕捉/输出比较/脉宽调制CCP;模/数转换器ADC;通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。<br>本书作为Microchip公司大学计划选择用书,可广泛适用于初步具备电子技术基础和计算机知识基础的学生、教师、单片机爱好者、电子制作爱好者、电器维修人员、电子产品开发设计者、工程技术人员阅读。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 第1章 EEPROM数据存储器和FIASH程序存储器1.1 背景知识1.1.1 通用型半导体存储器的种类和特点1.1.2 PIC单片机内部的程序存储器1.1.3 PIC单片机内部的EEPROM数据存储器1.1.4 PIC16F87X内部EEPROM和FIASH操作方法1.2 与EEPROM相关的寄存器1.3 片内EEPROM数据存储器结构和操作原理1.3.1 从EEPROM中读取数据1.3.2 向EEPROM中烧写数据1.4 与FLASH相关的寄存器1.5 片内FLASH程序存储器结构和操作原理1.5.1 读取FLASH程序存储器1.5.2 烧写FLASH程序存储器1.6 写操作的安全保障措施1.6.1 写入校验方法1.6.2 预防意外写操作的保障措施1.7 EEPROM和FLASH应用举例1.7.1 EEPROM的应用1.7.2 FIASH的应用思考题与练习题第2章 输入/输出端口的复合功能2.1 RA端口2.1.1 与RA端口相关的寄存器2.1.2 电路结构和工作原理2.1.3 编程方法2.2 RB端口2.2.1 与RB端口相关的寄存器2.2.2 电路结构和工作原理2.2.3 编程方法2.3 RC端口2.3.1 与RC端口相关的寄存器2.3.2 电路结构和工作原理2.3.3 编程方法2.4 RD端口2.4.1 与RD端口相关的寄存器2.4.2 电路结构和工作原理2.4.3 编程方法2.5 RE端口2.5.1 与RE端口相关的寄存器2.5.2 电路结构和工作原理2.5.3 编程方法2.6 PSP并行从动端口2.6.1 与PSP端口相关的寄存器2.6.2 电路结构和工作原理2.7 应用举例思考题与练习题第3章 定时器/计数器TMR13.1 定时器/计数器TMR1模块的特性3.2 定时器/计数器TMR1模块相关的寄存器3.3 定时器/计数器TMR1模块的电路结构3.4 定时器/计数器TMR1模块的工作原理3.4.1 禁止TMR1工作3.4.2 定时器工作方式3.4.3 计数器工作方式3.4.4 TMR1寄存器的赋值与复位3.5 定时器/计数器TMR1模块的应用举例思考题与练习题第4章 定时器TMR24.1 定时器TMR2模块的特性4.2 定时器TMR2模块相关的寄存器4.3 定时器TMR2模块的电路结构4.4 定时器TMR2模块的工作原理4.4.1 禁止TMR2工作4.4.2 定时器工作方式4.4.3 寄存器TMR2和PR2以及分频器的复位4.4.4 TMR2模块的初始化编程4.5 定时器TMR2模块的应用举例思考题与练习题第5章 输入捕捉/输出比较/脉宽调制CCP5.1 输入捕捉工作模式5.1.1 输入捕捉摸式相关的寄存器5.1.2 输入捕捉模式的电路结构5.1.3 输入捕捉摸式的工作原理5.1.4 输入捕捉摸式的应用举例5.2 输出比较工作模式5.2.1 输出比较模式相关的寄存器5.2.2 输出比较模式的电路结构5.2.3 输出比较模式的工作原理5.2.4 输出比较模式的应用举例5.3 脉宽调制输出工作模式5.3.1 脉宽调制模式相关的寄存器5.3.2 脉宽调制模式的电路结构5.3.3 脉宽调制模式的工作原理5.3.4 脉定调制模式的应用举例5.4 两个CCP模块之间相互关系思考题与练习题第6章 模/数转换器ADC6.1 背景知识6.1.1 ADC种类与特点6.1.2 ADC器件的工作原理6.2 PIC16F87X片内ADC模块6.2.1 ADC模块相关的寄存器6.2.2 ADC模块结构和操作原理6.2.3 ADC模块操作时间要求6.2.4 特殊情况下的A/D转换6.2.5 ADC模块的转换精度和分辨率6.2.6 ADC模块的内部动作流程和传递函数6.2.7 ADC模块的操作编程6.3 PIC16F87X片内ADC模块的应用举例思考题与练习题第7章 通用同步/异步收发器USART7.1 串行通信的基本概念7.1.1 串行通信的两种基本方式7.1.2 串行通信中数据传送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的码型、编码方式和帧结构7.1.5 串行通信中的检错和纠错方式7.1.6 串行通信组网方式7.1.7 串行通信接口电路和参数7.1.8 串行通信的传输速率7.2 PIC16F87X片内通用同步/异步收发器USART模块7.2.1 与USART模块相关的寄存器7.2.2 USART波特率发生器BRG7.2.3 USART模块的异步工作方式7.2.4 USART模块的同步主控工作方式7.2.5 USART模块的同步从动工作方式7.3 通用同步/异步收发器USART的应用举例思考题与练习题第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知识8.1.1 SPI接口信号描述8.1.2 基于SPI的系统构成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相关的寄存器8.2.2 SPI接口的结构和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的从动方式8.3 SPI接口的应用举例思考题与练习题第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C总线的背景知识9.1.1 名词术语9.1.2 I(平方)C总线的技术特点9.1.3 I(平方)C总线的基本工作原理9.1.4 I(平方)C总线信号时序分析9.1.5 信号传送格式9.1.6 寻址约定9.1.7 技术参数9.1.8 I(平方)C器件与I(平方)C总线的接线方式9.1.9 相兼容的SMBus总线9.2 与I(平方)C总线相关的寄存器9.3 典型信号时序的产生方法9.3.1 波特率发生器9.3.2 启动信号9.3.3 重启动信号9.3.4 应答信号9.3.5 停止信号9.4 被控器通信方式9.4.1 硬件结构9.4.2 被主控器寻址9.4.3 被控器接收——被控接收器9.4.4 被控器发送——被控发送器9.4.5 广播式寻址9.5 主控器通信方式9.5.1 硬件结构9.5.2 主控器发送——主控发送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的总线冲突和总线仲裁9.6.1 发送和应答过程中的总线冲突9.6.2 启动过程中的总线冲突9.6.3 重启动过程中的总线冲突9.6.4 停止过程中的总线冲突9.7 I(平方)C总线的应用举例思考题与练习题附录A 包含文件P16F877.INC附录B 新版宏汇编器MPASM伪指令总表参考文献

    标签: pic 单片机 实用教程

    上传时间: 2013-12-14

    上传用户:xiaoyuer

  • 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

  • 单片机应用技术选编10

    单片机应用技术选编10 目录 第一章 专题论述1.1 嵌入式系统的技术发展和我们的机遇(2)1.2 一种新的电路设计和实现方法——进化硬件(8)1.3 从8/16位机到32位机的系统设计(13)1.4 混合SoC设计(18)1.5 AT24系列存储器数据串并转换接口的IP核设计(23)1.6 低能耗嵌入式系统的设计(28)1.7 嵌入式应用中的零功耗系统设计(31)1.8 数字指纹协议的研究与发展(37)1.9 指纹识别控制系统设计(45)1.10 条形码的计算机编码与识别(48)1.11 蓝牙技术综述(54)1.12 蓝牙通信过程解析与研究(60)1.13 蓝牙模块基带电路的接口技术(65)1.14 蓝牙HCI层数据通信的实现(72)1.15 蓝牙技术硬件实现模式分析(77)1.16 Bluetooth技术与相关器件(83)1.17 基于蓝牙技术的无线收发芯片nRF401(88)1.18 蓝牙收发芯片RF2968的原理及应用(93)1.19 nRFTM系列单片机无线收发器的应用设计(99)1.20 基于蓝牙技术的家庭网络(106) 第二章 综合应用2.1 嵌入式系统的超时控制及其应用(114)2.2 多路读写的SDRAM接口设计(118)2.3 SDRAM视频存储控制器的设计与实现(123)2.4 集成多路模拟开关的应用技巧(129)2.5 合理选择DCDC转换器(133)2.6 单片机定时器中断时间误差的分析及补偿(137)2.7 单片机无线串行接口电路设计(140)2.8 单片机控制Modem的两种硬件接口方法(143)2.9 使用PWM得到精密的输出电压(147)2.10 测控系统前向通道的误差分析及标定(150)2.11 如何认识和提高ADC的精度(155)2.12 提高ADC分辨率的硬件和软件措施(160)2.13 智能温度传感器的发展趋势(165)2.14 温度传感器的选择策略(169)2.15 单线数字温度传感器DS18B20数据校验与纠错(174)2.16 TMP03/04型数字温度传感器的工作原理(180)2.17 TMP03/04型数字温度传感器的应用(184)2.18 谐振式水晶温度传感器的现状和发展预测(189)2.19 石英晶体温度传感器的应用(194)2.20 无线数字温度传感器的设计(199)2.21 液晶屏温度响应特性及其温度控制(203)2.22 CPU卡的接口特性、传输协议与读写程序设计(209)2.23 一种基于铁电存储器的双机串行通信技术(215) 第三章 软件技术3.1 面向应用的嵌入式操作系统(222)3.2 嵌入式实时操作系统及其应用(228)3.3 Windows CE在嵌入式工业控制系统中的应用思考(234)3.4 简易非抢先式实时多任务操作系统的设计与应用(239)3.5 单片机程序设计中运用事件驱动机制(248)3.6 实时操作系统RTLINUX的原理及应用(253)3.7 RTLinux的实时机制分析(256)3.8 基于RTLinux系统的设备驱动程序开发与应用(261)3.9 嵌入式实时操作系统μC/OSⅡ及其应用(265)3.10 在MOTOROLA 568XX系列DSP上运行μC/OSⅡ(267)3.11 Franklin C51浮点数与A51浮点数的相互转换、传递及其在混合编程中的应用(272) 第四章 网络、通信与数据传输4.1 嵌入式系统以太网接口的设计(280)4.2 以太网在网络控制系统中的应用与发展趋势(285)4.3 IPv4向IPv6的过渡(291)4.4 在嵌入式网络应用中实现TCP/IP协议(295)4.5 一种以太网与8位单片机的连接方法(300)4.6 RS485总线通信避障及其多主发送的研究(305)4.7 RS422/RS485网络的无极性接线设计(310)4.8 RS485与USB接口转换卡的设计与实现(315)4.9 低压电力线载波数据通信及其应用前景(320)4.10 基于LM1893的电力线载波通信系统设计(327)4.11 家庭无线信息网络解决方案(331)4.12 基于GSM短消息接口的MC3一体化遥测系统(334)4.13 基于短消息的自动抄表系统(337) 第五章 新器件与新技术5.1 ARM核嵌入式系统的开发平台ADS(344)5.2 大容量Flash型AT91系列ARM核微控制器(350)5.3 内嵌UHF ASK/FSK发射器的8位微控制器(357)5.4 专用单片机C5042E在SPWM技术中的编程技巧(361)5.5 新型高精度时钟芯片RTC4553(367)5.6 A/D芯片TLC2543与Neuron芯片的接口应用(372)5.7 一种新型传感器接口IC(376)5.8 新型CMOS图像传感器及其应用(380)5.9 GMS97C2051与ISD2560组成的小型语音系统(385)5.10 73M2901芯片在嵌入式Modem中的应用(389)5.11 电能计量芯片组AT73C500和AT73C501及其应用(395) 第六章 总线技术6.1 PCI总线及其接口芯片的应用(406)6.2 实现RS485/RS422和CAN转换——总线网桥的构建(409)6.3 工控系统应用CAN总线的几种改进方法(413)6.4 快速和高可靠性的CAN网络模块ADAM?500/CAN(418)6.5 SJA1000在CAN总线系统节点的应用(422)6.6 用C167CR实现CAN总线通信(430)6.7 1?WIRE网络的特性与应用(436)6.8 基于TINI的一线制网络互连技术(441)6.9 单总线数字温度传感器的自动识别技术(445)6.10 TM卡信息纽扣在预付费水表中的应用(450)6.11 USB 2.0性能特点及其应用(455)6.12 USB总线协议信息包分析(459)6.13 USB设备的开发(463)6.14 嵌入式系统中USB总线驱动的开发及应用(467)6.15 USB接口单片机SL11R的特点及应用(475)6.16 USB接口器件PDIUSBD12的接口应用设计(479)6.17 USB 2.0控制器CY7C68013特点与应用(486)6.18 基于EZ?USB的数据采集与控制(491)6.19 基于USB接口的IC卡读写器的设计(498)6.20 IEEE 1394总线技术与应用(501) 第七章 可靠性及安全性技术7.1 单片机复位电路的可靠性分析(508)7.2 提高移位寄存器接口电路可靠性的措施(515)7.3 单片机嵌入式系统软件容错设计(518)7.4 键盘信息泄漏与防泄漏键盘设计(526)7.5 USB安全钥功能扩展与优化设计(532)7.6 单片机多机冗余设计及控制模块的VHDL语言描述(540)7.7 一种快速可靠的串行flash容错系统的设计与实现(545)7.8 射频电路印刷电路板的电磁兼容性设计(550)7.9 去耦电容在PCB板设计中的应用(553)7.10 密码访问器件X76F100在单片机系统中的应用(560)7.11 计算机的电磁干扰研究(566)7.12 EMI和屏蔽(一)(573)7.13 EMI和屏蔽(二)(579)7.14 微机接口设计中的静电冲击(ESD)防护措施(585)7.15 单片机应用系统中去除工频干扰的快速实现(589)7.16 传输线路引起的数字信号畸变与抑制(593) 第八章 DSP及其应用技术8.1 TMS320VC5402电路设计中应注意的几个问题(600)8.2 DSP系统中的外部存储器设计(604)8.3 TMS320C24x的C语言与汇编语言的接口技术(610)8.4 DSP环境下C语言编程的优化实现(615)8.5 基于TMS320C6000高速算法的实现(619)8.6 TMS320F240串行外设接口及其应用(624)8.7 基于DSP的Modem及其驱动程序的设计与实现(631)8.8 W3100在DSP系统以太网接口中的应用(637)8.9 CAN总线控制器与DSP的接口(643)8.10 基于DSP的USB传输系统的实现(648) 第九章 HDL与可编程器件技术9.1 谈谈EDA的硬件描述语言(654)9.2 基于VHDL语言的FPGA设计(657)9.3 VHDL的设计特点与应用研究(662)9.4 单片机应用系统的CPLD应用设计(668)9.5 用CPLD实现单片机与ISA总线接口的并行通信(674)9.6 FPGA实现PCI总线接口技术(679)9.7 用FPGS实现DES算法的密钥简化算法(685)9.8 可编程模拟器件原理与开发(690)9.9 数字/模拟ISP技术及其EDA工具(695)9.10 可编程模拟器件ispPAC20在电路设计中的应用(698)9.11 基于FPGA的I2C总线接口实现方法(701)9.12 基于CPLD的串并转换和高速USB通信设计(705)9.13 用HDL语言实现循环冗余校验(712)9.14 利用单片机和CPLD实现直接数字频率合成(DDS)(717)9.15 基于Verilog?HDL的轴承振动噪声电压峰值检测(722) 第十章 综合应用10.1 AVR高速单片机LED显示系统(728)10.2 基于ADμC812与SJA1000数据采集系统的设计(732)10.3 用AT89C2051设计的PC/AT键盘(736)10.4 利用89C2051实现POCSAG编码的方法(739)10.5 加载感应DAC的应用(741)10.6 利用MAX7219设计LED大屏幕基本显示模块(745)10.7 单片机用作通用红外遥控接收器的设计(751)10.8 红外遥控器软件解码及其应用(754) 第十一章 文章摘要 一、专题论述(758)1.1 与8051兼容的单片机的新发展(758)1.2 正在崛起的低功耗微处理器技术(758)1.3 低功耗电子系统设计的综合考虑(758)1.4 数字电路设计方案的比较与选择(758)1.5 单片机应用系统中数学协处理器的开发(758)1.6 实现基于IP核技术的SoC设计(758)1.7 基于知识产权的SoC关键技术与设计(759)1.8 基于IP核复用技术的SoC设计(759)1.9 将IP集成进SoC(759)1.10 模拟/混合电路SoC的设计难题(759)1.11 系统级可编程芯片(SOPC)设计思想与开发策略(759)1.12 基于SoC的PAGER控制芯片设计(759)1.13 一种高性能CMOS带隙电路的设计(759)1.14 基于结构的指纹分类技术(760)1.15 指纹识别的预处理组合算法(760)1.16 一种指纹识别的细节特征匹配的方法(760)1.17 指纹IC卡及其应用(760)1.18 人脸照片的特征提取与查询(760)1.19 一种快速、鲁棒的人脸检测方法(760)1.20 128条码的编码分析和识别算法(761)1.21 身份证号码快速识别系统(761)1.22 汉字识别技术的新方法及发展趋势(761)1.23 蓝牙技术及其应用展望(761)1.24 蓝牙技术浅析(761)1.25 蓝牙HCI USB传输层规范(761)1.26 蓝牙服务发现协议(SDP)的实现(761)1.27 蓝牙技术安全性解析(762)1.28 蓝牙技术及其应用(762)1.29 BluetoothASIC接口技术(762)1.30 RF CMOS蓝牙收发器的设计(一)(762)1.31 RF CMOS蓝牙收发器的设计(二)(762)1.32 单片蓝牙控制器AT76C551(762)1.33 设计RF CMOS蓝牙收发器(762)1.34 ROK 101 007/1蓝牙模块的特性与应用(763)1.35基于nRF401的PC机无线收发模块的设计(763)1.36 无线收发芯片nRF401在监测系统中的应用(763)1.37 基于射频收发芯片nRF401的计算机接口电路设计(763)1.38 采用nRF401实现单片机与PC机无线数据通信(763)1.39 基于射频收发芯片nRF403的无线接口电路设计(763)1.40 蓝牙局域网无线接入网关的研制(763)1.41 基于蓝牙的无线数据采集系统(764)1.42 安立蓝牙无线测试解决方案(764)1.43 嵌入式系统中的蓝牙电话应用规范的实现(764)1.44 蓝牙“三合一电话”的解决方案(764)1.45 用Bluetooth技术构建分布式污水处理控制系统(764)1.46 MPEG的发展动态及其未来预测(764)1.47 软件无线电的关键技术与未来展望(764)1.48 软件无线电与虚拟无线电(765)1.49 射频无线测控系统及其应用(765)1.50 一种新的感知工具——电子标记笔(765)1.51 智能住宅用户控制器设计(765)1.52 利用GPS对计算机实现精确授时(765)1.53 IP代理远程测控系统(765)1.54 曼彻斯特码编码与解码硬件实现(765)1.55 便携式设备中电源软开关设计的一种方法(766)1.56 便携式设备的电源方案设计(766)1.57 StrongARM及其嵌入式应用平台(766)1.58 嵌入式系统在光传输设备中的应用(766)1.59 光纤无源器件技术的发展方向(766) 二、 综合应用(767)2.1 数据存储技术的应用(767)2.2 SL11R单片机外部存储器扩展(767)2.3 构成大容量非易失性SRAM方法分析(767)2.4 一种专用高速硬盘存储设备的设计与实现(767)2.5 基于CDROM的嵌入式系统设计(767)2.6 串行E2PROM的应用设计与编程(767)2.7 利用UART扩展大容量具有SPI接口的快速串行E2PROM的方法(767)2.8 用单片机实现异步串行数据再生(768)2.9 非易失性数字性电位器与单片机的接口设计(768)2.10 数控电位器在频率可调信号源中的应用(768)2.11 单片机上一种新颖实用的ex函数计算方法(768)2.12 单片机系统设计的误区与对策(768)2.13 基于SystemC的嵌入式系统软硬件协同设计(768)2.14 一种基于JTAG TAP的嵌入式调试接口设计(769)2.15 工作频率可动态调整的单片机系统设计(769)2.16 嵌入式系统高效多串口中断源的实现(769)2.17 AVR单片机计时器的优化使用(769)2.18 可编程定时/计数器提高输出频率准确度方法(769)2.19 用插值调整法设计单片机串行口波特率(769)2.20 “频率准确度”自动校准(770)2.21 双时基频率校准电路(770)2.22 电压频率转换电路的动态特性分析及求解(770)2.23 单片机测控系统的低功耗设计(770)2.24 MCS96/196三字节浮点库(770)2.25 循环冗余校验方法研究(770)2.26 32位微处理器下伪SPI技术的研究与实现(770)2.27 智能仪表LED点阵显示模块的设计(771)2.28 点阵式图形VFD与单片机的硬件接口及编程技术(771)2.29 内置汉字字模的EPROM制作技术(771)2.30 利用VC++实现汉字字模的提取与小汉字库的生成(771)2.31 高分辨率电压与电流快速数据采集方法(771)2.32 单片机与数字温度传感器DS18B20的接口设计(771)2.33 新型温度传感器DS18B20高精度测温的实现(772)2.34 MAX6576/6577集成温度传感器(772)2.35 AD22105型低功耗可编程集成温度控制器(772)2.36 基于IEEE 1451.1的网络化智能传感器设计(772)2.37 数字式温度传感器与仪表的智能化设计(772)2.38 用单片机软件实现传感器温度误差补偿(772)2.39 Σ?Δ A/D转换器的原理及分析(772)2.40 一种提高A/D分辨率的信号调理电路设计(773)2.41 高精度数据转换器接口技术(773)2.42 高精度双积分A/D转换器与单片机接口的新方法(773)2.43 一种高速A/D与MCS51单片机的接口方法(773)2.44 基于串行FIFO双口RAM的高速A/D转换采集系统的设计(773)2.45 超高速数据采集系统的设计与实现(773)2.46 廉价隔离型高精度D/A转换器(774)2.47 智能卡及其应用技术研究(774)2.48 Jupiter GPS接收机数据的提取(774)2.49 基于单片机的脉冲频率的宽范围高精度测量(774)2.50 电源模块输入软启动电路的设计(774)2.51 不停车电子收费系统关键技术(774)2.52 一种直接采用计算机串行口控制步进电机的新方法(774)2.53 8051系列单片机通用鼠标接口程序设计(775)2.54 可编程ASIC与MCS51单片机接口设计及实现(775) 三、软件技术(776)3.1 无线信息设备的理想操作系统Symbian OS(776)3.2 TMS320C55x嵌入式实时多任务系统DSP/BIOS II(776)3.3 两种嵌入式操作系统的比较(776)3.4 用自由软件开发嵌入式应用(776)3.5 开放源代码软件的应用研究(776)3.6 清华嵌入式软件系统的解决方案(776)3.7 单片机应用程序的高级语言设计(777)3.8 基于RTX51的单片机软件设计(777)3.9 多网口通信在VXWORKS中的实现(777)3.10 嵌入式实时操作系统中实现MBUF(777)3.11 硬实时操作系统——RTLinux(777)3.12 Linux嵌入式系统的上层应用开发研究(777)3.13 嵌入式Linux内核下串行驱动程序的实现(777)3.14 嵌入式Linux的中断处理与实时调度的实现机制(778)3.15 基于Linux平台的应用研究(778)3.16 基于Linux的嵌入式系统开发(778)3.17 基于Linux的嵌入式系统设计与实现(778)3.18 基于RTLinux的实时控制系统(778)3.19 基于RTLinux的实时机器人控制器研究(778)3.20 嵌入式Linux系统在温室计算机控制中的应用(778)3.21 基于Linux的USB驱动程序实现(779)3.22 Linux环境下实现串口通信(779)3.23 Linux系统下RS485串行通信程序设计(779)3.24 Linux系统下蓝牙设备驱动程序研究和实现 (779)3.25 基于μCLinux和GPRS的无线数据通信系统(779)3.26 嵌入式Linux开发平台的USB主机接口设计(779)3.27 CAN通信卡的Linux设备驱动程序设计实现(779)3.28 μC/OSII实时操作系统内存管理的改进(780)3.29 μC/OSII在总线式数据采集系统中的应用(780)3.30 实时操作系统μC/OSII在MCF5272上的移植(780)3.31 μC/OSII在51XA上的移植应用(780)3.32 实时嵌入式内核在DSP上的移植实现(780)3.33 利用全局及外部变量实现C51无参数化调用A51函数(780)3.34 基于状态分析的键盘管理软件设计(780)3.35 PS/2接口C语言通信函数库设计(781)3.36 DS18B20接口的C语言程序设计(781)3.37 基于KeilC51的SLE4428 IC卡驱动程序设计(781)3.38 智能型并口用软件加密狗的设计(781)3.39 啤酒发酵控制器中的多任务分析与实现(781)3.40 CAN网络应用软件的设计与研究(781)3.41 USB软件系统的开发(782) 四、网络、通信与数据传输(783)4.1 网际协议过渡——从IPv4到IPv6(783)4.2 IPv6简介(783)4.3 传输控制协议(TCP)介绍(783)4.4 TCP/IP协议的ASIC设计与实现(783)4.5 IP电话的TCP/IP协议的实现方法(783)4.6 基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案(783)4.7 基于以太网的家庭网络平台(784)4.8 单芯片家庭网关平台CX821xx(784)4.9 用于单片机的以太网网关——网络通(784)4.10 基于“网络通”的单片机以太网CAN网关的应用(784)4.11 第三代快速以太网控制器及其应用(784)4.12 工业以太网在控制系统中的应用前景(784)4.13 工业以太网控制模块的研究与研制(785)4.14 以太网、控制网与设备网的性能比较与分析(785)4.15 嵌入式系统以太网控制器驱动程序的设计与实现(785)4.16 WIN9X下微机与单片机的串行通信(785)4.17 利用VB6.0实现PC机与单片机的串口通信(785)4.18 基于VB6的PC机与多台单片机通信的应用(785)4.19 用C++Builder6.0实现80C51与PC串行通信(785)4.20 VC++中实现基于多线程的串行通信(786)4.21 RS232串行通信线路的连接方法设计分析(786)4.22 高效率串行通信协议的设计(786)4.23 利用增强并口协议传输数据(786)4.24 应用于RS485网络的多信道串行通信接口的设计(786)4.25 以Visual C++实现PC与89C51之间的串行通信(786)4.26 智能多路RS422串行通信卡的设计(786)4.27 RS232接口转换为通用串行接口的设计原理(787)4.28 基于智能模块的RS485通信协议转换路由器(787)4.29 RS232接口转USB接口的通信方法(787)4.30 用VB实现PC与PDA的串行通信(787)4.31 利用WindowsAPI实现与GPS的串口通信(787)4.32 VB6.0在无线通信中的应用(787)4.33 用PTR2000实现单片机与PC机之间的无线数据通信(787)4.34 基于光纤RS232/RS485传输系统(788)4.35 利用串口实现PC与PDA的同步通信(788)4.36 实现32位单片机MC68332与PC机串行通信的底层程序设计(788)4.37 基于VB的USB设备检测通信研究(788)4.38 USB设备与PC机之间的通信机制的实现技术研究(788)4.39 利用MODEM实现单片机与PC机远程通信(788)4.40 谈谈电力线通信(788)4.41 低压电力线载波高速数据通信设计(789)4.42 PL2000在低压电力线载波通信中的应用(789)4.43 一种电力线扩频载波通信节点的具体实现(789)4.44 一种基于电力线的家庭以太网络实现方法(789)4.45 基于电力线载波的家庭智能化局域网研究(789)4.46 低压电力线扩频家庭自动化系统(789)4.47 智能家庭网络研究与开发(790)4.48 蓝牙在家庭网络中的实现(790)4.49 参照CEBus标准的家庭网络系统研究与实现(790)4.50 采用蓝牙技术构建智能家庭网络(790)4.51 家庭网络中的设备集成研究(790)4.52 一种嵌入式通信协议系统及在智能住宅网络中的应用(790)4.53 基于手机短消息(SMS)的远程无线监控系统的研制(791)4.54 基于GSM短信息方式的远程自来水厂地下水位自动监控系统(791)4.55 TC35及其在短消息自动抄表系统中的应用(791)4.56 计算机不同通信接口下的数据采集技术问题研究(791)4.57 80C152单片机在HDLC通信规程中的应用(791)4.58 内置MODEM通信模块在远程监测系统中的应用(791)4.59 用单片机普通I/O口实现多机通信的一种新方法(792)4.60 利用串行通信实现实时状态监控(792)4.61 基于FIFO芯片的单片机并行通信(792) 五、新器件与新技术(793)5.1 CYGNAL的C8051F02x系列高速SoC单片机(793)5.2 AduC812单片机控制系统的开发(793)5.3 可编程外围芯片PSD5xx与单片机68CHC11的接口(793)5.4 模糊单片机NLX230及其接口软硬件设计(793)5.5 低功耗MSP430单片机在3V与5V混合系统中的逻辑接口技术(793)5.6 MSP430F149单片机在便携式智能仪器中的应用(793)5.7 用MSP430F149单片机实现步进电机通用控制器(793)5.8 PIC和DS18B20温度传感器的接口设计(794)5.9 用P87LPC764单片机的I2C总线扩展“米”字形LED显示器(794)5.10 铁电存储器FM24C04原理及应用(794)5.11 CAT24C021在天文望远镜控制器中的应用(794)5.12 串行时钟芯片在智能传感器中的应用(794)5.13 RTC器件X1228及其在不间断供电系统中的应用(794)5.14 新型A/D转换技术——流水线ADC(794)5.15 集成芯片AD558及其应用(795)5.16 14位3MHz单片模数转换器AD9243的应用(795)5.17 16位模数转换器MAX195在单片机系统中的应用(795)5.18 24位模/数转换器CS5532及其应用(795)5.19 ADS7825模数转换芯片及其在高速数据采集系统中的应用(795)5.20 新型D/A变换器AD9755及其应用(795)5.21 单片机与串口D/A转换器MAX525的接口设计(795)5.22 几种PWN控制器(796)5.23 一种新型的可编程的4~20mA二线制变送器XTR108及其应用(796)5.24 可编程温度监控器ADT14及其应用(796)5.25 一种适用于51系列单片机的R/F转换电路(796)5.26 通用集成滤波器的特点及应用(796)5.27 串行显示驱动器PS7219及单片机的SPI接口设计(796)5.28 新型的键盘显示芯片——SK5279A的应用(797)5.29 高效语音压缩芯片AMBE—2000TM及其在语音压缩中的应用(797)5.30 适于语音处理的SDA80D51芯片及其数字录放音系统(797)5.31 基于ISD2560语音芯片的小型实用语音系统(797)5.32 发射信号处理器AD6622在软件无线电中的应用(797)5.33 基于UM3758108A芯片远距多路参数监测系统(797)5.34 单片频率计ICM7216D及应用(797)5.35 X25045芯片在微机测控系统中的应用(798)5.36 MC14562B在多CPU系统串行通信中的应用(798)5.37 高级串行通信控制器SAB82525及其应用(798)5.38 MAX121芯片在高速串行接口电路中的应用(798)5.39 应用DS2480实现RS232与单总线的串行接口(798)5.40 介绍一种真正的单芯片MODEM73M2901C/5V(798)5.41 HART调制解调器SYM20C15应用设计(799)5.42 TM1300同步串行接口与Modem模拟前端之间的通信(799)5.43 TEMIC系列射频卡及其应用(799)5.44 用Philips PCD600x实现多线电话并机(799)5.45 SDH专用集成电路套片DTT1C08A和DTT1C20A及其应用(799)5.46 GAL16V8用于步进电动机驱动器(799)5.47 UC3717步进电机驱动电路与89C2051单片机的接口技术(799)5.48 TinySwitch单片开关电源的设计方法(800)5.49 基于MAX883的动态供电设计(800)5.50 高压PWM电源控制器MAX5003及其应用(800)5.51 单片机与大功率负载的开关接口(800)5.52 迟滞开关功率转换器LM3485在电源系统中的应用(800)5.53 功率逻辑器件在嵌入式系统中的应用(800)5.54 TPS60101用于低功耗系统的电源解决方案(800)5.55 新型电能表芯片AT73C550及其应用(801)5.56 运动控制芯片MCX314及其应用(801) 六、总线技术(802)6.1 PCItoPCI桥及其应用设计(802)6.2 基于PCI总线的数据采集系统(802)6.3 VXI和PXI总线技术的应用及其发展前景(802)6.4 基于PC104总线的嵌入式以太网卡设计(802)6.5 基于RS485总线的传感器网络化技术研究(802)6.6 RS232总线转CAN总线装置的设计与实现(802)6.7 现场总线技术的发展与工业以太网综述(803)6.8 广义现场总线标准与工业以太网(803)6.9 用单片机设计现场总线转换网桥(803)6.10 基于LonWorks的在系统编程技术(803)6.11 Neuron芯片与MCS51系列单片机串行通信的实现(803)6.12 Neuron芯片多总线I/O对象的应用(803)6.13 CAN总线及其应用技术(804)6.14 CAN总线协议分析(804)6.15 CAN总线智能节点的设计和实现(804)6.16 CAN总线控制器SJA1000的原理及应用(804)6.17 CAN总线与PC机通信卡接口电路设计(804)6.18 CAN总线及其在测控系统中的实现(804)6.19 基于CAN总线的温度、压力控制系统(804)6.20 基于CAN总线的新型网络数控系统(805)6.21 CAN总线在混和动力汽车电机控制系统中的应用(805)6.22 CAN总线技术在石油钻井监控系统中的应用(805)6.23 一种电动阀的DeviceNet总线接口设计(805)6.24 单总线技术及其应用(805)6.25 美国DALLAS公司单线可编程数字温度传感器技术(805)6.26 基于单总线技术的农业温室控制系统设计(805)6.27 单总线协议转换器在分布式测控系统中的应用(806)6.28 单总线技术在电子信息识别系统中的应用(806)6.29 信息纽扣及其在安全巡检管理系统中的应用(806)6.30 SPI串行总线接口及其实现(806)6.31 通用串行总线USB及其产品开发(806)6.32 通用串行总线(USB)数据传输模型(806)6.33 基于USB总线的测试系统开发(806)6.34 一种USB外设的实现方法(807)6.35 基于USB接口的PTP协议在Win32上编程实现(807)6.36 USB在便携式外设间的应用及其协议(807)6.37 多USB接口的局域网接入技术的实现(807)6.38 USB接口设计及其在工业控制中的应用(807)6.39 USB技术在第四代数控测井系统中应用(807)6.40 用AN2131Q开发USB接口设备(807)6.41 USB/IrDA桥控制芯片STIr4200S(808)6.42 一种基于USB接口的家庭网络适配器的设计(808)6.43 基于USB总线的实时数据采集系统设计(808)6.44 基于SL11R的USB接口数据采集系统(808)6.45 基于USB的数据采集系统设计与实现(808)6.46 USB2.0在高速数采系统中应用(808)6.47 基于USB的航空检测数据采集系统的设计(808)6.48 基于USB总线的小型图像采集系统的设计(809)6.49 USB技术及其在图像数据传输中的应用(809)6.50 USB2.0在遥感图像采集中的应用(809)6.51 CCD摄像机的USB接口设计(809)6.52 带USB接口的发动机点火波形测量系统(809)6.53 USB接口智能传感器标定数据采集系统的设计(809)6.54 USB接口在粮仓自动测温系统中的应用(810)6.55 基于GPIF的USBATA解决方案(810)6.56 基于USB总线新型视频监视和会议系统(810)6.57 基于USB接口的高性能虚拟示波器(810)6.58 IEEE 1394与现场总线(810)6.59 IEEE 1394高速串行总线及其应用(810)6.60 EF4442及其应用(811) 七、可靠性及安全性技术(812)7.1 单片机系统可靠掉电保护的实现(812)7.2 提高单片机应用系统可靠性的软件技术(812)7.3 单片机应用系统中元器件的可靠性设计(812)7.4 DSP复位问题研究(812)7.5 计算机RAM检错纠错电路的设计与实现(812)7.6 利用USB接口进行软件加密的设计思想和实现方法(812)7.7 计算机电磁信息泄露与防护研究(813)7.8 USB软件狗的设计及反破解技术(813)7.9 全隔离微机与单片机的RS485通信技术(813)7.10 印制板的可靠性设计(813)7.11 多层布线的发展及其在电源电路电磁兼容设计中的应用(813)7.12 印制电路板的电磁兼容性预测(813)7.13 PCB的热设计(813)7.14 密码术研究综述(814)7.15 利用汇编语言实现DES加密算法(814)7.16 USB保护电路的选择(814)7.17 基于CAN总线的多机冗余系统的设计(814)7.18 蓝牙链路层安全性(814)7.19 开关电源谐波含量测试分析及抑制(814)7.20 系统可靠性冗余的优化研究(814)7.21 电子工程系统中电磁干扰的诊断和控制方法初探(815)7.22 微机化仪器电磁兼容性设计(815)7.23 电磁兼容设计中的屏蔽技术(815)7.24 几种电磁干扰的分析与解决(815)7.25 计算机的电磁干扰研究(815)7.26 电子电路中抗EMI设计(815)7.27 测试系统中干扰及其形成机理(816)7.28 一种基于ST62单片机的强抗干扰控制器的设计(816)7.29 微控制器硬件抗干扰技术(816)7.30 一种具有高抗干扰能力单片机通信电路的设计(816)7.31 测控系统抗干扰设计(816)7.32 单片机应用系统的抗干扰软件设计(816)7.33 变频系统测控软件抗干扰研究(816)7.34 快速瞬变脉冲群干扰的原理及硬件防护(817)7.35 巧用单片机软件抗系统瞬时干扰(817)7.36 微机式保护装置中浪涌干扰的硬件防护(817)7.37 具有抗干扰性能的单片机智能仪表的设计(817)7.38 RS232串行通信消除干扰噪声的设计方法分析(817)7.39 热插拔冗余电源的设计(817)7.40 IC卡读写器的密码识别(817)7.41 16位高抗干扰D/A转换(818) 八、DSP及其应用技术(819)8.1 TMS320F206定点DSP芯片开发实践(819)8.2 ADSP2181精简开发板的研制(819)8.3 DSP系统中的外部存储器设计(819)8.4 Flash存储器在DSP系统中的应用(819)8.5 DSP系统的硬盘接口研究(819)8.6 TMS320C6201与FlashRAM的接口设计与编程技术(819)8.7 基于DSP的实时MPEG4编码的软件优化设计(819)8.8 TMS320C62X DSP的软件开发与优化编程(820)8.9 IP安全内核及其DSP实现的研究(820)8.10 基于TMS320C54X DSK平台的Zoom?FFT的快速实现(820)8.11 高速DSP与串行A/D转换器TLC2558接口的设计(820)8.12 TMS320C2X DSP的一种实用人机接口的设计与实现(820)8.13 DSP系统中常用串口通信的设计(820)8.14 DSP与单片机之间串行通信的实现(821)8.15 基于DMA方式的8位单片机与16位DSP双机通信接口(821)8.16 DSP与PC机间的DMA通信接口设计(821)8.17 TMS320VC5402与I2C总线接口的实现(821)8.18 ZLG7289A与DSPSPI的接口技术(821)8.19 DSP与PCI总线接口设计及实现(821)8.20 TMS320C6X与PC高速通信的实现(822)8.21 DSP与PC之间的以太通信 (822)8.22 TM1300 DSP系统以太网接口的设计(822)8.23 基于DSP的CAN总线通信系统(822)8.24 TMS320VC5410 DSP中USB客户驱动程序开发与实现(822)8.25 基于TMS320C55x DSP的USB通信研究与固体设计(822)8.26 基于DSP的USB口数据采集分析系统(823)8.27 DSP数字信号处理器的浮点数正弦的实现(823)8.28 应用TMS320F240芯片设计高精度可控信号发生器(823)8.29 基于MSP430C325单片机的便携式体温计的设计(823)8.30 基于TMS320VC5409的语音识别模块(823)8.31 基于DSP的ADμC812应用系统设计(823) 九、HDL与可编程器件技术(824)9.1 一种基于CPLD器件的现代数字系统设计方法(824)9.2 基于可编程逻辑器件CPLD及硬件描述语言VHDL的EDA方法(824)9.3 利用硬件描述语言Verilog HDL实现对数字电路的设计和仿真(824)9.4 硬件描述语言VHDL指称语义的研究(824)9.5 VHDL语言逻辑综合的研究(824)9.6 CPLD/FPGA的优化设计(824)9.7 用单片机实现可编程逻辑器件的配置(825)9.8 UART的Verilog HDL实现及计算机辅助调试(825)9.9 基于CPLD的UART设计(825)9.10 用在系统可编程逻辑器件开发并行接口控制器(825)9.11 用CPLD设计EPP数据采集控制器(825)9.12 带FPGA的PCI接口应用(825)9.13 基于CPLD的PCI总线存储卡的设计(826)9.14 基于CPLD的中断控制器IP设计(826)9.15 基于FPGA设计的精度管理策略(826)9.16 VHDL语言在描述DES加密机中的应用(826)9.17 基于P89C51RD2 IAP功能的数据存取与软件升级(826)9.18 在系统可编程模拟器件ispPAC30及其应用(826)9.19 可编程模拟器设计及ispPAC30应用(826)9.20 ispPAD在模拟电路设计中的应用(827)9.21 在系统可编程模拟器件(ispPAC)及其应用(827)9.22 在系统可编程模拟器件ispPAC20及其应用(827)9.23 ispLSI1032E器件及其应用(827)9.24 用ispPAC20实现的最简温度测控系统(827)9.25 在系统可编程器件设计应用实例(827)9.26 在FPGA开发板上设计8051的开发平台(828)9.27 由可编程逻辑器件与单片机构成的双控制器(828)9.28 用VHDL设计专用串行通信芯片(828)9.29 基于FPGA的ARINC429总线接口芯片的设计与实现(828)9.30 I2C总线通信接口的CPLD实现(828)9.31 FPGA模拟MBUS总线的实现(828)9.32 基于FPGA的USB2.0控制器设计(828)9.33 USB外设接口的FPGA实现(829)9.34 循环冗余校验码的单片机及CPLD实现(829)9.35 可编程芯片在测控系统中的应用(829)9.36 可编程逻辑器件在浮点放大器中的应用(829)9.37 FPGA在高速多通道数据采集中的应用(829)9.38 在DSP采样系统中采用DAC实现量程自动转换(829)9.39 基于VHDL语言的数字频率计设计(830)9.40 基于VHDL语言的数字频率计的设计(830)9.41 CPLD在SPWM变频调速系统控制中的应用(830)9.42 ISP技术在交通控制器中的应用(830)9.43 基于ISP技术的有限状态机控制系统设计(830)9.44 如何使用ISP技术产生任意波形(830)9.45 打印控制卡的FPGA外围电路设计(830)9.46 加密可编程逻辑阵列芯片引脚的判别(831)9.47 蓝牙系统中的加密技术及其算法的FPGA实现(831)9.48 运用VHDL语言设计电视墙数字图像处理电路(831)9.49 CPLD在电路板故障诊断中的应用(831)9.50 用硬件描述语言设计一个简单的超标量流水线微处理器(831)9.51 用CPLD技术实现高速数据识别码检测器(831)9.52 用CPLD控制ISD2590语音芯片的技术应用(832) 十、综合应用(833)10.1 嵌入式处理器StrongARM的开发研究(833)10.2 基于StrongARM的视频采集与处理系统(833)10.3 基于StrongARM的远程网络监控系统设计(833)10.4 基于80C196KC的CAM锁定功能实现可控硅的触发控制(833)10.5 基于MSP430F149的低成本智能型电力监测仪(833)10.6 一种基于ADμC812单片机的数据采集器(833)10.7 基于PIC16C72单片机的线性V/F转换器设计(834)10.8 基于PIC16C923单片机的非接触式光纤温度测量仪(834)10.9 用89C2051构成智能仪表的键显接口(834)10.10 基于89C2051的解码器设计(834)10.11 基于AT89C2051的准方波逆变电源(834)10.12 单片机AT89C2051构成的智能型频率计(834)10.13 基于AT89C2051单片机的旋转变压器位置测量系统设计(834)10.14 AT89C2051单片机对显示驱动芯片MC14499的IC级代换(835)10.15 实用变量程模拟信号单片机检测电路(835)10.16 GPS高精度时钟的设计和实现(835)10.17 一种基于GPS的高速数据采集卡的实现(835)10.18 V/F转换电压测量系统(835)10.19 用20位DAC实现0~10 V可程控精密直流参考源的设计(835)10.20 单片MAX752实现的CCD供电电源的设计(835)10.21 基于双口RAM的智能型开关量控制卡的设计(836)10.22 矩阵键盘产生PC机键盘信号的应用设计(836)10.23 基于C51的汉字/数字混合液晶显示及更新的方法(836)10.24 实现串行E2PROM芯片的PC界面操作(836)10.25 一种软硬件结合的POCSAG码解码装置研制(836)10.26 蓝牙技术在医疗监护中的应用(836)10.27 一种红外感应泵液器的单片机应用设计(836)10.28 电话报警系统的设计(837)10.29 无轨电车整流站自动化监控系统(837)10.30 PWM恒流充电系统的设计(837)10.31 微功耗智能IC卡燃气表的研制(837)10.32 软件接口技术在串行通信中的应用(837)10.33 数字化直流接地系统绝缘检测仪的设计与开发(837)10.34 4Mbps红外无线计算机通信卡研制(837)10.35 MCB1电力测量控制仪中CAN总线通信模板的设计及编程(838)10.36 单片机在晶闸管触发电路中的应用(838)10.37 基于DS1302的子母钟系统(838)

    标签: 单片机 应用技术

    上传时间: 2013-12-04

    上传用户:vmznxbc

  • 汇编+保护模式+教程

    九.输入/输出保护为了支持多任务,80386不仅要有效地实现任务隔离,而且还要有效地控制各任务的输入/输出,避免输入/输出冲突。本文将介绍输入输出保护。 这里下载本文源代码。 <一>输入/输出保护80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入/输出,实现输入/输出保护。 1.I/O敏感指令输入输出特权级(I/O Privilege Level)规定了可以执行所有与I/O相关的指令和访问I/O空间中所有地址的最外层特权级。IOPL的值在如下图所示的标志寄存器中。 标  志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O许可位图规定了I/O空间中的哪些地址可以由在任何特权级执行的程序所访问。I/O许可位图在任务状态段TSS中。 I/O敏感指令 指令 功能 保护方式下的执行条件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 设置EFLAGS中的IF位 CPL<=IOPL IN 从I/O地址读出数据 CPL<=IOPL或I/O位图许可 INS 从I/O地址读出字符串 CPL<=IOPL或I/O位图许可 OUT 向I/O地址写数据 CPL<=IOPL或I/O位图许可 OUTS 向I/O地址写字符串 CPL<=IOPL或I/O位图许可 上表所列指令称为I/O敏感指令,由于这些指令与I/O有关,并且只有在满足所列条件时才可以执行,所以把它们称为I/O敏感指令。从表中可见,当前特权级不在I/O特权级外层时,可以正常执行所列的全部I/O敏感指令;当特权级在I/O特权级外层时,执行CLI和STI指令将引起通用保护异常,而其它四条指令是否能够被执行要根据访问的I/O地址及I/O许可位图情况而定(在下面论述),如果条件不满足而执行,那么将引起出错码为0的通用保护异常。 由于每个任务使用各自的EFLAGS值和拥有自己的TSS,所以每个任务可以有不同的IOPL,并且可以定义不同的I/O许可位图。注意,这些I/O敏感指令在实模式下总是可执行的。 2.I/O许可位图如果只用IOPL限制I/O指令的执行是很不方便的,不能满足实际要求需要。因为这样做会使得在特权级3执行的应用程序要么可访问所有I/O地址,要么不可访问所有I/O地址。实际需要与此刚好相反,只允许任务甲的应用程序访问部分I/O地址,只允许任务乙的应用程序访问另一部分I/O地址,以避免任务甲和任务乙在访问I/O地址时发生冲突,从而避免任务甲和任务乙使用使用独享设备时发生冲突。 因此,在IOPL的基础上又采用了I/O许可位图。I/O许可位图由二进制位串组成。位串中的每一位依次对应一个I/O地址,位串的第0位对应I/O地址0,位串的第n位对应I/O地址n。如果位串中的第位为0,那么对应的I/O地址m可以由在任何特权级执行的程序访问;否则对应的I/O地址m只能由在IOPL特权级或更内层特权级执行的程序访问。如果在I/O外层特权级执行的程序访问位串中位值为1的位所对应的I/O地址,那么将引起通用保护异常。 I/O地址空间按字节进行编址。一条I/O指令最多可涉及四个I/O地址。在需要根据I/O位图决定是否可访问I/O地址的情况下,当一条I/O指令涉及多个I/O地址时,只有这多个I/O地址所对应的I/O许可位图中的位都为0时,该I/O指令才能被正常执行,如果对应位中任一位为1,就会引起通用保护异常。 80386支持的I/O地址空间大小是64K,所以构成I/O许可位图的二进制位串最大长度是64K个位,即位图的有效部分最大为8K字节。一个任务实际需要使用的I/O许可位图大小通常要远小于这个数目。 当前任务使用的I/O许可位图存储在当前任务TSS中低端的64K字节内。I/O许可位图总以字节为单位存储,所以位串所含的位数总被认为是8的倍数。从前文中所述的TSS格式可见,TSS内偏移66H的字确定I/O许可位图的开始偏移。由于I/O许可位图最长可达8K字节,所以开始偏移应小于56K,但必须大于等于104,因为TSS中前104字节为TSS的固定格式,用于保存任务的状态。 1.I/O访问许可检查细节保护模式下处理器在执行I/O指令时进行许可检查的细节如下所示。 (1)若CPL<=IOPL,则直接转步骤(8);(2)取得I/O位图开始偏移;(3)计算I/O地址对应位所在字节在I/O许可位图内的偏移;(4)计算位偏移以形成屏蔽码值,即计算I/O地址对应位在字节中的第几位;(5)把字节偏移加上位图开始偏移,再加1,所得值与TSS界限比较,若越界,则产生出错码为0的通用保护故障;(6)若不越界,则从位图中读对应字节及下一个字节;(7)把读出的两个字节与屏蔽码进行与运算,若结果不为0表示检查未通过,则产生出错码为0的通用保护故障;(8)进行I/O访问。设某一任务的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;对应I/O端口00H—3FH                        DB      10000000B      ;对应I/O端口40H—47H                        DB      01100000B      ;对用I/O端口48H—4FH                        DB      8182 DUP(0ffH) ;对应I/O端口50H—0FFFFH                        DB      0FFH           ;位图结束字节TSSLen                  =       $TSSSEG                  ENDS 再假设IOPL=1,CPL=3。那么如下I/O指令有些能正常执行,有些会引起通用保护异常:                         in      al,21h  ;(1)正常执行                        in      al,47h  ;(2)引起异常                        out     20h,al  ;(3)正常实行                        out     4eh,al  ;(4)引起异常                        in      al,20h  ;(5)正常执行                        out     20h,eax ;(6)正常执行                        out     4ch,ax  ;(7)引起异常                        in      ax,46h  ;(8)引起异常                        in      eax,42h ;(9)正常执行 由上述I/O许可检查的细节可见,不论是否必要,当进行许可位检查时,80386总是从I/O许可位图中读取两个字节。目的是为了尽快地执行I/O许可检查。一方面,常常要读取I/O许可位图的两个字节。例如,上面的第(8)条指令要对I/O位图中的两个位进行检查,其低位是某个字节的最高位,高位是下一个字节的最低位。可见即使只要检查两个位,也可能需要读取两个字节。另一方面,最多检查四个连续的位,即最多也只需读取两个字节。所以每次要读取两个字节。这也是在判别是否越界时再加1的原因。为此,为了避免在读取I/O许可位图的最高字节时产生越界,必须在I/O许可位图的最后填加一个全1的字节,即0FFH。此全1的字节应填加在最后一个位图字节之后,TSS界限范围之前,即让填加的全1字节在TSS界限之内。 I/O许可位图开始偏移加8K所得的值与TSS界限值二者中较小的值决定I/O许可位图的末端。当TSS的界限大于I/O许可位图开始偏移加8K时,I/O许可位图的有效部分就有8K字节,I/O许可检查全部根据全部根据该位图进行。当TSS的界限不大于I/O许可位图开始偏移加8K时,I/O许可位图有效部分就不到8K字节,于是对较小I/O地址访问的许可检查根据位图进行,而对较大I/O地址访问的许可检查总被认为不可访问而引起通用保护故障。因为这时会发生字节越界而引起通用保护异常,所以在这种情况下,可认为不足的I/O许可位图的高端部分全为1。利用这个特点,可大大节约TSS中I/O许可位图占用的存储单元,也就大大减小了TSS段的长度。 <二>重要标志保护输入输出的保护与存储在标志寄存器EFLAGS中的IOPL密切相关,显然不能允许随便地改变IOPL,否则就不能有效地实现输入输出保护。类似地,对EFLAGS中的IF位也必须加以保护,否则CLI和STI作为敏感指令对待是无意义的。此外,EFLAGS中的VM位决定着处理器是否按虚拟8086方式工作。 80386对EFLAGS中的这三个字段的处理比较特殊,只有在较高特权级执行的程序才能执行IRET、POPF、CLI和STI等指令改变它们。下表列出了不同特权级下对这三个字段的处理情况。 不同特权级对标志寄存器特殊字段的处理 特权级 VM标志字段 IOPL标志字段 IF标志字段 CPL=0 可变(初POPF指令外) 可变 可变 0  不变 不变 可变 CPL>IOPL 不变 不变 不变 从表中可见,只有在特权级0执行的程序才可以修改IOPL位及VM位;只能由相对于IOPL同级或更内层特权级执行的程序才可以修改IF位。与CLI和STI指令不同,在特权级不满足上述条件的情况下,当执行POPF指令和IRET指令时,如果试图修改这些字段中的任何一个字段,并不引起异常,但试图要修改的字段也未被修改,也不给出任何特别的信息。此外,指令POPF总不能改变VM位,而PUSHF指令所压入的标志中的VM位总为0。 <三>演示输入输出保护的实例(实例九)下面给出一个用于演示输入输出保护的实例。演示内容包括:I/O许可位图的作用、I/O敏感指令引起的异常和特权指令引起的异常;使用段间调用指令CALL通过任务门调用任务,实现任务嵌套。 1.演示步骤实例演示的内容比较丰富,具体演示步骤如下:(1)在实模式下做必要准备后,切换到保护模式;(2)进入保护模式的临时代码段后,把演示任务的TSS段描述符装入TR,并设置演示任务的堆栈;(3)进入演示代码段,演示代码段的特权级是0;(4)通过任务门调用测试任务1。测试任务1能够顺利进行;(5)通过任务门调用测试任务2。测试任务2演示由于违反I/O许可位图规定而导致通用保护异常;(6)通过任务门调用测试任务3。测试任务3演示I/O敏感指令如何引起通用保护异常;(7)通过任务门调用测试任务4。测试任务4演示特权指令如何引起通用保护异常;(8)从演示代码转临时代码,准备返回实模式;(9)返回实模式,并作结束处理。

    标签: 汇编 保护模式 教程

    上传时间: 2013-12-11

    上传用户:nunnzhy