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

条件

  • 中断技术

    一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。                                       4.1  中断概述                                   4.2  MCS-51中断系统   1、中断的定义:        中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 2、中断系统的定义:中断系统是指为了实现中断传送过程在CPU内外设置的硬件和有关中断的指令。3、中断源:⑴中断源的定义:中断源是指引起中断请求的来源。⑵中断源的分类: ①软中断和 ②硬中断4、中断处理的全过程       中断处理的全过程分成3个阶段:中断请求、中断响应和中断服务。5、多重中断与中断优先级      ⑴ 当系统中有多个设备提出中断请求时,多个外设的中请信号要通过门电路送到CPU的中请输入端,使CPU能收到多个外设提出的中请。     ⑵ CPU在收到多个外设的请求后,按中断处理原则处理中断。     ⑶  确定优先级的方法解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法(采用可编程的中断控制器芯片,如Intel8259A)。

    标签: 中断技术

    上传时间: 2013-10-12

    上传用户:ysjing

  • 汇编语言程序设计基础

     将正数n插入一个已整序的字数组的正确位置。算法:  将数组中数逐个与N比较,Si为指针若N<Ki,则Ki下移一个单元若NKi,则插在Ki的下一个单元,并结束临界条件:若NKn,则插入Kn的下一个单元若N<K1,则K1~Kn后移一个单元, N插在第一个单元循环控制:计数控制元素个数=((字末地址-字首地址) / 2) +1            字数                = (字节末地址-字节首地址) +1           字节数地址边界控制结束地址为ARRAY_HEAD特征值控制:   表示结束条件的值

    标签: 汇编语言 程序设计

    上传时间: 2013-12-26

    上传用户:haiya2000

  • 单片机模糊逻辑控制

    单片机模糊模糊控制是目前在控制领域所采用的三种智能控制方法中最具实际意义的方法。模糊控制的采用解决了大量过去人们无法解决的问题,并且在工业控制、家用电器和各个领域已取得了令人触目的成效。本书是一本系统地介绍模糊控制的理论、技术、方法和应用的著作;内容包括模糊控制基础、模糊控制器、模糊控制系统、模糊控制系统的稳定性、模糊控制系统的开发软件,用单片微型机实现模糊控制的技术和方法,模糊控制在家用电器和工业上应用的实际例子;反映了模糊控制目前的水平。 单片机模糊模糊控制目录 : 第一章 模糊逻辑、神经网络集成电路的发展 1.1 模糊逻辑及其集成电路的发展1.1.1 模糊逻辑的诞生和发展1.1.2 模糊集成电路的发展进程1.2 神经网络及其集成电路的发展1.2.1 神经网络的形成历史1.2.2 神经网络集成电路的发展1.3 模糊逻辑和神经网络的结合1.3.1 模糊逻辑和神经网络结合的意义1.3.2 模糊逻辑和神经网络结合的前景第二章 模糊逻辑及其理论基础 2.1 模糊集合与隶属函数2.1.1 模糊集合概念2.1.2 隶属函数2.1.3 分解定理与扩张定理2.1.4 模糊数2.2 模糊关系、模糊矩阵与模糊变换2.2.1 模糊关系2.2.2 模糊矩阵2.2.3 模糊变换2.3模糊逻辑和函数2.3.1模糊命题2.3.2模糊逻辑2.3.3模糊逻辑函数2.4模糊语言2.4.1 语言及语言的模糊性2.4.2 模糊语言2.4.3 语法规则和算子2.4.4 模糊条件语句2.5 模糊推理2.5.1 模糊推理的CRI法2.5.2 模糊推理的TVR法2.5.3 模糊推理的直接法2.5.4 模糊推理的精确值法2.5.5 模糊推理的强度转移法第三章 模糊控制基础 3.1 模糊控制的系统结构3.2 精确量的模糊化3.2.1 语言变量的分档3.2.2 语言变量值的表示方法3.2.3 精确量转换成模糊量3.3 模糊量的精确化3.3.1 最大隶属度法3.3.2 中位数法3.3.3 重心法3.4 模糊控制规则及控制算法3.4.1 模糊控制规则的格式3.4.2 模糊控制规则的生成3.4.3 模糊控制规则的优化3.4.4 模糊控制算法3.5 模糊控制的神经网络方法3.5.1 神经元和神经网络3.5.2 神经网络的分布存储和容错性3.5.3 神经网络的学习算法3.5.4 神经网络实现的模糊控制3.5.5 神经网络构造隶属函数3.5.6 神经网络存储控制规则3.5.7 神经网络实现模糊化、反模糊化第四章 模糊控制器 4.1 模糊控制器结构4.2 模糊控制器设计4.2.1 常规模糊控制器设计4.2.2 变结构模糊控制器设计4.2.3 自组织模糊控制器设计4.2.4 自适应模糊控制器设计4.3 模糊控制器的数学模型4.3.1 常规模糊控制器的数学模型4.3.2 模糊控制器数学模型的建立第五章 模糊控制系统 5.1 模糊系统的辨识和建模5.1.1 模糊系统辨识的数学基础5.1.2 基于模糊关系方程的模糊模型辨识5.1.3 基于语言控制规则的模糊模型辨识5.2 模糊控制系统的设计5.2.1 模糊控制系统的一般设计过程5.2.2 模糊控制系统的典型设计5.3 模糊控制系统的稳定性5.3.1 稳定性分析的Lyapunov直接法5.3.2 语言规则描述的模糊控制系统的稳定性5.3.3 关系方程描述的模糊控制系统的稳定性第六章 数字单片机与模糊控制6.1 数字单片机MC68HC705P96.1.1 MC68HC705P9单片机性能概论6.1.2 MC68HC705P9单片机基本结构6.1.3 MC68HC705P9指令系统6.2 数字单片机模糊控制方式6.2.1 数字单片机与模糊控制关系6.2.2 数字单片机模糊控制方式第七章 模糊单片机与模糊控制7.1 模糊单片机NLX2307.1.1 模糊单片机NLX230性能概况7.1.2 NLX230的结构及引脚7.1.3 NLX230的模糊推理方式7.1.4 NLX230的内部寄存器7.1.5 NLX230的操作及接口技术7.2 NLX230开发系统7.3 NLX230应用例子第八章 模糊控制的开发软件8.1 模糊推理机原理8.2 模糊推理机的算法8.3 模糊推理机结构和清单8.4 模糊逻辑知识基发生器8.5 模糊推理开发环境8.5.1 FIDE的工作条件8.5.2 FIDE的结构8.5.3 FIDE的工作过程第九章 模糊控制在家用电器中的应用9.1 模糊控制的电冰箱9.1.1 电冰箱模糊控制系统结构9.1.2 模糊控制规则和模糊量9.1.3 控制系统的电路结构9.1.4 控制规则的自调整9.2 模糊控制的电饭锅9.2.1 煮饭的工艺过程曲线9.2.2 模糊控制的逻辑结构9.2.3 模糊量和模糊推理9.2.4 控制软件框图9.3 模糊控制的微波炉9.3.1 控制电路的结构框图9.3.2 微波炉的模糊量与推理9.3.3 微波炉控制电路结构原理9.3.4 控制软件原理及框图9.4 模糊控制的洗衣机9.4.1 模糊洗衣机控制系统逻辑结构9.4.2 模糊洗衣机的模糊推理9.4.3 洗衣机物理量检测方法9.4.4 布质和布量的模糊推理第十章 模糊控制在工程上的应用10.1 模糊参数自适应PID控制器10.1.1 自校正PID控制器10.1.2 模糊参数自适应PID控制系统结构10.1.3 模糊控制规则的产生10.1.4 模糊推理机理及运行结果10.2 恒温炉模糊控制10.2.1 恒温炉模糊控制的系统结构10.2.2 模糊控制器及控制规则的形成10.2.3 模糊控制器的校正10.3 感应电机模糊矢量控制10.3.1 模糊矢量控制系统结构10.3.2 矢量控制的基本原理10.3.3 模糊电阻观测器10.3.4 模糊控制器及运行

    标签: 单片机 模糊逻辑 控制

    上传时间: 2014-12-28

    上传用户:semi1981

  • 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

  • 汇编+保护模式+教程

    九.输入/输出保护为了支持多任务,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

  • 带I2C串行CMOS EEPROM、精密复位控制器和看门狗定

    带I2C串行CMOS EEPROM、精密复位控制器和看门狗定时器的监控电路 特性􀂄 看门狗监控SDA信号 (CAT1161)􀂄 兼容400KHz 的I2C总线􀂄 操作电压范围为2.7V~6.0V􀂄 低功耗CMOS 技术􀂄 16 字节的页写缓冲区􀂄 内置误写保护电路-Vcc锁定-写保护管脚WP􀂄 复位高电平或低电平有效-精确的电源电压监控-支持5V,3.3V 和3V 的系统-5个复位门槛电压可供选择􀂄 1,000,000个编程/擦除周期􀂄 手动复位􀂄 数据可保存100 年􀂄 8 脚DIP 封装或8 脚SOIC 封装􀂄 商业和工业级温度范围描述CAT1161/2 为基于微控器的系统提供了一个完整的存储器和电源监控解决方案。它们利用低功耗CMOS技术将16k带硬件存储器写保护功能的串行EEPROM 存储器、用于掉电保护的电源监控电路和一个看门狗定时器集成到一块芯片上。存储器采用I2C 总线接口。当系统由于软件或硬件干扰而被终止或“挂起”时,1.6 秒的看门狗电路将复位系统,使系统恢复正常。CAT1161的看门狗电路监控着SDA,这就可以省去额外的PC板跟踪电路。低价位的CAT1162不含看门狗定时器。电源监控和复位电路可在系统上电/下电时保护存储器和系统控制器,防止掉电条件的产生。CAT1161/2的5个门槛电压可支持5V、3.3V和3V的系统。一旦电源电压超出范围,复位信号有效,禁止微控制器、ASIC或外围器件继续工作。复位信号在电源电压超过复位门槛电压后的200ms内仍保持有效。由于带有高电平和低电平复位信号,因此CAT1161/2可以很方便地连接到微控制器和其它IC。另外,复位管脚还可用作手动按键复位的去抖输入。 CAT1161/2 的存储器构造成16字节的页。除此之外,写保护管脚WP和VCC 检测电路提供的硬件数据保护功能可防止在Vcc降到低于复位门槛电压或上电时Vcc上升到复位门槛电压之前对存储器的写操作。器件包含8脚DIP和表贴8脚SOIC两种封装形式。

    标签: EEPROM CMOS I2C 串行

    上传时间: 2014-03-19

    上传用户:虫虫虫虫虫虫

  • 提高PLC程序运行速度的几种编程方法

    PLC 以 其 可靠性高、抗干扰能力强、配套齐全、功能完善、适应性强等特点,广泛应用于各种控制领域。PLC作为通用工业控制计算机,是面向工矿企业的工控设备,使用梯形图符号进行编程,与继电器电路相当接近,被广大工程技术人员接受。但是在实际应用中,如何编程能够提高PLC程序运行速度是一个值得我们思考研究的问题。1 PLC工作原理PLC 与 计 算机的工作原理基本相同,即在系统程序的管理下,通过运行应用程序完成用户任务。但两者的工作方式有所不同。计算机一般采用等待命令的工作方式,而PLC在确定了工作任务并装人了专用程序后成为一种专用机,它采用循环扫描工作方式,系统工作任务管理及应用程序执行都是用循环扫描方式完成的。PLC 有 两 种基本的工作状态,即运行(RUN)与停止(STOP)状态。在这两种状态下,PLC的扫描过程及所要完成的任务是不尽相同的,如图1所示。 PLC在RUN工作状态时,执行一次扫描操作所的时间称为扫描周期,其典型值通常为1一100nis,不同PLC厂家的产品则略有不同。扫描周期由内部处理时间、输A/ 输出处理执行时间、指令执行时间等三部分组成。通常在一个扫描过程中,执行指令的时间占了绝大部分,而执行指令的时间与用户程序的长短有关。用户 程 序 是根据控制要求由用户编制,由许多条PLC指令所组成。不同的指令所对应的程序步不同,以三菱FX2N系列的PLC为例,PLC对每一个程序步操作处理时间为:基本指令占0.741s/步,功能指令占几百微米/步。完成一个控制任务可以有多种编制程序的方法,因此,选择合理、巧妙的编程方法既可以大大提高程序运行速度,又可以保证可靠性。 提高PLC程序运行速度的几种编程方法2.1 用数据传送给位元件组合的方法来控制输出在 PL C应 用编程中,最后都会有一段输出控制程序,一般都是用逻辑取及输出指令来编写,如图2所示。在图2所示的程序中,逻辑取的程序步为1,输出的程序步为2,执行上述程序共需3个程序步。通常情况下,PLC要控制的输出都不会是少量的,比如,有8个输出,在条件满足时要同时输出。此时,执行图2所示的程序共需17个程序步。若我们通过位元件的组合并采用数据传送的方法来完成图2所示的程序,就会大大减少程序步骤。在三 菱 PLC中,只处理ON/OFF状态的元件(如X,Y,M和S),称为位元件。但将位元件组合起来也可以处理数据。位元件组合由Kn加首元件号来表示。位元件每4bit为一组组合成单元。如KYO中的n是组数,当n=1时,K,Yo 对应的是Y3一Yo。当n二2时,KZYo对应的是Y7一Yo。通过位元件组合,就可以用处理数据的方式来处理位元件,图2程序所示的功能可用图3所示的传送数据的方式来完成。

    标签: PLC 程序 运行速度 编程方法

    上传时间: 2013-11-11

    上传用户:几何公差

  • 单片机系统“PC”失控的软件措施

    单片机系统“PC”失控的软件措施Software Measure of GettingO uto fC ontrolfo r“PC"in S ingleC hipC omputerS ystem谧 加 春 王 晓 基 雷 小 华(江 西 理 工 大 学机 电 工 程 学 院 ,赣 州 34 10 00)摘要单片机系统在实际工业现场中可能遇到各种干扰和自身的随机性故障。现场恶劣的环境有可能使计算机系统发生异常,计算机程序指针“PC”失控就是常见的故障之一,如果发生“PC”失控,将导致CPI工作混乱,酿成严重的事故。研究了“PC”失控的原因,并指出软件抗干扰的几种方法,有效保证单片机系统的正常工作。关键词单片机“PC”失控抗干扰Abstract Inp racticalin dustrialfi elds,th ereis v ariousin terferencea fectingo perationo fsi nglec hipc omputersy stemsa ndt hec omputersy stems。fac吨random faults饰themselves. It is very common that the severe environment makes the computer systems abnormal. The program counter "PC"gettingo utof co ntorlis on eo fth ec ommonfa ults.If th isoc curs,C PUw ouldb eru nningo utof or deran din torducesse riousan cient.T hec ausesof " PC"geting out of control, studied in this paper and some countermeasures of anti-interference师software are given to ensure single chip computer systemworking properly.Keywords Single。饰computer Porgramc ounter"P C" Anti-interfeernc 在设 计 和 开发单片机系统时,一般难以周全地预计单片机系统在实际工业现场中可能遇到的各种干扰和自身的随机性故障。因此,除了采取防止和抑制干扰的各项措施外,还应该借助于软件措施克服某些干扰,系统还应具备迅速自行恢复的能力。本文介绍的应对单片机系统PC失控的软件措施,设计灵活,节省硬件资源,能保证测控系统长期可靠地运行。MC S- 5 1单片机以其优良的性能价格比大量应用于工业现场测试和控制领域。但是,现场恶劣的环境有可能使计算机系统发生异常,计算机程序指针PC失控就是常见的故障之一,一旦发生PC“走飞”,计算机系统就会出现工作混乱,酿成严重的事故。为 了 在 CP 失控时尽量减少由此带来的不利影响,并尽快使系统恢复正常,需要采取一定的软件措施和硬件措施。常见的硬件措施有“看门狗”电路。软件措施设置的前提条件是:①在干扰作用下,微机系统硬件部分不会受到任何损坏,或者损坏部分设置有监测状态可供查询;②程序区不会受到干扰侵害。单片机系统的程序和表格以及重要的参数均设置在ROM区,不会因干扰的侵人而改变;③ RAM区中的重要数据不会被破坏,或者虽然被破坏,但是可以重新建立。

    标签: 单片机系统 软件

    上传时间: 2013-11-02

    上传用户:bhqrd30

  • cx51编译器用户手册

    本手册讲述对8051 的目标环境,如何使用Cx51优化C 编译器编译C 程序。Cx51 编译器包可以用在所有的8051 系列处理器上,可以在WINDOWS 32 位命令行中执行本手册。假定你熟悉WINDOWS 操作系统,知道如何编程8051 处理器并会用C 语言编程。注意本手册用条件窗口来指明32 位WINDOWS 版本是WINDOWS95, WINDOWS98 ,WINDOWS ME ,INDOWS NT,WINDOWS 2000 或WINDWOS XP。如果你对C 编程有问题,或者你想知道C 语言编程的更多信息。可参考16 页的关于C语言的书,手册中讨论的许多例子和描述是从WINDOWS 命令提示符下调用的。这对在一个集成环境如μVision2 中运行Cx51 的情况是不适用的本手册中的例子是通用的,以应用到所有编程环境。

    标签: cx 51 编译器 用户手册

    上传时间: 2013-10-19

    上传用户:zhanditian

  • 微机原理与接口课件

    微处理器及微型计算机的发展概况  第一代微处理器是以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