资源预览内容
第1页 / 共241页
第2页 / 共241页
第3页 / 共241页
第4页 / 共241页
第5页 / 共241页
第6页 / 共241页
第7页 / 共241页
第8页 / 共241页
第9页 / 共241页
第10页 / 共241页
亲,该文档总共241页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
钱晓捷,微机原理与接口技术钱晓捷,微机原理与接口技术第第4 4版版基于基于IA-32IA-32处理器和处理器和3232位汇编语言位汇编语言第第 8 8 章章常用接口技术常用接口技术8.1 8.1 定时控制接口定时控制接口8.2 8.2 并行接口并行接口8.3 8.3 异步串行通信接口异步串行通信接口8.4 8.4 模拟接口模拟接口微机原理与接口技术第4版机械工业出版社8.1 8.1 定时控制接口定时控制接口定时控制具有极为重要的作用定时控制具有极为重要的作用微微机机控控制制系系统统中中常常需需要要定定时时中中断断、定定时时检检测测、定时扫描等定时扫描等实实时时操操作作系系统统和和多多任任务务操操作作系系统统中中要要定定时时进进行行进程调度进程调度PCPC机机的的日日时时钟钟计计时时、DRAMDRAM刷刷新新定定时时和和扬扬声声器器音音调控制都采用了定时控制技术调控制都采用了定时控制技术可编程定时器芯片可编程定时器芯片软硬件相结合、方便灵活的定时电路软硬件相结合、方便灵活的定时电路软件延时方法软件延时方法处理器执行延时子程序处理器执行延时子程序微机原理与接口技术第4版机械工业出版社8.1.1 8253/82548.1.1 8253/8254定时器定时器定定时时器器(计计数数器器):由由数数字字电电路路中中的的计计数数电电路构成,路构成,记录输入脉冲的个数记录输入脉冲的个数脉脉冲冲信信号号具具有有一一定定随随机机性性,往往往往通通过过脉脉冲冲的的个个数可以获知外设的状态变化次数(计数)数可以获知外设的状态变化次数(计数)脉脉冲冲信信号号的的周周期期固固定定( (使使用用高高精精度度晶晶振振产产生生脉脉冲冲信号信号) ),个数乘以周期就是时间间隔(定时)个数乘以周期就是时间间隔(定时)Intel 8253/8254Intel 8253/8254可编程间隔定时器可编程间隔定时器3 3个独立的个独立的1616位计数器通道位计数器通道每个计数器有每个计数器有6 6种工作方式种工作方式微机原理与接口技术第4版机械工业出版社1. 1. 内部结构和引脚内部结构和引脚3 3个相互独立的计数器通道个相互独立的计数器通道, ,结构完全相同结构完全相同计数器计数器0 0计数器计数器1 1计数器计数器2 2每个计数器通道每个计数器通道1616位减法计数器位减法计数器1616位预置寄存器位预置寄存器输出锁存器输出锁存器预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器微机原理与接口技术第4版机械工业出版社定时器外设引脚定时器外设引脚CLKCLK时钟输入信号时钟输入信号在在计计数数过过程程中中,此此引引脚脚上上每每输输入入一一个个时时钟钟信信号号(下降沿),计数器的计数值减(下降沿),计数器的计数值减1 1GATEGATE门控输入信号门控输入信号控控制制计计数数器器工工作作,可可分分成成电电平平控控制制和和上上升升沿沿控控制两种类型制两种类型OUTOUT计数器输出信号计数器输出信号当当一一次次计计数数过过程程结结束束(计计数数值值减减为为0 0),OUTOUT引引脚上将产生一个输出信号脚上将产生一个输出信号微机原理与接口技术第4版机械工业出版社连接处理器引脚连接处理器引脚D0D0D7D7数据线数据线A0A0A1A1地址线地址线RD*RD*读信号读信号WR*WR*写信号写信号CS*CS*片选信号片选信号CS* ACS* A1 1 A A0 0I/OI/O地址地址读操作读操作RD*RD*写操作写操作WR*WR*0 0 00 0 00 0 10 0 10 1 00 1 00 1 10 1 140H40H41H41H42H42H43H43H读计数器读计数器0 0读计数器读计数器1 1读计数器读计数器2 2无操作无操作写计数器写计数器0 0写计数器写计数器1 1写计数器写计数器2 2写控制字写控制字微机原理与接口技术第4版机械工业出版社2. 2. 工作方式工作方式82538253有有6 6种工作方式,由方式控制字确定种工作方式,由方式控制字确定每种工作方式的过程类似:每种工作方式的过程类似: 设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1 1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1 1的计数过程的计数过程 计数过程结束计数过程结束微机原理与接口技术第4版机械工业出版社定时器方式定时器方式0 0:计数结束中断:计数结束中断GATEOUTCLK 031244方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束微机原理与接口技术第4版机械工业出版社定时器方式定时器方式1 1:可编程单稳脉冲:可编程单稳脉冲设设定定工工作作方方式式设设定定计计数数初初值值硬硬件件启启动动计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束GATEOUTCLK 031244方式方式1WR微机原理与接口技术第4版机械工业出版社定时器方式定时器方式2 2:频率发生器(分频器):频率发生器(分频器)03124GATEOUTCLK 4方式方式2031240312403124WR微机原理与接口技术第4版机械工业出版社定时器方式定时器方式3 3:方波发生器:方波发生器03124GATEOUTCLK 4方式方式3031240312403124WR微机原理与接口技术第4版机械工业出版社定时器方式定时器方式4 4:软件触发选通信号:软件触发选通信号GATEOUTCLK031244方式方式4223331 0WR微机原理与接口技术第4版机械工业出版社定时器方式定时器方式5 5:硬件触发选通信号:硬件触发选通信号GATEOUTCLK031244方式方式52233311 0WR微机原理与接口技术第4版机械工业出版社3. 3. 编程:写入方式控制字编程:写入方式控制字控制字写入控制字控制字写入控制字I/OI/O地址:地址:A1A0A1A01111计数器计数器读写格式读写格式工作方式工作方式数制数制D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法 (8253)11 读回命令读回命令 (8254)00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1*10 方式方式2*11 方式方式3100 方式方式4101 方式方式50 二进制二进制1 十进制十进制微机原理与接口技术第4版机械工业出版社方式控制字编程示例方式控制字编程示例; ; 82538253的的计计数数器器0 0、1 1、2 2端端口口和和控控制制端端口口地地址:址:40H40H43H43H; ;设置其中计数器设置其中计数器0 0为方式为方式0 0; ;采用二进制计数,先低后高写入计数值采用二进制计数,先低后高写入计数值mov al,mov al,30h30h; ;方式控制字:方式控制字:30H30H0000 11 11 000000 0B 0Boutout 43h43h,al,al; ;写入控制端口:写入控制端口:43H43H微机原理与接口技术第4版机械工业出版社3. 3. 编程:写入计数值编程:写入计数值选择二进制时选择二进制时计数值范围:计数值范围:0000H0000HFFFFHFFFFH0000H0000H是最大值,代表是最大值,代表6553665536选择十进制(选择十进制(BCDBCD码)码)计数值范围:计数值范围:000000009999999900000000代表最大值代表最大值1000010000计数值写入计数器各自的计数值写入计数器各自的I/OI/O地址地址按方式控制字规定的读写格式进行按方式控制字规定的读写格式进行微机原理与接口技术第4版机械工业出版社计数值编程示例计数值编程示例; ; 82538253的的计计数数器器0 0、1 1、2 2端端口口和和控控制制端端口口地地址:址:40H40H43H43H; ;设置计数器设置计数器0 0采用二进制计数采用二进制计数; ;写入计数初值:写入计数初值:10241024(400H400H)mov ax,1024mov ax,1024 ; ;计数初值:计数初值:10241024(400H400H); ;写入计数器写入计数器0 0地址:地址:40H40Hout out 40h40h,al,al; ;写入低字节计数初值写入低字节计数初值mov al,ahmov al,ahoutout 40h40h,al,al; ;写入高字节计数写入高字节计数初初值值微机原理与接口技术第4版机械工业出版社8.1.2 8.1.2 定时器的应用定时器的应用A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS微机原理与接口技术第4版机械工业出版社1. 1. 定时中断定时中断mov al,36hmov al,36h; ; 计数器计数器0 0为方式为方式3 3,二进制计数,二进制计数; ; 先低后高写入计数值先低后高写入计数值out 43h,alout 43h,al; ; 写入方式控制字写入方式控制字mov al,0mov al,0; ; 计数值为计数值为0 0out 40h,alout 40h,al; ; 写入低字节计数值写入低字节计数值out 40h,alout 40h,al; ; 写入高字节计数值写入高字节计数值计数器计数器0 0:方式方式3 3,计数值:计数值:6553665536,输出方波,输出方波频率:频率:1.19318MHz1.19318MHz655366553618.206Hz18.206Hz,不断产生,不断产生OUTOUT0端端接接8259A8259A的的IRQIRQ0,每每秒秒产产生生18.20618.206次次中中断断请请求,或说每隔求,或说每隔55ms55ms(54.925493ms54.925493ms)申请一次中断)申请一次中断DOSDOS系系统统利利用用计计数数器器0 0的的这这个个特特点点,通通过过0808号号中中断断服务程序实现了日时钟计时功能服务程序实现了日时钟计时功能微机原理与接口技术第4版机械工业出版社2. 2. 定时刷新定时刷新需要重复不断提出刷新请求需要重复不断提出刷新请求 门控总为高,选择方式门控总为高,选择方式2 2或或3 32ms2ms内刷新内刷新128128次,即次,即15.615.6 s s刷新一次刷新一次 计数初值为计数初值为1818mov al,54hmov al,54h; ;计数器计数器1 1为方式为方式2 2; ;采用二进制计数,只写低采用二进制计数,只写低8 8位计数值位计数值out 43h,alout 43h,al; ;写入方式控制字写入方式控制字mov al,18mov al,18; ;计数初值为计数初值为1818out 41h,alout 41h,al; ;写入计数值写入计数值微机原理与接口技术第4版机械工业出版社3. 3. 扬声器控制扬声器控制; ;发音频率设置子程序发音频率设置子程序; ;入口参数:入口参数:AXAX1.19318101.19318106 6发音频率发音频率speakerspeaker procprocpush axpush ax; ;暂存入口参数暂存入口参数mov al,0b6hmov al,0b6h ; ;定时器定时器2 2为方式为方式3 3,先低后高,先低后高out 43h,alout 43h,al; ;写入方式控制字写入方式控制字pop axpop ax; ;恢复入口参数恢复入口参数out 42h,alout 42h,al; ;写入低写入低8 8位计数值位计数值mov al,ahmov al,ahout 42h,alout 42h,al; ;写入高写入高8 8位计数值位计数值retretspeakerspeaker endpendp微机原理与接口技术第4版机械工业出版社扬声器发音控制扬声器发音控制speakonspeakon procproc; ;扬声器开扬声器开子程序子程序push axpush axin al,61hin al,61h; ;读取读取61H61H端口的原控制信息端口的原控制信息or al,03hor al,03h;D1D0;D1D0PB1PB0PB1PB01111,其他不变,其他不变out 61h,alout 61h,al ; ;直接控制发声直接控制发声pop axpop axretretspeakonspeakon endpendp; ;扬声器关扬声器关子程序子程序and al,0fchand al,0fch;D1D0;D1D0PB1PB0PB1PB00000,其他不变,其他不变微机原理与接口技术第4版机械工业出版社例例8-18-1控制扬声器程序控制扬声器程序; ;数据段数据段freqfreqdw 1193180/600dw 1193180/600; ;给一个给一个600Hz600Hz的频率的频率; ;代码段代码段mov ax,freqmov ax,freqcall speakercall speaker; ;设置扬声器的音调设置扬声器的音调call speakoncall speakon; ;打开扬声器声音打开扬声器声音call readccall readc; ;等待按键等待按键call speakoffcall speakoff; ;关闭扬声器声音关闭扬声器声音; ;子程序子程序输出:输出:明确向哪个明确向哪个端口端口输出什么输出什么数据数据输入:输入:清楚从哪个清楚从哪个端口端口输入什么输入什么数据数据微机原理与接口技术第4版机械工业出版社8.2 8.2 并行接口并行接口并并行行数数据据传传输输:以以计计算算机机字字长长,通通常常是是8 8、1616或或3232位位为为传传输输单单位位,利利用用8 8、1616或或3232个个数数据信号线一次传送一个字长的数据据信号线一次传送一个字长的数据适适合合于于外外部部设设备备与与微微机机之之间间进进行行近近距距离离、大大量量和和快快速速的的信信息息交交换换,如如微微机机与与并并行行接接口口打打印印机机、磁盘驱动器等磁盘驱动器等微微机机系系统统中中最最基基本本的的信信息息交交换换方方法法,例例如如系系统统板上各部件之间的数据交换板上各部件之间的数据交换并行数据传输需要并行接口的支持并行数据传输需要并行接口的支持 微机原理与接口技术第4版机械工业出版社8.2.1 8.2.1 并行接口电路并行接口电路82558255具有多种功能的可编程并行接口电路芯片具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器最基本的接口电路:三态缓冲器和锁存器与与CPU间间、与与外外设设间间的的接接口口电电路路:状状态态寄寄存存器器和控制寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路还有端口的译码和控制电路、中断控制电路分分3个端口,共个端口,共24个外设引脚个外设引脚共共3种输入输出工作方式种输入输出工作方式方式方式0 0:基本输入输出方式基本输入输出方式方式方式1 1:选通输入输出方式选通输入输出方式方式方式2 2:双向选通传送方式双向选通传送方式微机原理与接口技术第4版机械工业出版社1. 1. 内部结构和引脚内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET微机原理与接口技术第4版机械工业出版社82558255外设数据端口外设数据端口端口端口A A:PA0PA0PA7PA7A A组,支持工作方式组,支持工作方式0 0、1 1、2 2常作数据端口,功能最强大常作数据端口,功能最强大端口端口B B:PB0PB0PB7PB7B B组,支持工作方式组,支持工作方式0 0、1 1常作数据端口常作数据端口端口端口C C:PC0PC0PC7PC7仅支持工作方式仅支持工作方式0 0,分两个分两个4 4位,每位可独立操作位,每位可独立操作A A组控制高组控制高4 4位位PC4PC4PC7PC7,B B组控制低组控制低4 4位位PC0PC0PC3PC3可作数据、状态和控制端口可作数据、状态和控制端口控制最灵活,最难掌握控制最灵活,最难掌握微机原理与接口技术第4版机械工业出版社2. 2. 工作方式工作方式0 0:基本输入输出方式:基本输入输出方式方式方式0 0输入输入执行输入执行输入ININ指令,输入外设数据指令,输入外设数据datadata输入端口输入端口D0D7RD CS, A1, A0微机原理与接口技术第4版机械工业出版社2. 2. 工作方式工作方式0 0:基本输入输出方式:基本输入输出方式方式方式0 0输出输出执行输出执行输出OUTOUT指令,将数据送给外设指令,将数据送给外设WRdatadata输出端口输出端口D0D7 CS, A1, A0微机原理与接口技术第4版机械工业出版社3. 3. 工作方式工作方式1 1:选通输入输出方式:选通输入输出方式借助于选通借助于选通( (应答应答) )联络信号进行输入或输出联络信号进行输入或输出只有端口只有端口A A和端口和端口B B可以采用方式可以采用方式1 1作为输入或输出的数据端口作为输入或输出的数据端口利用端口利用端口C C的的3 3个引脚作为应答联络信号个引脚作为应答联络信号还提供有中断请求逻辑和中断允许触发器还提供有中断请求逻辑和中断允许触发器对输入和输出的数据都进行锁存对输入和输出的数据都进行锁存适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路微机原理与接口技术第4版机械工业出版社82558255工作方式工作方式1 1输入引脚输入引脚A A组引脚组引脚数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA微机原理与接口技术第4版机械工业出版社选通输入工作时序选通输入工作时序异步时序:没有时钟,由引脚控制信号定时异步时序:没有时钟,由引脚控制信号定时STB*STB*和和IBFIBF是外设和是外设和82558255间应答联络信号间应答联络信号dataINTRIBF 输入端口输入端口D0D7STBRDdata微机原理与接口技术第4版机械工业出版社B B组引脚组引脚数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示B口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器PC2PC1PC0PB0PB7INTEBIBFBINTRBSTBB微机原理与接口技术第4版机械工业出版社82558255工作方式工作方式1 1输出引脚输出引脚A A组引脚组引脚外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据中断允许触发器中断允许触发器PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA微机原理与接口技术第4版机械工业出版社选通输出工作时序选通输出工作时序异步时序:没有时钟,由引脚控制信号定时异步时序:没有时钟,由引脚控制信号定时OBF*OBF*和和ACK*ACK*是外设和是外设和82558255间应答联络信号间应答联络信号 INTR datadata输出端口输出端口D0D7WROBFACK 微机原理与接口技术第4版机械工业出版社B B组引脚组引脚外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据中断允许触发器中断允许触发器PC2PC1PC0PB0PB7INTEBOBFBINTRBACKB微机原理与接口技术第4版机械工业出版社B组方式组方式0 方式方式01 方式方式1端口端口B0 输出输出1 输入输入端口端口C下部下部0 输出输出1 输入输入4. 82554. 8255的编程:写入方式控制字的编程:写入方式控制字控制字写入控制字控制字写入控制字I/OI/O地址:地址:A1A0A1A011111 1D6 D5D6 D5D4D4D3D3D2D2D1D1D0D0D7D7A组方式组方式00 方式方式001 方式方式11* 方式方式2端口端口A0 输出输出1 输入输入端口端口C上部上部0 输出输出1 输入输入微机原理与接口技术第4版机械工业出版社写入方式控制字示例写入方式控制字示例要求:要求:A A端口:方式端口:方式1 1输入输入C C端口上半部:输出,端口上半部:输出,C C口下半部:输入口下半部:输入B B端口:方式端口:方式0 0输出输出方式控制字:方式控制字:10110001B10110001B或或B1HB1H初始化的程序段:初始化的程序段:mov dx,0fffehmov dx,0fffeh; ;假设控制端口为假设控制端口为FFFEHFFFEHmov al,0b1hmov al,0b1h; ;方式控制字方式控制字out dx,alout dx,al; ;送到控制端口送到控制端口微机原理与接口技术第4版机械工业出版社4. 82554. 8255的编程:读写数据端口的编程:读写数据端口利利用用数数据据端端口口I/OI/O地地址址:A1A0A1A000(A)00(A) 01(B) 01(B) 10(C)10(C)作输入接口,执行输入作输入接口,执行输入ININ指令获取外设数据指令获取外设数据作输出接口,执行输出作输出接口,执行输出OUTOUT指令将数据送出指令将数据送出82558255具有锁存输出数据的能力具有锁存输出数据的能力对输出方式的端口同样可以输入对输出方式的端口同样可以输入不是读取外设数据,而是上次给外设的数据不是读取外设数据,而是上次给外设的数据可实现按位输出控制可实现按位输出控制 对输出端口对输出端口B B的的PB7PB7位置位的程序段位置位的程序段mov dx,0fffahmov dx,0fffah;B;B端口假设为端口假设为FFFAHFFFAHin al,dxin al,dx; ;读出读出B B端口原输出内容端口原输出内容or al,80hor al,80h; ;使使PB7PB7D7D71 1out dx,alout dx,al; ;输出新的内容输出新的内容微机原理与接口技术第4版机械工业出版社端口端口C C的特点的特点C C端口被分成端口被分成两个两个4 4位端口位端口只能以方式只能以方式0 0工作,可分别选择输入或输出工作,可分别选择输入或输出上半部和上半部和A A端口编为端口编为A A组组下半部和下半部和B B端口编为端口编为B B组组A和和B端口在方式端口在方式1或方式或方式2时时C端口的部分或全部引脚将端口的部分或全部引脚将被征用被征用其余引脚工作在方式其余引脚工作在方式0 0微机原理与接口技术第4版机械工业出版社端口端口C C的输出的输出通过端口通过端口C的的I/O地址地址向向C端口直接端口直接写入字节数据写入字节数据写进写进C端口的输出锁存器,并从输出引脚输出端口的输出锁存器,并从输出引脚输出对设置为输入的引脚无效对设置为输入的引脚无效通过控制端口的通过控制端口的I/O地址地址向向C端口端口写入位控字写入位控字使使C端口的某个引脚输出端口的某个引脚输出1或或0或置位复位内部的中断允许触发器或置位复位内部的中断允许触发器示意图示意图微机原理与接口技术第4版机械工业出版社端口端口C C的输入的输入未被未被A和和B端口征用的引脚端口征用的引脚定义为输入的端口读到引脚输入的信息定义为输入的端口读到引脚输入的信息定义为输出的端口读到输出锁存器的信息定义为输出的端口读到输出锁存器的信息被被A和和B端口征用作为联络线的引脚端口征用作为联络线的引脚读到反映读到反映8255状态的状态的状态字状态字示意图示意图微机原理与接口技术第4版机械工业出版社8.2.2 8.2.2 并行接口的应用并行接口的应用端口端口A A,B B,C C和控制字地址和控制字地址60H60H,61H61H,62H62H和和63H63H工作在基本输入工作在基本输入/ /输出方式输出方式0 0端口端口A A为方式为方式0 0输入,用来读取键盘扫描码输入,用来读取键盘扫描码端口端口B B工作于方式工作于方式0 0输出,例如输出,例如控制扬声器控制扬声器等等端口端口C C为方式为方式0 0输入,读取系统状态和配置输入,读取系统状态和配置系统的初始化编程:系统的初始化编程:mov al,10011001bmov al,10011001b; ;方式控制字方式控制字99H99Hout 63h,alout 63h,al微机原理与接口技术第4版机械工业出版社1. 1. 用用82558255方式方式0 0与打印机接口与打印机接口端口端口A A为方式为方式0 0输出打印数据输出打印数据PC7PC7引脚产生负脉冲选通信号引脚产生负脉冲选通信号PC2PC2引脚连接忙信号查询其状态引脚连接忙信号查询其状态微处理器利用查询方式输出数据微处理器利用查询方式输出数据BUSY DATA078255APC7PC2PA0PA7打印机打印机STROBE微机原理与接口技术第4版机械工业出版社打印机接口时序打印机接口时序典型的异步时序典型的异步时序DATA0DATA0DATA7DATA7(8 8位并行数据)信号位并行数据)信号主机输出打印数据和命令主机输出打印数据和命令STROBE*STROBE*(选通)信号(选通)信号输出低有效,才能使打印机接收数据输出低有效,才能使打印机接收数据ACK*ACK*(响应)信号(响应)信号打印机接收数据结束回送负脉冲响应信号打印机接收数据结束回送负脉冲响应信号BUSYBUSY(忙状态)信号(忙状态)信号打印机忙于处理接收的数据,不接收新的数据打印机忙于处理接收的数据,不接收新的数据示意图示意图微机原理与接口技术第4版机械工业出版社方式方式0 0初始化程序段初始化程序段mov dx,mov dx,0fffeh0fffeh; ;控制端口地址为控制端口地址为FFFEHFFFEHmov al,mov al,10000001b10000001b; ;方式控制字方式控制字outout dx,aldx,al;A;A端口方式端口方式0 0输出,端口输出,端口B B任意任意;C;C端口上半部输出、下半部输入端口上半部输出、下半部输入mov al,mov al,00001111b00001111b; ;端口端口C C复位置位控制字复位置位控制字outout dx,aldx,al; ;使使PC7PC71 1,即置,即置STORE*STORE*1 1 微机原理与接口技术第4版机械工业出版社打印数据子程序打印数据子程序1 1printcprintcprocproc;AH;AH打印数据打印数据push axpush axpush dxpush dxprn: prn: mov dx,mov dx,0fffch0fffch ; ;读取端口读取端口C Cinin al,dxal,dx; ;查询打印机的状态查询打印机的状态and al,04hand al,04h; ;忙否(忙否(PC2PC2BUSYBUSY0 0)?)?jnz prnjnz prn;PC2;PC21 1,打印机忙,等待,打印机忙,等待mov dx,mov dx,0fff8h0fff8h;PC2;PC20 0,打印机不忙,输出,打印机不忙,输出mov al,ahmov al,ahoutout dx,aldx,al; ;将打印数据从端口将打印数据从端口A A输出输出微机原理与接口技术第4版机械工业出版社打印数据子程序打印数据子程序2 2mov dx,mov dx,0fffeh0fffeh ; ;从从PC7PC7送出控制低脉冲送出控制低脉冲mov al,mov al,0000111000001110b b; ;使使PC7PC7STROBE*STROBE*0 0outout dx,aldx,alnopnop; ;产生一定宽度的低电平产生一定宽度的低电平nopnopmov al,mov al,0000111100001111b b; ;使使PC7PC7STROBE*STROBE*1 1outout dx,al dx,al; ;产生低脉冲产生低脉冲STROBE*STROBE*信号信号pop dxpop dxpop axpop axretretprintcprintcendpendp微机原理与接口技术第4版机械工业出版社2. 2. 用用82558255方式方式1 1与打印机接口与打印机接口端口端口A A选通输出连接打印机选通输出连接打印机PC7PC7OBF*OBF*输出,输出,PC6PC6ACK*ACK*输入,输入,PC3PC3INTRINTR输出输出通过通过PC6PC6控制控制INTEAINTEA1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机ACKACKOBFSTROBE微机原理与接口技术第4版机械工业出版社方式方式1 1时序配合时序配合82558255的的OBF*OBF*引脚对应打印机引脚对应打印机STROBE*STROBE*引脚引脚略有差别,不能直接连接略有差别,不能直接连接PA0PA7(DATA07)ACKOBFSTROBE微机原理与接口技术第4版机械工业出版社方式方式1 1初始化程序段初始化程序段mov dx,mov dx,0fffeh0fffeh; ;设定端口设定端口A A为选通输出方式为选通输出方式mov al,mov al,0a0h0a0houtout dx,aldx,almov al,mov al,0ch0ch; ;使使INTEAINTEA(PC6PC6)为)为0 0,禁止中断,禁止中断outout dx,aldx,almov cx,countermov cx,counter; ;打印字节数送打印字节数送CXCXmov bx,offset buffermov bx,offset buffer; ;取字符串首地址送取字符串首地址送BXBXcall printscall prints; ;调用打印子程序调用打印子程序微机原理与接口技术第4版机械工业出版社打印字符串子程序打印字符串子程序1 1; ;入口参数:入口参数:DS:BXDS:BX字符串首地址字符串首地址;CX;CX字符个数字符个数printsprintsprocprocpush axpush ax; ;保护寄存器保护寄存器push dxpush dxprint1:print1: mov al,bxmov al,bx; ;取一个数据取一个数据mov dx,mov dx,0fff8h0fff8houtout dx,aldx,al; ;从端口从端口A A输出输出微机原理与接口技术第4版机械工业出版社打印字符串子程序打印字符串子程序2 2mov dx,mov dx,0fffch0fffchprint2:print2: in in al,dxal,dx; ;读取端口读取端口C Ctest al,80htest al,80h; ;检测检测OBF*OBF*(PC7PC7)为)为1 1否否? ?jz print2jz print2; ;为为0 0,说明打印机没有响应,继续检测,说明打印机没有响应,继续检测inc bxinc bx; ;为为1 1,说明打印机已接受数据,说明打印机已接受数据loop print1loop print1; ;准备取下一个数据输出准备取下一个数据输出pop dxpop dx; ;打印结束,恢复寄存器打印结束,恢复寄存器pop axpop axretret; ;返回返回printsprintsendpendp微机原理与接口技术第4版机械工业出版社8.2.3 8.2.3 键盘及其接口键盘及其接口键盘是微机系统最常使用的输入设备键盘是微机系统最常使用的输入设备小小键键盘盘:适适用用于于单单板板机机或或以以处处理理器器为为基基础础的的仪器,实现数据、地址、命令及指令等输入仪器,实现数据、地址、命令及指令等输入独立键盘独立键盘:通过:通过5 5芯电缆与芯电缆与PCPC微机主机连接微机主机连接微机原理与接口技术第4版机械工业出版社1. 1. 简易键盘简易键盘线性结构键盘线性结构键盘+5V+5V+5V+5V+5V控制线控制线检检测测线线矩阵结构键盘矩阵结构键盘微机原理与接口技术第4版机械工业出版社识别按键的扫描方法识别按键的扫描方法先先使使第第0 0行行接接低低电电平平,其其余余行行为为高高电电平平,然然后后看看第第0 0行行是是否否有有键键闭闭合合(通通过过检检查查列列线线电电位实现)位实现)再再将将第第1 1行行接接地地,检检测测列列线线是是否否有有变变为为低低电电位的线位的线如此往下一行一行地扫描,直到最后一行如此往下一行一行地扫描,直到最后一行扫扫描描过过程程中中,发发现现某某一一行行有有键键闭闭合合时时(列列线线输入中有一位为输入中有一位为0 0),便在扫描中途退出),便在扫描中途退出通过组合行线和列线识别此刻按下哪一键通过组合行线和列线识别此刻按下哪一键 微机原理与接口技术第4版机械工业出版社键盘扫描程序第键盘扫描程序第1 1段:判断是否有键按下段:判断是否有键按下key1:key1: mov al,mov al,0000mov dx,mov dx,rowportrowport; rowport; rowport行线端口地址行线端口地址outout dx,aldx,al; ; 使所有行线为低电平使所有行线为低电平 mov dx,mov dx,colportcolport; colport; colport列线端口地址列线端口地址 in al,dxin al,dx; ; 读取列值读取列值cmp al,cmp al,0ffh0ffh; ; 判定列线是否为低电平判定列线是否为低电平jz key1jz key1; ; 没有,无闭合键没有,无闭合键; ; 则循环等待(或转向其他程序片断)则循环等待(或转向其他程序片断)call delaycall delay; ; 有,有,延迟延迟20ms20ms消除抖动消除抖动微机原理与接口技术第4版机械工业出版社键盘扫描程序第键盘扫描程序第2 2段:识别按键段:识别按键mov cx,8mov cx,8; ; 行数送行数送CXCXmov ah,0fehmov ah,0feh; ; 扫描初值送扫描初值送AHAHkey2:key2: mov al,ahmov al,ahmov dx,rowportmov dx,rowportout dx,alout dx,al; ; 输出行值(扫描值)输出行值(扫描值)mov dx,colportmov dx,colportin al,dxin al,dx; ; 读进列值读进列值cmp al,0ffhcmp al,0ffh; ; 判断有无低电平的列线判断有无低电平的列线jnz key3jnz key3; ; 有,则转下一步处理有,则转下一步处理rol ah,1rol ah,1; ; 无,则移位扫描值无,则移位扫描值loop key2loop key2; ; 准备下一行扫描准备下一行扫描jmp key1jmp key1; ; 所有行都没有按键所有行都没有按键key3:key3: ; ; ALAL列值,列值,AHAH行值行值微机原理与接口技术第4版机械工业出版社键盘扫描程序第键盘扫描程序第3 3段:查找键代码段:查找键代码1 1key3:key3: mov si,offset tablemov si,offset table ; SI; SI指向键行列值表指向键行列值表mov di,offset charmov di,offset char; DI; DI指向键代码表指向键代码表mov cx,64mov cx,64; CX; CX键的个数键的个数key4:key4: cmp ax,sicmp ax,si ; ; 与按键的行列值比较与按键的行列值比较 jz jz key5key5; ; 相同,说明查到相同,说明查到inc siinc si; ; 不相同,继续比较不相同,继续比较inc siinc siinc diinc diloop key4loop key4jmp key1jmp key1; ; 全部不相同全部不相同; ; 返回继续检测(或转向其他程序片断)返回继续检测(或转向其他程序片断)微机原理与接口技术第4版机械工业出版社键盘扫描程序第键盘扫描程序第3 3段:查找键代码段:查找键代码2 2key5:key5: mov al,dimov al,di ; ; 获取键代码送获取键代码送ALAL; ; 判断按键释放,没有则等待判断按键释放,没有则等待call delaycall delay; ; 按键释放,延时消除抖动按键释放,延时消除抖动; ; 后续处理后续处理; ; 键盘的行列值表:低字节是列值、高字节是行值键盘的行列值表:低字节是列值、高字节是行值tabletable word word 0fefeh0fefeh ; ; 键键0 0的行列值的行列值word word 0fefdh0fefdh ; ; 键键1 1的行列值的行列值; ; 其他键的行列值其他键的行列值; ; 键盘的键代码表键盘的键代码表charcharbytebyte ; ; 键键0 0的代码值的代码值byte byte ; ; 键键1 1的代码值的代码值; ; 其他键的代码值其他键的代码值微机原理与接口技术第4版机械工业出版社2. PC2. PC机键盘机键盘与主机箱分开的一个独立装置与主机箱分开的一个独立装置通过一根五芯电缆与主机相连通过一根五芯电缆与主机相连PCPC及及PC/XTPC/XT机采用机采用8383(或(或8484)键的标准键盘)键的标准键盘微机原理与接口技术第4版机械工业出版社PCPC机键盘的工作过程机键盘的工作过程键盘电路正常工作时不断地扫描键盘矩阵键盘电路正常工作时不断地扫描键盘矩阵有有按按键键,则则确确定定按按键键位位置置之之后后以以串串行行数数据据形形式发送给系统板键盘接口电路式发送给系统板键盘接口电路键按下时,发送该键的键按下时,发送该键的接通扫描码接通扫描码键松开时,发送该键的键松开时,发送该键的断开扫描码断开扫描码若若一一直直按按住住某某键键,则则以以拍拍发发速速率率(每每秒秒230 0次)连续发送该键的接通扫描码次)连续发送该键的接通扫描码接通扫描码键盘上的位置接通扫描码键盘上的位置断开扫描码接通扫描码断开扫描码接通扫描码80H微机原理与接口技术第4版机械工业出版社键盘接口电路键盘接口电路的工作过程的工作过程接收一个串行形式字符,进行串并转换接收一个串行形式字符,进行串并转换产生键盘中断产生键盘中断IRQIRQ1 1请求,等待读取键盘数据请求,等待读取键盘数据CPUCPU响应中断,进入响应中断,进入09H09H键盘中断服务程序键盘中断服务程序: 读取键盘扫描码:用读取键盘扫描码:用IN AL,60HIN AL,60H即可即可 响应键盘:系统使响应键盘:系统使PBPB7 71 1 允许键盘工作:系统使允许键盘工作:系统使PBPB7 70 0 处理键盘数据处理键盘数据 给给8259A8259A中断结束中断结束EOIEOI命令,中断返回命令,中断返回微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序1 109H09H号中断服务程序(号中断服务程序(kbintkbint过程)过程)完成常规的操作完成常规的操作处理键盘数据处理键盘数据将扫描码通过查表转换为对应将扫描码通过查表转换为对应ASCIIASCII码送缓冲区码送缓冲区不能显示的按键,转换为不能显示的按键,转换为0 0,且不再送至缓冲区,且不再送至缓冲区键盘键盘I/OI/O功能程序(功能程序(kbgetkbget子程序)子程序)从缓冲区中读取转换后的从缓冲区中读取转换后的ASCIIASCII码码功能调用(主程序)功能调用(主程序)循环显示键入的字符循环显示键入的字符微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序2 2键盘缓冲区键盘缓冲区中断服务程序与子程序之间传递参数中断服务程序与子程序之间传递参数先进先出循环队列先进先出循环队列bufferbufptr1bufptr29 92 21 10 0队列末端队列末端队列始端队列始端队列空队列空进队列进队列出队列出队列队列满队列满微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序3 3; ; 数据段数据段bufferbufferbyte 10 dup(0)byte 10 dup(0); ; 键盘缓冲区键盘缓冲区bufptr1bufptr1 word 0word 0; ; 队列头指针队列头指针bufptr2bufptr2 word 0word 0; ; 队列尾指针队列尾指针; ; 按扫描码顺序给出字符的按扫描码顺序给出字符的ASCIIASCII码码; ; 不能显示的按键为不能显示的按键为0 0; ; 第一个第一个0 0不对应按键,仅用于查表指令不对应按键,仅用于查表指令scantbscantbbytebyte 0,1,1234567890-=,08h0,1,1234567890-=,08h; ; 键盘第键盘第1 1排的按键,从排的按键,从ESCESC到退格到退格bytebyte 0,0,789-456+1230.0,0,789-456+1230.; ; 右边小键盘,从右边小键盘,从Num LockNum Lock到到DelDel微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序4 4; ; 代码段代码段mov ax,3509hmov ax,3509h; ; 获取保存原中断向量表项获取保存原中断向量表项int 21hint 21hpush espush espush bxpush bxclicli; ; 关中断关中断push dspush ds; ; 设置设置09H09H号新中断向量表项号新中断向量表项mov ax,seg kbintmov ax,seg kbintmov ds,axmov ds,axmov dx,offset kbintmov dx,offset kbintmov ax,2509hmov ax,2509hint 21hint 21hpop dspop ds微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序5 5in al,21hin al,21h; ; 允许允许IRQ1IRQ1中断中断push axpush axand al,0fdhand al,0fdhout 21h,alout 21h,alstisti; ; 开中断开中断start1:start1: call kbgetcall kbget; ; 调用调用KBGETKBGET获取按键的获取按键的ASCIIASCII码码cmp al,1cmp al,1jz start2jz start2; ; 是是ESCESC键,则退出键,则退出push axpush ax; ; 保护字符保护字符call dispccall dispc; ; 显示字符显示字符pop axpop ax; ; 恢复字符恢复字符微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序6 6cmp al,0dhcmp al,0dh; ; 该字符是回车符吗?该字符是回车符吗?jnz start1jnz start1; ; 不是,取下个按键字符不是,取下个按键字符mov al,0ahmov al,0ah; ; 是回车符,再进行换行是回车符,再进行换行call dispccall dispcjmp start1jmp start1; ; 继续取字符继续取字符start2:start2: clicli; ; 恢复中断原状态恢复中断原状态pop axpop axout 21h,alout 21h,alpop dxpop dxpop dspop dsmov ax,2509hmov ax,2509hint 21hint 21hstisti微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序7 7; KBGET; KBGET子程序从缓冲区取字符送子程序从缓冲区取字符送ALALkbgetkbgetprocprocpush bxpush bx; ; 保护保护BXBXkbget1:kbget1: clicli; ; 关中断关中断mov bx,bufptr1mov bx,bufptr1; ; 取缓冲区队列头指针取缓冲区队列头指针cmp bx,bufptr2cmp bx,bufptr2; ; 与尾指针相等否?与尾指针相等否?jnz kbget2jnz kbget2; ; 不相等,有字符不相等,有字符stisti; ; 相等,缓冲区空相等,缓冲区空jmp kbget1jmp kbget1; ; 等待缓冲区有字符等待缓冲区有字符微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序8 8kbget2:kbget2: mov al,bufferbxmov al,bufferbx; ; 从队列头取字符送从队列头取字符送ALALinc bxinc bx; ; 队列头指针增量队列头指针增量cmp bx,10cmp bx,10; ; 指针指向队列末端?指针指向队列末端?jc kbget3jc kbget3; ; 没有,转移没有,转移mov bx,0mov bx,0; ; 循环指向始端循环指向始端kbget3:kbget3: mov bufptr1,bxmov bufptr1,bx; ; 设定新队列头指针设定新队列头指针stisti; ; 开中断开中断pop bxpop bx; ; 恢复恢复BXBXretret; ; 子程序返回子程序返回kbgetkbgetendpendp微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序9 9; KBINT; KBINT中断服务程序处理中断服务程序处理09H09H号键盘中断号键盘中断kbintkbintprocprocstisti; ; 开中断开中断push axpush ax; ; 保护寄存器保护寄存器push bxpush bxin al,60hin al,60h; ; 读取键盘扫描码读取键盘扫描码mov bl,almov bl,al; ; 扫描码保存在扫描码保存在BLBLin al,61hin al,61h; ; 使使PB7PB71 1,响应键盘,响应键盘or al,80hor al,80hout 61h,alout 61h,aland al,7fhand al,7fh; ; 使使PB7PB70 0,允许键盘,允许键盘out 61h,alout 61h,al微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序1010test bl,80htest bl,80h; ; 键盘数据处理键盘数据处理jnz kbint2jnz kbint2; ; 是断开扫描码,退出是断开扫描码,退出xor bh,bhxor bh,bhmov al,scantbbxmov al,scantbbx ; ; 是接通扫描码,转换是接通扫描码,转换cmp al,0cmp al,0; ; 合法的合法的ASCIIASCII码?码?jz kbint2jz kbint2; ; 不是,退出不是,退出mov bx,bufptr2mov bx,bufptr2; ; 是,取队列尾指针是,取队列尾指针mov bufferbx,almov bufferbx,al ; ; 存入缓冲区队列尾存入缓冲区队列尾inc bxinc bx; ; 队列尾指针增量队列尾指针增量cmp bx,10cmp bx,10; ; 指针指向队列末端?指针指向队列末端?jc kbint1jc kbint1; ; 没有,转移没有,转移mov bx,0mov bx,0; ; 循环指向始端循环指向始端微机原理与接口技术第4版机械工业出版社例例8-28-2键盘中断服务程序键盘中断服务程序1111kbint1:kbint1: cmp bx,bufptr1cmp bx,bufptr1; ; 缓冲区是否已满?缓冲区是否已满?jz kbint2jz kbint2 ; ; 队列满,退出队列满,退出mov bufptr2,bxmov bufptr2,bx; ; 队列不满,设置新的队列尾指针队列不满,设置新的队列尾指针kbint2:kbint2: mov al,20hmov al,20h; ; 普通中断结束命令普通中断结束命令out 20h,alout 20h,alpop bxpop bx; ; 恢复寄存器恢复寄存器pop axpop axiretiret; ; 中断返回中断返回kbintkbintendpendp示意图示意图微机原理与接口技术第4版机械工业出版社8.2.4 8.2.4 数码管及其接口数码管及其接口发光二极管发光二极管LED是是最简单的显示设备最简单的显示设备由由7段段LED就可以组成的就可以组成的LED数码管数码管LED数数码码管管广广泛泛用用于于单单板板微微型型机机、微微型型机机控控制系统及数字化仪器中制系统及数字化仪器中LED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等hgfedcba微机原理与接口技术第4版机械工业出版社1. LED1. LED数码管的工作原理数码管的工作原理主要部分是主要部分是7 7段发光管段发光管顺时针分别称为顺时针分别称为a a、b b、c c、d d、e e、f f、g g有的产品还附带有一个小数点有的产品还附带有一个小数点h h通过通过7 7个发光段的不同组合个发光段的不同组合主要显示主要显示0 09 9也可显示也可显示A AF F(1616进制数)进制数)还可显示个别特殊字符:、还可显示个别特殊字符:、P P共阳极结构共阳极结构共用阳极接高电平共用阳极接高电平共阴极结构共阴极结构共用阴极接低电平共用阴极接低电平hgfedcba示意图示意图微机原理与接口技术第4版机械工业出版社2. 2. 单个数码管的显示单个数码管的显示LEDLED数码管显示一位十六进制数(数码管显示一位十六进制数(4 4位二进制数)位二进制数)硬件方法:专用的带驱动器的硬件方法:专用的带驱动器的LEDLED段译码器段译码器软件方法:组成显示代码表,通过查表进行译码软件方法:组成显示代码表,通过查表进行译码 ledtbledtbbytebyte 3fh,06h,5bh,3fh,06h,5bh,; ;显示代码表显示代码表; ; 实现实现1 1个个LEDLED数码管显示数码管显示mov bx,1mov bx,1; BX; BX要显示的数字要显示的数字mov al,ledtbbxmov al,ledtbbx; ; 换码为显示代码:换码为显示代码:ALLEBTBBXALLEBTBBXmov dx,portmov dx,port; port; port数码管端口地址数码管端口地址out dx,alout dx,al; ; 输出显示输出显示示意图示意图微机原理与接口技术第4版机械工业出版社3. 3. 多个数码管的显示多个数码管的显示硬件上用公用的驱动电路来驱动各数码管硬件上用公用的驱动电路来驱动各数码管软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示8 8个数码管:用个数码管:用2 2个个8 8位输出端口控制位输出端口控制位控制端口:位控制端口:控制哪个(控制哪个(位位)数码管显示)数码管显示段段控控制制端端口口:控控制制哪哪个个段段显显示示,决决定定具具体体显显示示什么数码什么数码稳定数字显示:依次显示,不断重复稳定数字显示:依次显示,不断重复重复频率越高,数字显示越稳定重复频率越高,数字显示越稳定延时显示时间越长,显示亮度就越高延时显示时间越长,显示亮度就越高各种显示效果:控制重复频率和延时时间各种显示效果:控制重复频率和延时时间微机原理与接口技术第4版机械工业出版社位控制端口位控制端口位控制:位控制:Di0,相应位发光,相应位发光D7D6D5D4D3D2D1D0位位7位位6位位5位位4位位3位位2位位1位位0D7D6D5D4D3D2D1D0阳极阳极位位0位位1位位2D0D7位控制位控制反反相相寄寄存存驱驱动动bitport, IOW微机原理与接口技术第4版机械工业出版社段控制端口段控制端口段控制:段控制:Di0,相应段发光,相应段发光D7D6D5D4D3D2D1D0hgfedcbaD0D1D2D3D4D5D6D7阳极阳极位位0a b c d e f g h位位1位位2D0D7段控制段控制正正相相寄寄存存驱驱动动segport, IOW微机原理与接口技术第4版机械工业出版社依次显示依次显示8 8位数码管程序位数码管程序1 1; ; 数据段数据段leddtleddtbyte 8 dup(0)byte 8 dup(0); ; 数码缓冲区数码缓冲区; ; 主程序主程序mov si,offset leddtmov si,offset leddt ; ; 指向数码缓冲区指向数码缓冲区call displedcall displed; ; 调用显示子程序调用显示子程序; ; 子程序:显示一次数码缓冲区的子程序:显示一次数码缓冲区的8 8个数码个数码; ; 入口参数:入口参数:DS:SIDS:SI缓冲区首地址缓冲区首地址displeddispled procprocpush axpush axpush bxpush bxpush dxpush dx微机原理与接口技术第4版机械工业出版社依次显示依次显示8 8位数码管程序位数码管程序2 2xor bx,bx xor bx,bx mov ah,0fehmov ah,0feh; ; 指向最左边数码管指向最左边数码管led1: led1: mov bl,simov bl,si; ; 取出要显示的数字取出要显示的数字inc siinc simov al,ledtbbxmov al,ledtbbx; ; 得到显示代码:得到显示代码:ALLEDTBBXALLEDTBBXmov dx,segportmov dx,segport; segport; segport为段控制端口为段控制端口out dx,alout dx,al; ; 送出段码送出段码mov al,ahmov al,ah; ; 取出位显示代码取出位显示代码 mov dx,bitportmov dx,bitport; bitport; bitport为位控制端口为位控制端口out dx,alout dx,al; ; 送出位码送出位码微机原理与接口技术第4版机械工业出版社依次显示依次显示8 8位数码管程序位数码管程序3 3call delaycall delay; ; 实现数码管延时显示实现数码管延时显示rol ah,1rol ah,1; ; 指向下一个数码管指向下一个数码管 cmp ah,0fehcmp ah,0feh; ; 是否指向最右边数码管是否指向最右边数码管 jnz led1jnz led1; ; 没有,显示下一个数字没有,显示下一个数字pop dxpop dxpop bxpop bxpop axpop axretret; 8; 8位数码管都显示一遍位数码管都显示一遍; ; 显示代码表,按照显示代码表,按照0 09 9、A AF F的顺序的顺序ledtbledtbbyte 0c0h,0f9h,0a4h,86h,8ehbyte 0c0h,0f9h,0a4h,86h,8ehdispleddispled endpendp微机原理与接口技术第4版机械工业出版社依次显示依次显示8 8位数码管程序位数码管程序4 4timertimer= 10= 10; ; 延时常量延时常量delaydelayprocproc; ; 软件延时子程序软件延时子程序push bxpush bxpush cxpush cxmov bx,mov bx,timertimer ; ; 外循环外循环:timertimer次数次数delay1:delay1:xor cx,cxxor cx,cxdelay2:delay2:loop delay2loop delay2; ; 内循环内循环:2 21616次循环次循环dec bxdec bxjnz delay1jnz delay1pop cxpop cxpop bxpop bxretretdelaydelayendpendp微机原理与接口技术第4版机械工业出版社8.3 8.3 异步串行通信接口异步串行通信接口串串行行通通信信:将将数数据据分分解解成成二二进进制制位位用用一一条条信信号号线线,一位一位顺序传送的方式一位一位顺序传送的方式串串行行通通信信的的优优势势:用用于于通通信信的的线线路路少少,因因而而在在远远距离通信时可以极大地降低成本距离通信时可以极大地降低成本串串行行通通信信适适合合于于远远距距离离数数据据传传送送,也也常常用用于于速速度度要求不高的近距离数据传送要求不高的近距离数据传送通通信信协协议议(通通信信规规程程):收收发发双双方方共共同同遵遵守守,解解决决传传送送速速率率、信信息息格格式式、位位同同步步、字字符符同同步步、数数据校验等问题据校验等问题串行异步通信串行异步通信:以字符为单位进行传输:以字符为单位进行传输串行同步通信串行同步通信:以一个数据块(帧)为传输单位:以一个数据块(帧)为传输单位微机原理与接口技术第4版机械工业出版社8.3.1 8.3.1 异步串行通信格式异步串行通信格式起起始始位位每每个个字字符符开开始始传传送送的的标标志志,起始位采用逻辑起始位采用逻辑0电平电平数数据据位位数数据据位位紧紧跟跟着着起起始始位位传传送送。由由58个二进制位组成,低位先传送个二进制位组成,低位先传送校校验验位位用用于于校校验验是是否否传传送送正正确确;可可选择奇检验、偶校验或不传送校验位选择奇检验、偶校验或不传送校验位停停止止位位表表示示该该字字符符传传送送结结束束。停停止止位采用逻辑位采用逻辑1电平,可选择电平,可选择1、1.5或或2位位起始位起始位校验位校验位停止位停止位空闲位空闲位数据位数据位低位低位高位高位字符字符0/10/1 0/10/10/10/10/10/11 10 01 11 11 1空空闲闲位位传传送送字字符符之之间间的的逻逻辑辑1电电平平,表示没有进行传送表示没有进行传送微机原理与接口技术第4版机械工业出版社数据传输速率数据传输速率数据传输速率数据传输速率比特率比特率(Bit Rate)每秒传输的每秒传输的二进制位数二进制位数bps字字符符中中每每个个二二进进制制位位持持续续的的时时间间长长度度都都一一样样,为数据传输速率的倒数为数据传输速率的倒数进行二进制数码传输,每位时间长度相等:进行二进制数码传输,每位时间长度相等:比特率比特率波特率波特率(Baud Rate)过去,限制在过去,限制在50 bps到到9600 bps之间之间现在,可以达到现在,可以达到115200 bps或更高或更高微机原理与接口技术第4版机械工业出版社8.3.2 8.3.2 异步串行接口标准异步串行接口标准美国电子工业协会美国电子工业协会EIAEIA制定制定19621962年公布,年公布,19691969年修订年修订19871987年年1 1月正式改名为月正式改名为EIA-232DEIA-232D数据终端设备数据终端设备DTEDTE与数据通信设备与数据通信设备DCEDCE标准接口标准接口调制解调器调制解调器ModemModem通信线路信号与数字信号相互转换的设备通信线路信号与数字信号相互转换的设备传输制式传输制式全双工全双工:双根传输线,能够同时发送和接收:双根传输线,能够同时发送和接收半双工半双工:单根传输线,不能同时发送和接收:单根传输线,不能同时发送和接收单工单工:单根传输线只用作发送或只用作接收:单根传输线只用作发送或只用作接收微机原理与接口技术第4版机械工业出版社1. 232C1. 232C的引脚定义的引脚定义TxDTxD:发送数据发送数据RxDRxD:接收数据接收数据RTSRTS:请求发送:请求发送CTSCTS:清除发送(允许发送):清除发送(允许发送)DTRDTR:数据终端准备好数据终端准备好DSRDSR:数据装置准备好数据装置准备好GNDGND:信号地信号地 CDCD:载波检测(载波检测(DCD) RI RI:振铃指示振铃指示保护地保护地(机壳地)(机壳地)TxCTxC:发送器时钟:发送器时钟RxCRxC:接收器时钟:接收器时钟微机原理与接口技术第4版机械工业出版社2. 232C2. 232C的连接的连接连接调制解调器连接调制解调器:通过电话线路远距离通信:通过电话线路远距离通信直接直接(零调制解调器零调制解调器)连接连接:进行短距离通信:进行短距离通信不使用联络信号的不使用联络信号的3线相连线相连微机微机TxDRxDGND微机微机微机微机DSRDTRTxDRxDRTSCTSGND微机微机“伪伪”使用联络信号的使用联络信号的3线相连线相连微机原理与接口技术第4版机械工业出版社2. 232C2. 232C的连接的连接连接调制解调器连接调制解调器:通过电话线路远距离通信:通过电话线路远距离通信直接直接(零调制解调器零调制解调器)连接连接:进行短距离通信:进行短距离通信使用联络信号的多线相连使用联络信号的多线相连微机微机DSRDTRTxDRxDRTSCTSGND微机微机微机原理与接口技术第4版机械工业出版社8.3.3 8.3.3 异步串行通信程序异步串行通信程序IBM PC/XTIBM PC/XT机的机的UARTUART芯片是芯片是INS 8250INS 8250后续后续PCPC机采用兼容的机采用兼容的NS16450NS16450和和NS16550NS16550现在现在3232位位PCPC机芯片组兼容机芯片组兼容NS16550NS16550实现起止式串行异步通信协议实现起止式串行异步通信协议数据位为数据位为5 58 8位,停止位位,停止位1 1、1.51.5或或2 2位位奇偶校验,具有奇偶、帧和溢出错误检测电路奇偶校验,具有奇偶、帧和溢出错误检测电路支持全双工通信支持全双工通信82508250支持的数据传输速率为支持的数据传输速率为50509600 bps9600 bps1655016550支持的速率高达支持的速率高达115200 bps115200 bps微机原理与接口技术第4版机械工业出版社1. 82501. 8250的寄存器的寄存器9 9种可访问的寄存器种可访问的寄存器用引脚用引脚A A0A A2来寻址,来寻址,DLABDLAB位区别位区别DLABA2 A1 A0寄寄 存存 器器COM1地址地址COM2地址地址000110 0 00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0 00 0 1 读接收接收缓冲寄存器冲寄存器写写发送保持寄存器送保持寄存器中断允中断允许寄存器寄存器中断中断识别寄存器寄存器通信通信线路控制寄存器路控制寄存器调制解制解调器控制寄存器器控制寄存器通信通信线路状路状态寄存器寄存器调制解制解调器状器状态寄存器寄存器不用不用除数寄存器低除数寄存器低8位位除数寄存器高除数寄存器高8位位3F8H3F8H3F9H3FAH3FBH3FCH3FDH3FEH3FFH3F8H3F9H2F8H2F8H2F9H2FAH2FBH2FCH2FDH2FEH2FFH2F8H2F9H微机原理与接口技术第4版机械工业出版社82508250的接收缓冲寄存器的接收缓冲寄存器RBRRBR存放串行接收后转换成并行的数据存放串行接收后转换成并行的数据并行数据并行数据检测接收错误检测接收错误删除起始位、删除起始位、校验位、停止位校验位、停止位串行数据串行数据CPU接收缓冲寄存器接收缓冲寄存器接收移位寄存器接收移位寄存器同步控制同步控制8250SIN0/10/1 0/10/10/10/10/10/1微机原理与接口技术第4版机械工业出版社82508250的发送保持寄存器的发送保持寄存器THRTHR包含将要串行发送的并行数据包含将要串行发送的并行数据并行数据并行数据加入起始位、加入起始位、校验位、停止位校验位、停止位串行数据串行数据CPU发送保持寄存器发送保持寄存器发送移位寄存器发送移位寄存器同步控制同步控制8250SOUT0/10/1 0/10/10/10/10/10/1微机原理与接口技术第4版机械工业出版社82508250的除数寄存器的除数寄存器除数寄存器保存设定的分频系数除数寄存器保存设定的分频系数分频系数基准时钟频率分频系数基准时钟频率(1616比特率)比特率)起起 始始 位位时钟时钟(RCLK)数据线数据线(SIN)T16 T16 T8 T微机原理与接口技术第4版机械工业出版社82508250的通信线路控制寄存器的通信线路控制寄存器LCRLCR指定串行异步通信的字符格式指定串行异步通信的字符格式DLABDLABD7D7 D D5 5 D D4 4 D D3 3D D2 2D D1 1 D D0 0寄存器选择寄存器选择0 正常值正常值1 除数寄存器除数寄存器中止字符中止字符0 无作用无作用1 发送中止字符发送中止字符校验位设置校验位设置0 无校验位无校验位001 设置奇校验设置奇校验011 设置偶校验设置偶校验101 校验位为校验位为1111 校验位为校验位为0停止位个数停止位个数0 1位位1 1.5位(数据位为位(数据位为5位时)位时)1 2位(数据位为位(数据位为68位时)位时)数据位个数数据位个数00 5位位01 6位位10 7位位11 8位位微机原理与接口技术第4版机械工业出版社82508250的通信线路状态寄存器的通信线路状态寄存器LSRLSR提供串行异步通信的当前状态提供串行异步通信的当前状态0 0D D6 6 D D5 5 D D4 4 D D3 3D D2 2D D1 1 D D0 0为为1,表示发送移位寄存器空;,表示发送移位寄存器空;当数据由发送保持寄存器移入当数据由发送保持寄存器移入发送移位寄存器时,该位为发送移位寄存器时,该位为0为为1,表示发送保持寄存器空,表示发送保持寄存器空,当当CPU将字符写入发送保持将字符写入发送保持寄存器后,该位为寄存器后,该位为0为为1,表示正在传输中止字符,表示正在传输中止字符为为1,表示出现帧错误,表示出现帧错误为为1,表示出现奇偶错,表示出现奇偶错为为1,表示出现溢出错,表示出现溢出错为为1,表示接收数据缓冲器收到,表示接收数据缓冲器收到一个数据,既接收数据准备好;一个数据,既接收数据准备好;当当CPU读走数据后,该位为读走数据后,该位为0奇偶错误奇偶错误PE 帧错误帧错误FE 溢出错误溢出错误OE微机原理与接口技术第4版机械工业出版社82508250的引脚的引脚分成连接分成连接CPUCPU的部分和连接外设的部分的部分和连接外设的部分注注意意:82508250不不是是IntelIntel公公司司的的产产品品,所所以以该该芯芯片片引引脚脚名名称称与与前前面面学学习习的的82538253、82558255等等IntelIntel产产品品有有所所不不同同,但但是是引引脚脚功功能能却却是是类类似的似的微机原理与接口技术第4版机械工业出版社1. 1. 处理器接口引脚(处理器接口引脚(1 1)数据线数据线D0D7:在:在CPUCPU与与82508250之间交换信息之间交换信息地址线地址线A0A2:寻址:寻址82508250内部寄存器内部寄存器片片选选线线:82508250设设计计了了3 3个个片片选选输输入入信信号号CS0、CS1、CS2*和和一一个个片片选选输输出出信信号号CSOUT。3 3个个片片选选输输入入都都有有效效时时,才才选选中中82508250芯芯片片,同同时时CSOUTCSOUT输出高电平有效。输出高电平有效。地地址址选选通通信信号号ADS*:当当该该信信号号低低有有效效时时,锁锁存存上上述述地地址址线线和和片片选选线线的的输输入入状状态态,保保证证读读写期间的地址稳定写期间的地址稳定微机原理与接口技术第4版机械工业出版社1. 1. 处理器接口引脚(处理器接口引脚(2 2)读控制线读控制线数数据据输输入入选选通通DISTR(高高有有效效)和和DISTR*(低低有有效效)有有一一个个信信号号有有效效,CPU从从8250内内部部寄存器读出数据寄存器读出数据相当于相当于I/O读信号读信号写控制线写控制线数数 据据 输输 出出 选选 通通 DOSTR( 高高 有有 效效 ) 和和DOSTR*(低低有有效效)有有一一个个有有效效,CPU就就将将数数据写入据写入8250内部寄存器内部寄存器相当于相当于I/O写信号写信号8250读读写写控控制制信信号号有有两两对对,每每对对信信号号作作用用完全相同,只不过有效电平不同而己完全相同,只不过有效电平不同而己微机原理与接口技术第4版机械工业出版社1. 1. 处理器接口引脚(处理器接口引脚(3 3)驱驱动动器器禁禁止止信信号号DDIS:CPU从从8250读读取取数数据据时时,DDIS引引脚脚输输出出低低电电平平,用用来来禁禁止止外外部部收收发发器器对对系系统统总总线线的的驱驱动动;其其他他时时间间,DDIS为高电平为高电平主复位线主复位线MR:硬件复位信号:硬件复位信号RESET中中断断请请求求线线INTRPT:8250有有4级级共共10个个中中断断源源,当当任任一一个个未未被被屏屏蔽蔽的的中中断断源源有有请请求求时,时,INTRPT输出高电平向输出高电平向CPU请求中断请求中断微机原理与接口技术第4版机械工业出版社2. 2. 时钟信号时钟信号时钟输入引脚时钟输入引脚XTAL1:82508250的基准工作时钟的基准工作时钟时时钟钟输输出出引引脚脚XTAL2:基基准准时时钟钟信信号号的的输输出出端端波波特特率率输输出出引引脚脚BAUDOUT*:基基准准时时钟钟经经82508250内部波特率发生器分频后产生发送时钟内部波特率发生器分频后产生发送时钟接接收收时时钟钟引引脚脚RCLK:接接收收外外部部提提供供的的接接收收时时钟钟信信号号;若若采采用用发发送送时时钟钟作作为为接接收收时时钟钟,则则只要将只要将RCLKRCLK引脚和引脚和BAUDOUT*引脚直接相连引脚直接相连微机原理与接口技术第4版机械工业出版社3. 3. 串行异步接口引脚串行异步接口引脚8250数据装置准备好数据装置准备好DSR*数据终端准备好数据终端准备好DTR*发送数据发送数据SOUT接收数据接收数据SIN请求发送请求发送RTS*允许发送允许发送CTS*信号地信号地GND载波检测载波检测RLSD*振铃指示振铃指示RI*微机原理与接口技术第4版机械工业出版社4. 4. 输出线输出线OUT1*和和OUT2*:两个一般用途的输出信号两个一般用途的输出信号由由调调制制解解调调器器控控制制寄寄存存器器的的D D2和和D D3使使其其输输出出低低电平有效信号电平有效信号复位使其恢复为高复位使其恢复为高微机原理与接口技术第4版机械工业出版社82508250的调制解调器控制寄存器的调制解调器控制寄存器MCRMCR设置设置82508250与数据通信设备联络的输出信号与数据通信设备联络的输出信号为为1使使DTR*引脚为低引脚为低否则为高否则为高 0 0 00 0 0LOOPLOOP OUTOUT2 2OUTOUT1 1RTSRTS DTRDTR为为1使使RTS*引脚为低引脚为低否则为高否则为高 为为1使使OUT1*引脚为低引脚为低否则为高否则为高 为为1使使OUT2*引脚为低引脚为低否则为高否则为高 为为1使使8250为循环工作方式为循环工作方式否则为正常工作方式否则为正常工作方式循环工作方式循环工作方式:4个控制输入信号在内部与个控制输入信号在内部与4个控制输出信号相连个控制输出信号相连发送的串行数据在内部被接收发送的串行数据在内部被接收检测检测8250发送和接收功能,不必外连线发送和接收功能,不必外连线微机原理与接口技术第4版机械工业出版社82508250的的4 4个控制输入信号个控制输入信号CTSCTS* *:允允许许发发送送,当当数数据据通通信信设设备备已已准准备备好好接接收收数数据据终终端端设设备备的的传传送送数数据据时时,发发送送CTSCTS有效信号来响应有效信号来响应RTSRTS信号信号DSRDSR* *:数数据据装装置置准准备备好好,表表示示数数据据通通信信设设备备已已接接通通电电源源连连到到通通信信线线路路上上,并并处处于于数数据据传传输方式输方式RLSDRLSD* *:对应载波检测:对应载波检测CDCDRIRI* *:振铃指示:振铃指示微机原理与接口技术第4版机械工业出版社82508250的调制解调器状态寄存器的调制解调器状态寄存器MSRMSR反映反映4个控制输入信号的当前状态及其变化个控制输入信号的当前状态及其变化MSR高高4位中某位为位中某位为1:相应输入信号当前为低,否则为高相应输入信号当前为低,否则为高MSR低低4位中某位为位中某位为1:从从上上次次CPU读读取取该该状状态态字字后后,相相应应输输入入信信号号已已发生改变,从高变低或反之发生改变,从高变低或反之MCR低低4位位任任一一位位置置1,均均产产生生调调制制解解调调器器状状态态中中断断,当当CPU读读取取该该寄寄存存器器或或复复位位后后,低低4位位被被清零清零微机原理与接口技术第4版机械工业出版社82508250的中断允许寄存器的中断允许寄存器IERIER8250有有4级级10个中断个中断接收线路状态中断(接收线路状态中断(4个)(个)(D2)奇偶错、溢出错、帧错和中止字符奇偶错、溢出错、帧错和中止字符接收器数据准备好中断(接收器数据准备好中断(D0)发送保持寄存器空中断(发送保持寄存器空中断(D1)调制解调器状态中断(调制解调器状态中断(4个)(个)(D3)中断允许寄存器低中断允许寄存器低4位控制位控制4级中断是否允许级中断是否允许某位为某位为1,则对应的中断被允许,则对应的中断被允许否则,被禁止否则,被禁止优先权高优先权高优先权低优先权低微机原理与接口技术第4版机械工业出版社82508250的中断识别寄存器的中断识别寄存器IIRIIR表明是否有中断表明是否有中断保存正在请求中断优先权最高中断级别编码保存正在请求中断优先权最高中断级别编码0 0 0 0 00 0 0 0 0IDID1 1 IDID0 0IPIP0 有中断有中断1 无中断无中断IDID1 1IDID0 0优先权优先权中断类型中断类型1 11 11 01 00 10 10 00 01 12 23 34 4 接收线路状态接收线路状态 接收数据准备好接收数据准备好 发送保持寄存器空发送保持寄存器空 调制解调器状态调制解调器状态微机原理与接口技术第4版机械工业出版社2. 2. 初始化编程初始化编程对对82508250的内部控制寄存器进行编程写入的内部控制寄存器进行编程写入 设置传输率设置传输率写入除数寄存器写入除数寄存器 设置字符格式设置字符格式写入通信线路控制寄存器写入通信线路控制寄存器 设置工作方式设置工作方式写入调制解调器控制寄存器写入调制解调器控制寄存器 设置中断允许或屏蔽位设置中断允许或屏蔽位写入中断允许寄存器写入中断允许寄存器微机原理与接口技术第4版机械工业出版社写入除数寄存器设置传输率写入除数寄存器设置传输率mov al,mov al,80h80hmov dx,mov dx,2fbh2fbhout dx,alout dx,al; ; 写入通信线路控制寄存器,使写入通信线路控制寄存器,使DLABDLAB1 1mov ax,mov ax,9696; ; 分频系数分频系数; ; 1.8432MHz(120016)1.8432MHz(120016)969660H60Hmov dx,mov dx,2f8h2f8hout dx,alout dx,al; ; 写入除数寄存器低写入除数寄存器低8 8位位mov al,ahmov al,ah inc dxinc dxout dx,alout dx,al; ; 写入除数寄存器高写入除数寄存器高8 8位位微机原理与接口技术第4版机械工业出版社写入通信线路控制寄存器写入通信线路控制寄存器设置字符格式设置字符格式; ; 假设使用假设使用7 7个数据位、个数据位、1 1个停止位、奇校验个停止位、奇校验mov al,mov al,00001010b00001010bmov dx,mov dx,2fbh2fbh out dx,alout dx,al; ;写入通信线路控制寄存器写入通信线路控制寄存器; ; 同时使同时使DLABDLAB0 0,以方便下述初始化过程,以方便下述初始化过程微机原理与接口技术第4版机械工业出版社异步通信适配器异步通信适配器IBM PC/XTIBM PC/XT机的串行异步通信适配器机的串行异步通信适配器以以82508250为核心为核心完完成成发发送送时时的的并并转转串串和和接接收收时时的的串串转转并并以以及及相相应的控制工作应的控制工作配置了配置了TTLTTL电平与电平与EIAEIA电平转换电路等电平转换电路等展开异步通信适配器的展开异步通信适配器的硬件电路硬件电路软件编程软件编程微机原理与接口技术第4版机械工业出版社RCLKRCLKBAUDOUTBAUDOUTIRQIRQ4 4IRQIRQ3 3RESETRESET+5V+5VA A8 8AENAENA A3 3A A7 7A A9 9IOR IOR IOWIOWA A0 0A A2 2MRMRXTAL1XTAL1OUTOUT1 1OUTOUT2 2INTRPTINTRPTDISTRDISTRDOSTRDOSTRA A0 0A A2 2CS2CS282508250LS245LS245D D0 0D D7 7D D0 0D D7 7J9J9J10J10J11J11J12J12DIRDIR1.8432MHz1.8432MHzCS0CS0CS1CS1ADSADSDISTRDISTRDOSTRDOSTR5V5V异步通信适配器的接口电路异步通信适配器的接口电路微机原理与接口技术第4版机械工业出版社写入调制解调器控制寄存器设置工作方式写入调制解调器控制寄存器设置工作方式; ; 设置查询通信方式设置查询通信方式mov al,mov al,03h03h; ; 禁止中断(禁止中断(D3D30 0) mov dx,mov dx,2fch2fchout dx,alout dx,al; ; 写入调制解调器控制寄存器写入调制解调器控制寄存器; ; 设置中断通信方式设置中断通信方式mov al,mov al,0bh0bh; ; 允许中断(允许中断(D3D31 1)mov dx,mov dx,2fch2fchout dx,alout dx,al ; ; 设置查询的循环测试通信方式设置查询的循环测试通信方式mov al,mov al,13h13h; ; 循环测试(循环测试(D4D41 1) mov dx,mov dx,2fch2fch; ; 禁止中断(禁止中断(D3D30 0)out dx,alout dx,al微机原理与接口技术第4版机械工业出版社写入中断允许寄存器设置中断允许或屏蔽位写入中断允许寄存器设置中断允许或屏蔽位; ;禁止所有中断禁止所有中断mov al,mov al,0 0 mov dx,mov dx,2f9h2f9hout dx,alout dx,al; ;写入中断允许寄存器写入中断允许寄存器(DLAB(DLAB0)0); ;仅允许接收中断仅允许接收中断mov al,mov al,1 1 mov dx,mov dx,2f9h2f9hout dx,alout dx,al; ;写入中断允许寄存器写入中断允许寄存器(DLAB(DLAB0)0) 微机原理与接口技术第4版机械工业出版社例例8-38-3异步通信程序异步通信程序1 1; ; 数据段数据段msgmsgbyte What you see is .,13,10,0byte What you see is .,13,10,0; ; 代码段代码段; ; 初始化编程初始化编程mov si,offset msgmov si,offset msg ; SI; SI指向发送信息指向发送信息mov bx,1mov bx,1; BX; BX1 1需要发送信息需要发送信息mov cx,1mov cx,1; CX; CX1 1可以接收信息可以接收信息; ; 读取通信线路状态,查询工作读取通信线路状态,查询工作statue:statue: mov ax,bxmov ax,bxor ax,cxor ax,cx; BX; BXCXCX0 0,接发完成,接发完成jz donejz done; ; 转向结束转向结束微机原理与接口技术第4版机械工业出版社例例8-38-3异步通信程序异步通信程序2 2mov dx,2fdhmov dx,2fdh; ; 读取线路状态寄存器读取线路状态寄存器in al,dxin al,dxtest al,test al,1eh1eh; ; 接收有错误否接收有错误否? ?jz statue1jz statue1; ; 没有错误,继续没有错误,继续; ; 接收有错,响铃报警接收有错,响铃报警mov dx,2f8hmov dx,2f8h; ; 读出接收有误的数据,读出接收有误的数据, 丢掉丢掉in al,dxin al,dxmov al,07hmov al,07h; ; 响铃控制的响铃控制的ASCIIASCII码码call dispccall dispcjmp statuejmp statue; ; 继续查询继续查询微机原理与接口技术第4版机械工业出版社例例8-38-3异步通信程序异步通信程序3 3statue1statue1: : test al,test al,01h01h; ; 接收到数据吗接收到数据吗? ?jz statue2jz statue2; ; 没有收到数据,继续没有收到数据,继续; ; 已接收字符,读取该字符并显示已接收字符,读取该字符并显示mov dx,2f8hmov dx,2f8h; ;读取输入缓冲寄存器读取输入缓冲寄存器in al,dxin al,dxcmp al,0cmp al,0; ; 是结尾字符吗?是结尾字符吗? jnz receivejnz receivexor cx,cxxor cx,cx; CX; CX0 0,不再接收数据不再接收数据jmp statuejmp statue; ; 继续查询继续查询receive:receive: and al,7fhand al,7fh; ; 标准标准ASCIIASCII码取低码取低7 7位位call dispccall dispc; ; 屏幕显示该数据屏幕显示该数据jmp statuejmp statue; ; 继续查询继续查询微机原理与接口技术第4版机械工业出版社例例8-38-3异步通信程序异步通信程序4 4statue2statue2: : cmp bx,1cmp bx,1; ; 有要发送的字符吗?有要发送的字符吗?jne statuejne statue; ; 无字符,继续查询无字符,继续查询test al,test al,20h20h; ; 能输出数据吗能输出数据吗? ?jz statuejz statue; ; 不能输出,继续查询不能输出,继续查询; ; 保持寄存器已空,可以发送数据保持寄存器已空,可以发送数据mov al,simov al,si; ; 获得要发送的字符获得要发送的字符inc siinc sicmp al,0cmp al,0; ; 是结尾字符吗?是结尾字符吗?jnz transmit jnz transmit xor bx,bxxor bx,bx; ; 无发送字符,无发送字符,BXBX0 0jmp statuejmp statue; ; 继续查询继续查询微机原理与接口技术第4版机械工业出版社例例8-38-3异步通信程序异步通信程序5 5transmittransmit: : mov dx,2f8hmov dx,2f8h; ; 将字符输出给发送保持寄存器将字符输出给发送保持寄存器out dx,alout dx,al; ; 串行发送数据串行发送数据jmp statuejmp statue; ; 继续查询继续查询done:done:; ; 返回返回DOSDOSWhat you see is what you get.显示结果微机原理与接口技术第4版机械工业出版社8.4 8.4 模拟接口模拟接口模拟量模拟量连续变化的物理量连续变化的物理量模拟模拟/数字转换器数字转换器ADCDAC数字数字/模拟转换器模拟转换器数字量数字量时间和数值上都离散的量时间和数值上都离散的量8.4.1 8.4.1 模拟输入输出系统模拟输入输出系统数字信号数字信号模拟信号模拟信号现场信号现场信号1现场信号现场信号2现场信号现场信号n微型微型计算机计算机放大器放大器放大器放大器放大器放大器多多路路开开关关低通滤波低通滤波传感器传感器低通滤波低通滤波传感器传感器低通滤波低通滤波传感器传感器A/D转换器转换器采样保持器采样保持器数字信号数字信号受控对象受控对象控制信号控制信号模拟信号模拟信号D/A转换器转换器放大驱动电路放大驱动电路8.4.1 8.4.1 模拟输入输出系统模拟输入输出系统数字信号数字信号模拟信号模拟信号现场信号现场信号1现场信号现场信号2现场信号现场信号n微型微型计算机计算机放大器放大器放大器放大器放大器放大器多多路路开开关关低通滤波低通滤波传感器传感器低通滤波低通滤波传感器传感器低通滤波低通滤波传感器传感器A/D转换器转换器采样保持器采样保持器数字信号数字信号受控对象受控对象控制信号控制信号模拟信号模拟信号D/A转换器转换器放大驱动电路放大驱动电路传感器传感器将各种现场的物理量测量出来将各种现场的物理量测量出来并转换成电信号(模拟电压或电流)并转换成电信号(模拟电压或电流) 放大器放大器把传感器输出的信号放大到把传感器输出的信号放大到ADC所需所需的量程范围的量程范围低通滤波器低通滤波器用于降低噪声、滤去高频干扰,用于降低噪声、滤去高频干扰,以增加信噪比以增加信噪比多路开关多路开关把多个现场信号分时地接通到把多个现场信号分时地接通到A/D转换器转换器采样保持器采样保持器周期性地采样连续信号,周期性地采样连续信号,并在并在A/D转换期间保持不变转换期间保持不变微机原理与接口技术第4版机械工业出版社8.4.2 D/A8.4.2 D/A转换器转换器D/AD/A转换器(转换器(DACDAC)将数字量转换成为模拟量(电压或电流)将数字量转换成为模拟量(电压或电流)DACDAC芯片有多种类型芯片有多种类型按按DACDAC的性能:通用、高速和高精度等转换器的性能:通用、高速和高精度等转换器按内部结构:不包含、包含数据寄存器按内部结构:不包含、包含数据寄存器按位数:按位数:8 8位、位、1212位、位、1616位等位等按输出模拟信号:电流输出型和电压输出型按输出模拟信号:电流输出型和电压输出型 微机原理与接口技术第4版机械工业出版社1. D/A1. D/A转换原理转换原理把把每每位位代代码码按按其其权权的的大大小小转转换换成成相相应应的的模模拟拟分量,将各模拟分量相加分量,将各模拟分量相加1101B1101B12123 312122 202021 112120 01313D/AD/A转换器转换器: :主要由电阻网络、电子开关和基准电压组成主要由电阻网络、电子开关和基准电压组成DACDAC集成电路多采用集成电路多采用R-2RR-2R梯形解码网络梯形解码网络输入数字量控制电子开关输入数字量控制电子开关使电阻网络中的不同电阻和基准电压接通使电阻网络中的不同电阻和基准电压接通输出端产生成比例的模拟电流或电压输出端产生成比例的模拟电流或电压基准电压基准电压( (参考电压参考电压VREF)VREF):稳定的电压源:稳定的电压源微机原理与接口技术第4版机械工业出版社D/AD/A转换器的原理图转换器的原理图(1 1)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF电阻网络电阻网络基准电压基准电压电子开关电子开关微机原理与接口技术第4版机械工业出版社D/AD/A转换器的原理图转换器的原理图(2 2)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF阻抗阻抗2R运算放大器运算放大器虚地虚地微机原理与接口技术第4版机械工业出版社D/AD/A转换器的原理图转换器的原理图(3 3)VaVaV VREFREFVbVbV VREFREF/2/2VcVcV VREFREF/4/4VdVdV VREFREF/8/8I0Vd/2RVREF/(82R)I1Vd/2RVREF/(42R)I2Vd/2RVREF/(22R)I3Vd/2RVREF/(12R)微机原理与接口技术第4版机械工业出版社D/AD/A转换器的原理图转换器的原理图(4 4)Iout1Iout1I I0 0I I1 1I I2 2I I3 3V VREFREF/2R/2R(1/81/81/41/41/21/21 1)RfbRfbR RVoutVoutIout1RfbIout1RfbV VREFREF(2 20 02 21 12 22 22 23 3)/2/24 4 Vout(D/2n)VREF微机原理与接口技术第4版机械工业出版社DAC0832DAC0832的内部结构的内部结构典型的典型的8 8位、电流输出型、通用位、电流输出型、通用DACDAC芯片芯片LE2LE1RfbAGNDDAC0832VccILEVREF输入输入寄寄存存器器DGNDDI0DI7D/A转转换换器器DAC寄寄存存器器Iout2Iout1CSWR1WR2XFER微机原理与接口技术第4版机械工业出版社2. DAC08322. DAC0832的数字接口的数字接口8 8位数字输入端位数字输入端DI0DI0DI7DI7(DI0DI0为最低位)为最低位)输入寄存器(第输入寄存器(第1 1级)控制端级)控制端ILEILE、CS*CS*、WR1*WR1*DACDAC寄存器(第寄存器(第2 2级)控制端级)控制端XFER*XFER*、WR2*WR2*LE2LE1DAC0832输入输入寄寄存存器器DI0DI7D/A转转换换器器DAC寄寄存存器器Iout1直通方式直通方式单缓冲方式单缓冲方式双缓冲方式双缓冲方式微机原理与接口技术第4版机械工业出版社直通锁存器的工作方式直通锁存器的工作方式两级缓冲寄存器都是直通锁存器两级缓冲寄存器都是直通锁存器LELE1 1,直通(输出等于输入),直通(输出等于输入)LELE0 0,锁存(输出保持不变),锁存(输出保持不变)LE2LE1DAC0832输入输入寄寄存存器器DI0DI7D/A转转换换器器DAC寄寄存存器器Iout1微机原理与接口技术第4版机械工业出版社DAC0832DAC0832的工作方式:直通方式的工作方式:直通方式LE1LE1LE2LE21 1输入的数字数据直接进入输入的数字数据直接进入D/AD/A转换器转换器LE2LE1DAC0832输入输入寄寄存存器器DI0DI7D/A转转换换器器DAC寄寄存存器器Iout1微机原理与接口技术第4版机械工业出版社DAC0832DAC0832的工作方式:单缓冲方式的工作方式:单缓冲方式LE1LE11 1,或者,或者LE2LE21 1两个寄存器之一始终处于直通状态两个寄存器之一始终处于直通状态另一个寄存器处于受控状态(缓冲状态)另一个寄存器处于受控状态(缓冲状态)LE2LE1DAC0832输入输入寄寄存存器器DI0DI7D/A转转换换器器DAC寄寄存存器器Iout1微机原理与接口技术第4版机械工业出版社DAC0832DAC0832的工作方式:双缓冲方式的工作方式:双缓冲方式两个寄存器都处于受控(缓冲)状态两个寄存器都处于受控(缓冲)状态能能够够对对一一个个数数据据进进行行D/AD/A转转换换的的同同时时;输输入入另另一个数据一个数据LE2LE1DAC0832输入输入寄寄存存器器DI0DI7D/A转转换换器器DAC寄寄存存器器Iout1微机原理与接口技术第4版机械工业出版社3. DAC08323. DAC0832的模拟输出的模拟输出Iout1Iout1、Iout2Iout2电流输出端电流输出端RfbRfb反馈电阻引出端(电阻在芯片内)反馈电阻引出端(电阻在芯片内)V VREFREF参考电压输入端参考电压输入端10V10V10V10VAGNDAGND模拟信号地模拟信号地V VCCCC电源电压输入端电源电压输入端5V5V15V15VDGNDDGND数字信号地数字信号地微机原理与接口技术第4版机械工业出版社单极性电压输出单极性电压输出设设 V VREFREF5V5VD DFFHFFH255255时,最大输出电压:时,最大输出电压:VmaxVmax-(255/256)5V-(255/256)5V-4.98V-4.98VD D00H00H时,最小输出电压:时,最小输出电压:VminVmin-(0/256)5V-(0/256)5V0V0VD D01H01H时,一个最低有效位电压:时,一个最低有效位电压:V VLSBLSB-(1/256)5V-(1/256)5V-0.02V-0.02VRfbIout2Iout1Vout+_AGNDADIVREFVout(D/2n)VREF微机原理与接口技术第4版机械工业出版社双极性电压输出:电路双极性电压输出:电路R1(R)R3(2R)R2(2R)RfbIout2Iout1AGNDDIVREFVout1+_A1Vout2+_A2I1I2I1I20微机原理与接口技术第4版机械工业出版社双极性电压输出:公式双极性电压输出:公式取取 R R2 2R R3 32R2R1 1得得 VoutVout2 2(2Vout2Vout1 1V VREFREF)因因 Vout1Vout1(D/2D/28 8)VVREFREF故故 Vout2Vout2 (D D2 27 7)/2/27 7)VVREFREF微机原理与接口技术第4版机械工业出版社双极性电压输出双极性电压输出VmaxVmax(255-128)/1285V(255-128)/1285V4.96V4.96VVminVmin(0-128)/1285V(0-128)/1285V-5V-5VV VLSBLSB(129-128/1285V(129-128/1285V0.04V0.04VR1(R)R3(2R)R2(2R)RfbIout2Iout1AGNDDIVREFVout1+_A1Vout2+_A2Vout(D2n-1)/2n-1VREF微机原理与接口技术第4版机械工业出版社4. DAC4. DAC芯片与主机的连接芯片与主机的连接DACDAC芯片相当于一个芯片相当于一个“输出设备输出设备”不不带带锁锁存存器器的的DACDAC,至至少少需需要要一一级级锁锁存存器器作作为接口电路为接口电路mov al,mov al,bufbufmov dx,mov dx,portdportdout dx,alout dx,al译码译码ABD0D7CLKDACVout+_ALS273 IOW微机原理与接口技术第4版机械工业出版社DAC0832DAC0832单缓冲方式单缓冲方式 WR1 CS IOW 5V+5VRfbIout2Iout1 WR2XFERDGNDAGNDD0D7DI0D17VccILEVREFVout+_A译码译码AB微机原理与接口技术第4版机械工业出版社 DAC DAC芯片的应用芯片的应用mov dx,mov dx,portdportdmov al,mov al,0 0repeat:repeat: out dx,alout dx,alinc inc alaljmp repeatjmp repeat微机原理与接口技术第4版机械工业出版社输出正向锯齿波输出正向锯齿波2次数据输出的时间间隔次数据输出的时间间隔02LSB1LSB255LSB254LSB锯齿波周期锯齿波周期微机原理与接口技术第4版机械工业出版社8.4.3 A/D8.4.3 A/D转换器转换器A/DA/D转换器(转换器(ADCADC)将模拟量(电压或电流)转换成为数字量将模拟量(电压或电流)转换成为数字量ADCADC芯片主要以模拟到数字转换技术来区别芯片主要以模拟到数字转换技术来区别有有些些ADCADC芯芯片片不不仅仅具具有有A/DA/D转转换换的的基基本本功功能能,还包含内部放大器和三态输出锁存器还包含内部放大器和三态输出锁存器有的还包括多路开关、采样保持器等有的还包括多路开关、采样保持器等微机原理与接口技术第4版机械工业出版社1. 1. 计数器式计数器式以最低位为增减量以最低位为增减量单位的逐步计数法单位的逐步计数法时钟时钟复位复位数字输出数字输出比较器比较器模拟输入模拟输入计数器计数器D/A转换器转换器转换结束转换结束微机原理与接口技术第4版机械工业出版社2. 2. 逐次逼近式逐次逼近式从最高位开始从最高位开始的逐位试探法的逐位试探法时钟时钟复位复位数字输出数字输出转换结束转换结束比较器比较器模拟输入模拟输入寄存器寄存器D/A转换器转换器微机原理与接口技术第4版机械工业出版社3. 3. 双积分式双积分式两个积分阶段两个积分阶段实质是电压实质是电压/ /时间变换时间变换IREFIinVinVREF积分器积分器比较器比较器V/IV/I时钟时钟启动计数启动计数计数器计数器数字输出数字输出T2T1Vc固定斜率固定斜率时间可变时间可变固定时间固定时间斜率可变斜率可变转换结束转换结束微机原理与接口技术第4版机械工业出版社4. 4. 并行式并行式速速度度快快成成本本高高直直接接比比较较法法编编码码电电路路VinVREF数字输出数字输出比较器比较器RRRRRRR/2R/2微机原理与接口技术第4版机械工业出版社ADC0809ADC0809的内部结构的内部结构v8 8位逐次逼近式位逐次逼近式ADCADC,多路开关和三态锁存缓冲器,多路开关和三态锁存缓冲器ADC0809地址锁存地址锁存和译码和译码OE通道通道选择选择开关开关ADDAADDBADDC1N0IN1IN2IN3IN4IN5IN6IN78位位三态三态锁存锁存缓冲器缓冲器DACVcc比较器比较器CLOCKSTARTGNDVREF(+)VREF(-)ALE逐次逼近逐次逼近寄存器寄存器SAR定时和控制定时和控制D0D1D2D3D4D5D6D7EOC微机原理与接口技术第4版机械工业出版社2. ADC08092. ADC0809的模拟输入的模拟输入IN0IN0IN7IN7:8 8个模拟电压输入端个模拟电压输入端ADDAADDA、ADDBADDB、ADDCADDC:3 3个地址输入线个地址输入线ALEALE:地址锁存允许信号地址锁存允许信号提供一个提供一个8 8通道的多路开关和寻址逻辑通道的多路开关和寻址逻辑ALEALE的上升沿用于锁存的上升沿用于锁存3 3个地址输入的状态个地址输入的状态译码器从译码器从8个选择一个模拟输入进行个选择一个模拟输入进行A/DA/D转换转换3. ADC08093. ADC0809的转换时序的转换时序D0D7OEEOCSTART/ALEADDA/B/CDATA100 s2 s+8T(最大最大)200ns(最小最小)转换启动信号转换启动信号转换结束信号转换结束信号微机原理与接口技术第4版机械工业出版社4. ADC08094. ADC0809的数字输出的数字输出输出允许信号输出允许信号OEOE高电平高电平有效有效将三态锁存缓冲器的数字量从将三态锁存缓冲器的数字量从D0D0D7D7输出输出基准电压基准电压VREF(+)5V,VREF()0V输入模拟电压输入模拟电压Vin1.5VN(1.50)(50)25676.8774DH微机原理与接口技术第4版机械工业出版社5. ADC5. ADC芯片与主机的连接芯片与主机的连接ADCADC芯片相当于芯片相当于“输入设备输入设备”需要接口电路提供数据缓冲器需要接口电路提供数据缓冲器转换开始需要启动信号转换开始需要启动信号软件编程或硬件定时产生脉冲信号或电平信号软件编程或硬件定时产生脉冲信号或电平信号转换结束输出结束信号转换结束输出结束信号主机获知转换是否结束,进行数据输入主机获知转换是否结束,进行数据输入查询方式查询方式:把结束信号作为状态信号:把结束信号作为状态信号中断方式中断方式:把结束信号作为中断请求信号:把结束信号作为中断请求信号延时方式延时方式:不使用转换结束信号:不使用转换结束信号DMADMA方式方式:把结束信号作为:把结束信号作为DMADMA请求信号请求信号微机原理与接口技术第4版机械工业出版社6. ADC6. ADC芯片的应用:中断方式芯片的应用:中断方式D0D7220hIRQ2A0A9译码译码VccD0D7EOCADDAADDBADDCALE模拟输入模拟输入(05V)500KHzCLOCKVREF(+)+5VIN0OESTARTGNDVREF(-) IOR IOW微机原理与接口技术第4版机械工业出版社中断方式:主程序中断方式:主程序; ;数据段设置缓冲区数据段设置缓冲区adtempadtempdb 0db 0; ;给定一个临时变量给定一个临时变量; ;代码段代码段; ;设置中断向量等工作设置中断向量等工作stisti; ;开中断开中断mov dx,220hmov dx,220hout dx,alout dx,al; ;启动启动A/DA/D转换转换; ;其他工作其他工作微机原理与接口技术第4版机械工业出版社中断方式:中断服务程序中断方式:中断服务程序1 1adintadintprocproc; ;中断服务程序中断服务程序stisti; ;开中断开中断push axpush ax; ;保护寄存器保护寄存器push dxpush dxpush dspush dsmov ax,datamov ax,data; ;设置数据段设置数据段DSDS的段地址的段地址mov ds,axmov ds,axmov dx,220hmov dx,220hin al,dxin al,dx; ;读取读取A/DA/D转换后的数字量转换后的数字量mov adtemp,almov adtemp,al ; ;送入缓冲区送入缓冲区微机原理与接口技术第4版机械工业出版社中断方式:中断服务程序中断方式:中断服务程序2 2mov al,20hmov al,20h; ;给中断控制器发送给中断控制器发送EOIEOI命令命令out 20h,alout 20h,alpop dspop ds; ;恢复寄存器恢复寄存器pop dxpop dxpop axpop axiretiret; ;中断返回中断返回adintadintendpendp微机原理与接口技术第4版机械工业出版社7. ADC7. ADC芯片的应用:查询方式芯片的应用:查询方式8通道通道模拟模拟输入输入VccD7A3A9D0D7D0D7OEEOCA0A1A2ADDAADDBADDC 译码译码500KHzCLOCKSTARTGNDVREF(+)VREF(-)ALE+5VIN0IN1IN2IN3IN4IN5IN6IN7220h227h238h23fh IOR IOW微机原理与接口技术第4版机械工业出版社查询方式程序查询方式程序1 1; ;数据段数据段countercounter equ 8equ 8bufbufdb counter dup(0)db counter dup(0) ; ;设立数据缓冲区设立数据缓冲区; ;代码段代码段mov bx,offset bufmov bx,offset buf ;BX;BX缓冲区偏移地址缓冲区偏移地址mov cx,countermov cx,counter;CX;CX检测的数据个数检测的数据个数mov dx,220hmov dx,220h; ;从从IN0IN0开始转换开始转换start1:start1: out dx,alout dx,al; ;启动启动A/DA/D转换转换push dxpush dx微机原理与接口技术第4版机械工业出版社查询方式程序查询方式程序2 2mov dx,238hmov dx,238h; ;循环查询是否转换结束循环查询是否转换结束start2:start2: in al,dxin al,dx; ;读入状态信息读入状态信息test al,80htest al,80h;D7;D71 1,转换结束否,转换结束否? ?jz start2jz start2; ;没有结束,则继续查询没有结束,则继续查询pop dxpop dx; ;转换结束转换结束in al,dxin al,dx; ;读取数据读取数据mov bx,almov bx,al; ;存入缓冲区存入缓冲区inc bxinc bxinc dxinc dxloop start1loop start1; ;转向下一个模拟通道转向下一个模拟通道; ;数据处理数据处理掌握掌握82538253引脚、工作方式、编程和应用引脚、工作方式、编程和应用熟悉熟悉8255A8255A的结构特点和引脚功能的结构特点和引脚功能掌握掌握8255A8255A的方式的方式0/10/1的编程及应用的编程及应用掌握简易键盘编程和理解掌握简易键盘编程和理解PCPC机键盘的工作原理机键盘的工作原理掌握掌握LEDLED数码管编程数码管编程掌握起止式通信协议、掌握起止式通信协议、232C232C引脚定义和连接引脚定义和连接了解了解82508250的内部寄存器功能的内部寄存器功能理解异步通信适配器的初始化编程和通信程序理解异步通信适配器的初始化编程和通信程序了解模拟输入输出系统了解模拟输入输出系统熟悉熟悉DAC0832DAC0832和和ADC0809ADC0809理解理解DACDAC和和ADCADC芯片与主机连接问题芯片与主机连接问题掌握掌握ADCADC芯片的应用芯片的应用教教学学要要求求第第8 8章章 常用接口技术常用接口技术钱晓捷,微机原理与接口技术钱晓捷,微机原理与接口技术第第4 4版版基于基于IA-32IA-32处理器和处理器和3232位汇编语言位汇编语言第第8 8章章 习题习题8.1 8.1 简答题简答题8.2 8.2 判断题判断题8.3 8.3 填空题填空题8.6 8.10 8.11 8.128.6 8.10 8.11 8.128.14 8.20 8.218.14 8.20 8.21微机原理与接口技术第4版机械工业出版社 DMA DMA控制器控制器8237A8237A每每个个8237A8237A芯芯片片有有4 4个个DMADMA通通道道,就就是是有有4 4个个DMADMA控制器控制器每个每个DMADMA通道具有不同的优先权通道具有不同的优先权每个每个DMADMA通道可以分别允许和禁止通道可以分别允许和禁止每个每个DMADMA通道有通道有4 4种工作方式种工作方式一次传送的最大长度可达一次传送的最大长度可达64KB64KB多个多个8237A8237A芯片可以级连,扩展通道数芯片可以级连,扩展通道数微机原理与接口技术第4版机械工业出版社8237A8237A的内部结构和引脚的内部结构和引脚内部结构和外部引脚都相对比较复杂内部结构和外部引脚都相对比较复杂应用观点,内部主要由两类寄存器组成应用观点,内部主要由两类寄存器组成通道寄存器通道寄存器控制和状态寄存器控制和状态寄存器首先分类展开外部引脚首先分类展开外部引脚微机原理与接口技术第4版机械工业出版社1. 1. 请求与响应信号请求与响应信号DREQDREQ0DREQDREQ3:DMADMA通通道道请请求求。当当外外设设需需要要请请求求DMADMA服服务务时时,将将DREQDREQ信信号号置置成成有有效效电电平平,并并要保持到产生响应信号。要保持到产生响应信号。HRQHRQ:总总线线请请求求。8237A8237A输输出出有有效效的的HRQHRQ高高电电平平,向向CPUCPU申请使用系统总线。申请使用系统总线。HLDAHLDA:总总线线响响应应。8237A8237A接接受受来来自自CPUCPU的的响响应应信信号号HLDAHLDA,取得了总线的控制权。,取得了总线的控制权。DACKDACK0DACKDACK3:DMADMA通通道道响响应应。8237A8237A使使请请求求服服务的通道产生相应的务的通道产生相应的DMADMA响应信号。响应信号。微机原理与接口技术第4版机械工业出版社2. DMA2. DMA传送控制信号传送控制信号A A0A A7:地址线。输出低:地址线。输出低8 8位存储器地址。位存储器地址。DBDB0DBDB7:数数据据线线。输输出出高高8 8位位存存储储器器地地址址;在在存贮器与存贮器的传送期间,也用于数据传送存贮器与存贮器的传送期间,也用于数据传送ADSTBADSTB:地地址址选选通通。DMADMA传传送送开开始始时时,输输出出高高有有效效,把把在在DBDB0DBDB7上上输输出出的的高高8 8位位地地址址锁锁存存在在外外部锁存器中。部锁存器中。AENAEN:地地址址允允许许。输输出出高高有有效效,将将锁锁存存的的高高8 8位位地地址址送送入入系系统统总总线线,与与芯芯片片此此时时输输出出的的低低8 8位位地地址组成址组成1616位存储器地址。位存储器地址。微机原理与接口技术第4版机械工业出版社2. DMA2. DMA传送控制信号传送控制信号(续)(续)MEMR*MEMR*:存储器读。有效将数据从存储器读出:存储器读。有效将数据从存储器读出MEMW*MEMW*:存储器写。有效将数据写入存储器存储器写。有效将数据写入存储器IOR*IOR*:I/OI/O读。有效将数据从外设读出读。有效将数据从外设读出IOW*IOW*:I/OI/O写写。有效将数据写入外设有效将数据写入外设READYREADY:准准备备好好。DMA传传送送的的S S3下下降降沿沿检检测测到到为为低低时时,插插入入等等待待状状态态SwSw,直直到到READYREADY为为高高才才进进入入第第4 4个时钟周期个时钟周期S S4。EOP*EOP*:双双向向信信号号,过过程程结结束束。DMADMA传传送送过过程程结结束束,输输出出一一个个低低有有效效脉脉冲冲。若若外外部部输输入入低低脉脉冲冲信信号号,则终结则终结DMADMA传送。传送。 微机原理与接口技术第4版机械工业出版社3. 3. 处理器接口信号处理器接口信号DB0DB0DB7DB7:数数据据线线。用用于于8237A8237A与与微微处处理理器器进进行数据交换。行数据交换。A0A0A3A3:地址线。用以选择芯片内部寄存器。:地址线。用以选择芯片内部寄存器。CS*CS*:片片选选。低低有有效效时时,微微处处理理器器与与8237A8237A通通过过数据线通信,主要完成对数据线通信,主要完成对8237A8237A的编程。的编程。IOR*IOR*:I/OI/O读。读取读。读取8237A8237A内部寄存器。内部寄存器。IOW*IOW*:I/OI/O写。写入写。写入8237A8237A内部寄存器。内部寄存器。CLKCLK:时钟。控制芯片内部操作和数据传输。时钟。控制芯片内部操作和数据传输。RESETRESET:复位。使复位。使8237A处于初始状态。处于初始状态。微机原理与接口技术第4版机械工业出版社8237A8237A引脚示意图引脚示意图 微机原理与接口技术第4版机械工业出版社8237A8237A的两种工作状态的两种工作状态8237A具有两种工作状态具有两种工作状态空闲周期空闲周期:作为接口电路,受作为接口电路,受CPUCPU控制的工作状态控制的工作状态有效周期有效周期:作为作为DMACDMAC控制控制DMADMA传送的工作状态传送的工作状态于是,引脚分成两种作用于是,引脚分成两种作用微机原理与接口技术第4版机械工业出版社8237A8237A引脚的两种作用引脚的两种作用与与CPU连接连接(空闲周期)的引脚(空闲周期)的引脚与外设连接与外设连接(有效周期)的引脚(有效周期)的引脚CLK、RESETA0A3、CS*、DB0DB7IOR*、IOW*HRQ、HLDAAEN、ADSTB、READY、EOP*A0A7、DB0DB7IOR*、IOW*、MEMR*、MEMW*DREQ0DREQ3、DACK0DACK3微机原理与接口技术第4版机械工业出版社8237A8237A的工作时序的工作时序空闲周期空闲周期8237A8237A的任一通道都没有的任一通道都没有DMADMA请求时请求时8237A8237A由微处理器控制作为一个接口芯片由微处理器控制作为一个接口芯片CPUCPU可可对对8237A8237A编程,或从编程,或从8237A8237A读取状态读取状态8237A8237A采采样样CS*选选片片信信号号,该该信信号号有有效效,CPUCPU就就要对要对8237A8237A进行读进行读/ /写操作写操作8237A8237A还还采采样样通通道道的的请请求求输输入入信信号号DREQDREQ,该该信信号有效,就进入有效周期号有效,就进入有效周期进入有效周期进入有效周期微机原理与接口技术第4版机械工业出版社8237A8237A的工作时序的工作时序有效周期有效周期8237A8237A采采样样到到外外设设有有DMADMA请请求求,就就脱脱离离空空闲周期进入有效周期闲周期进入有效周期8237A8237A作作为为系系统统的的主主控控芯芯片片,控控制制DMADMA传传送操作送操作DMADMA传传送送借借用用系系统统总总线线完完成成,其其控控制制信信号以及工作时序类似号以及工作时序类似CPUCPU总线周期总线周期进入进入DMADMA传送时序传送时序微机原理与接口技术第4版机械工业出版社DMADMA传送时序传送时序DB0DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0A7 MEMR(IOR)IOW(MEMW)S S1 1状态状态输出输出16位存储器地址位存储器地址AENAEN输出高电平,表示输出高电平,表示DMA传送传送S S2 2状态状态输出输出DMA响应信号和控制信号响应信号和控制信号DMA读:读:MEMR*和和IOW*有效有效DMA写:写:IOR*和和MEMW*有效有效S S3 3和和Sw w状态状态检测数据传送是否能够完成,检测数据传送是否能够完成,决定是否插入等待状态决定是否插入等待状态SwS S4 4状态状态完成数据传送完成数据传送微机原理与接口技术第4版机械工业出版社8237A8237A的工作方式的工作方式DMADMA传送方式传送方式 单字节传送方式单字节传送方式 数据块传送方式数据块传送方式 请求传送方式请求传送方式 级连方式级连方式DMADMA传送类型传送类型 DMADMA读读 DMADMA写写 DMA DMA检验检验存储器到存储器的传送存储器到存储器的传送微机原理与接口技术第4版机械工业出版社1. DMA1. DMA传送单字节方式传送单字节方式每次每次DMADMA传送时仅传送一个字节传送时仅传送一个字节传传送送一一个个字字节节之之后后,字字节节数数寄寄存存器器减减1 1,地地址址寄存器加寄存器加1 1或减或减1 1,HRQHRQ变为无效变为无效8237A8237A释放系统总线,将控制权还给释放系统总线,将控制权还给CPUCPU若若传传送送后后使使字字节节数数从从0 0减减到到FFFFHFFFFH,则则终终结结DMADMA传送或重新初始化传送或重新初始化特点:特点:一次传送一个字节,效率略低一次传送一个字节,效率略低DMADMA传送之间传送之间CPUCPU有机会重新获取总线控制权有机会重新获取总线控制权微机原理与接口技术第4版机械工业出版社1. DMA1. DMA传送数据块方式传送数据块方式由由DREQDREQ启启动动就就连连续续地地传传送送数数据据,直直到到字字节节数数寄寄存存器器从从0 0减减到到FFFFHFFFFH终终止止计计数数,或或由外部输入有效信号终结由外部输入有效信号终结DMADMA传送传送DREQDREQ只需维持有效到只需维持有效到DACKDACK有效有效特点:特点:一次请求传送一个数据块,效率高一次请求传送一个数据块,效率高整个整个DMADMA传送期间传送期间CPUCPU长时间无法控制总线长时间无法控制总线(无法响应其他(无法响应其他DMADMA请求、无法处理中断等)请求、无法处理中断等)微机原理与接口技术第4版机械工业出版社1. DMA1. DMA传送请求方式传送请求方式DREQDREQ信号有效就连续传送数据信号有效就连续传送数据DREQDREQ信信号号无无效效,DMADMA传传送送被被暂暂时时中中止止,8237A8237A释释放总线,放总线,CPUCPU可继续操作可继续操作DMADMA通道的地址和字节数的中间值仍被保持通道的地址和字节数的中间值仍被保持DREQDREQ信号再次有效,信号再次有效,DMADMA传送就继续进行传送就继续进行如如果果字字节节数数寄寄存存器器从从0 0减减到到FFFFHFFFFH,或或者者由由外外部部送来一个有效的信号,将终止计数送来一个有效的信号,将终止计数特点:特点:DMADMA操作可由外设利用操作可由外设利用DREQDREQ信号控制传送的过程信号控制传送的过程微机原理与接口技术第4版机械工业出版社1. DMA1. DMA传送级连方式传送级连方式用于通过多个用于通过多个8237A8237A级连以扩展通道级连以扩展通道第第二二级级的的HRQHRQ和和HLDAHLDA信信号号连连到到第第一一级级某某个个通道的通道的DREQDREQ和和DACKDACK上上第第二二级级芯芯片片的的优优先先权权等等级级与与所所连连通通道道的的优先权相对应优先权相对应第第一一级级只只起起优优先先权权网网络络的的作作用用,实实际际的的操作由第二级芯片完成操作由第二级芯片完成还可由第二级扩展到第三级等还可由第二级扩展到第三级等微机原理与接口技术第4版机械工业出版社2. DMA2. DMA传送类型传送类型DMADMA读读把数据由存储器传送到外设把数据由存储器传送到外设由由MEMR*有有效效从从存存储储器器读读出出数数据据,由由IOW*有有效效把这一数据写入外设把这一数据写入外设DMADMA写写把外设输入的数据写入存储器把外设输入的数据写入存储器由由IOR*有有效效从从外外设设输输入入数数据据,由由MEMW*有有效效把把这一数据写入存储器。这一数据写入存储器。DMADMA检验检验空操作空操作8237A8237A不进行任何检验不进行任何检验外设可以进行外设可以进行DMADMA校验校验存储器和存储器和I/OI/O控制线保持无效,不进行传送控制线保持无效,不进行传送微机原理与接口技术第4版机械工业出版社3. 3. 存储器到存储器的传送存储器到存储器的传送固定使用通道固定使用通道0 0和通道和通道1 1通道通道0 0的地址寄存器存源区地址的地址寄存器存源区地址通通道道1 1的的地地址址寄寄存存器器存存目目的的区区地地址址,通通道道1 1的的字字节数寄存器存传送的字节数节数寄存器存传送的字节数传送由设置通道传送由设置通道0 0的软件请求启动的软件请求启动每传送一字节需用每传送一字节需用8 8个时钟周期个时钟周期前前4 4个个时时钟钟周周期期用用通通道道0 0地地址址寄寄存存器器的的地地址址从从源源区区读读数据送入数据送入8237A8237A的临时寄存器的临时寄存器后后4 4个个时时钟钟周周期期用用通通道道1 1地地址址寄寄存存器器的的地地址址把把临临时时寄寄存器中的数据写入目的区存器中的数据写入目的区微机原理与接口技术第4版机械工业出版社4. DMA4. DMA通道的优先权方式通道的优先权方式固定优先权方式固定优先权方式优先权固定优先权固定通通道道0 0优优先先权权最最高高,通通道道1 1其其次次,通通道道2 2再再次次,通道通道3 3最低最低循环优先权方式循环优先权方式优先权循环变化优先权循环变化最最近近一一次次服服务务的的通通道道在在下下次次循循环环中中变变成成最最低低优先权,其他通道依次轮流相应的优先权优先权,其他通道依次轮流相应的优先权DMADMA传送不存在嵌套传送不存在嵌套微机原理与接口技术第4版机械工业出版社5. 5. 自动初始化方式自动初始化方式每每当当DMADMA过过程程结结束束信信号号EOP*产产生生时时(不不论是内部终止计数还是外部输入该信号)论是内部终止计数还是外部输入该信号)用用基基地地址址寄寄存存器器和和基基字字节节数数寄寄存存器器的的内内容容,使使相相应应的的现现行行寄寄存存器器恢恢复复为为初初始始值值,包括恢复屏蔽位、允许包括恢复屏蔽位、允许DMADMA请求请求这样就作好了下一次这样就作好了下一次DMADMA传送的准备传送的准备微机原理与接口技术第4版机械工业出版社8237A8237A的寄存器的寄存器8237A8237A共共有有1010种种内内部部寄寄存存器器,对对它它们们的的操操作有时需要配合作有时需要配合3 3个软件命令个软件命令8237A8237A的的“软件命令软件命令”不需要通过数据总线写入控制字不需要通过数据总线写入控制字直接由地址和控制信号译码实现直接由地址和控制信号译码实现全部都用地址全部都用地址A A0 0A A3 3区分区分微机原理与接口技术第4版机械工业出版社82378237寄存器和软件命令的寻址寄存器和软件命令的寻址A3 A2 A1 A0A3 A2 A1 A0读操作(读操作(IOR*IOR*)写操作(写操作(IOW*IOW*)0 0 0 00 0 0 0通道通道0 0现行地址寄存器现行地址寄存器通道通道0 0地址寄存器地址寄存器0 0 0 10 0 0 1通道通道0 0现行字节数寄存器现行字节数寄存器通道通道0 0字节数寄存器字节数寄存器0 0 1 00 0 1 0通道通道1 1现行地址寄存器现行地址寄存器通道通道1 1地址寄存器地址寄存器0 0 1 10 0 1 1通道通道1 1现行字节数寄存器现行字节数寄存器通道通道1 1字节数寄存器字节数寄存器0 1 0 00 1 0 0通道通道2 2现行地址寄存器现行地址寄存器通道通道2 2地址寄存器地址寄存器0 1 0 10 1 0 1通道通道2 2现行字节数寄存器现行字节数寄存器通道通道2 2字节数寄存器字节数寄存器0 1 1 00 1 1 0通道通道3 3现行地址寄存器现行地址寄存器通道通道3 3地址寄存器地址寄存器0 1 1 10 1 1 1通道通道3 3现行字节数寄存器现行字节数寄存器通道通道3 3字节数寄存器字节数寄存器1 0 0 01 0 0 0状态寄存器状态寄存器命令寄存器命令寄存器1 0 0 11 0 0 1- -请求寄存器请求寄存器1 0 1 01 0 1 0- -单通道屏蔽字单通道屏蔽字1 0 1 11 0 1 1- -方式寄存器方式寄存器1 1 0 01 1 0 0- -清高清高/ /低触发器命令低触发器命令1 1 0 11 1 0 1临时寄存器临时寄存器主清除命令主清除命令1 1 1 01 1 1 0- -清屏蔽寄存器命令清屏蔽寄存器命令1 1 1 11 1 1 1- -主屏蔽字主屏蔽字微机原理与接口技术第4版机械工业出版社1. 1. 现行地址寄存器现行地址寄存器保持保持DMADMA传送的当前地址值传送的当前地址值每次传送后该寄存器的值自动加每次传送后该寄存器的值自动加1 1或减或减1 1这个寄存器的值可由这个寄存器的值可由CPUCPU写入和读出写入和读出基地址寄存器基地址寄存器存放存放初始值初始值微机原理与接口技术第4版机械工业出版社2. 2. 现行字节数寄存器现行字节数寄存器保持保持DMA传送的剩余字节数传送的剩余字节数每次传送后,该寄存器的值减每次传送后,该寄存器的值减1这个寄存器的值可由这个寄存器的值可由CPU写入和读出写入和读出该该寄寄存存器器的的值值减减至至0,再再减减1(从从0减减到到FFFFH)时,终止计数)时,终止计数基字节数寄存器基字节数寄存器存放存放初始值初始值传送传送N N个字节,个字节,初始值初始值为为N N1 1微机原理与接口技术第4版机械工业出版社读写通道寄存器读写通道寄存器CPUCPU与与8237A8237A之之间间通通过过8 8位位数数据据总总线线交交换换信信息,息,8237A8237A的通道寄存器均为的通道寄存器均为1616位位需需要要两两次次读读写写操操作作才才能能实实现现CPUCPU与与8237A8237A之间的一个完整数据的交换之间的一个完整数据的交换8237A8237A内内含含一一个个高高/ /低低触触发发器器,用用来来控控制制读写通道寄存器的高、低字节读写通道寄存器的高、低字节微机原理与接口技术第4版机械工业出版社高高/ /低触发器低触发器该触发器为该触发器为0 0,控制读写低字节,控制读写低字节该触发器为该触发器为1 1,控制读写高字节,控制读写高字节软、硬件复位后,触发器为软、硬件复位后,触发器为0 0每每次次读读写写通通道道寄寄存存器器,自自动动改改变变触触发发器器状状态态。如如果果对对1616位位寄寄存存器器的的操操作作用用两两次次连续读写进行,就不必清除这个触发器连续读写进行,就不必清除这个触发器清清除除高高/低低触触发发器器软软件件命命令令(A3A2A1A01100)将使高)将使高/低触发器清零低触发器清零微机原理与接口技术第4版机械工业出版社3 3个个软件命令软件命令清除高清除高/低触发器软件命令低触发器软件命令A3A2A1A01100,使高,使高/低触发器清零低触发器清零主清除命令主清除命令A A3 3A A2 2A A1 1A A0 011011101,使高使高/ /低触发器清零低触发器清零还使命令、状态、请求、临时寄存器清零还使命令、状态、请求、临时寄存器清零使屏蔽寄存器置为全使屏蔽寄存器置为全1 1(禁止(禁止DMA请求)请求)主清除命令与硬件的主清除命令与硬件的RESETRESET信号具有相同的功能信号具有相同的功能清屏蔽寄存器命令清屏蔽寄存器命令A A3 3A A2 2A A1 1A A0 011101110,使使4 4个屏蔽位都清零(允许个屏蔽位都清零(允许DMADMA请求)请求)微机原理与接口技术第4版机械工业出版社思考问题思考问题 82538253的的计计数数器器、82508250的的除除数数寄寄存存器器都都是是1616位位的的,但但这这2 2个个芯芯片片的的数数据据线线都都是是8 8位位的的。分分别别说说明明它它们们各各采采用用什什么么方方法法通通过过8 8位位数数据据线线操作操作1616位寄存器?位寄存器?微机原理与接口技术第4版机械工业出版社5. 5. 模式寄存器模式寄存器存放相应通道的方式控制字存放相应通道的方式控制字选择某个选择某个DMADMA通道的工作方式通道的工作方式其中用最低其中用最低2 2位选择哪个位选择哪个DMADMA通道通道请看请看方式字方式字的格式的格式微机原理与接口技术第4版机械工业出版社方式字格式方式字格式D7 D6D5D4D3 D2D1 D000 请求模式请求模式01 单字节模式单字节模式10 数据块模式数据块模式11 级联模式级联模式0 地地址址增增量量(加加1)1 地地址址减减量量(减减1)0 禁止自动初始化禁止自动初始化1 允许自动初始化允许自动初始化00DMA校验校验01DMA写写10DMA读读11非法非法若若D7D61100 通道通道001 通道通道110 通道通道211 通道通道3微机原理与接口技术第4版机械工业出版社6. 6. 命令寄存器命令寄存器存放存放8237A8237A的命令字的命令字设置设置8237A8237A芯片的操作方式芯片的操作方式影响每个影响每个DMADMA通道通道复位时使命令寄存器清零复位时使命令寄存器清零设置设置D D2 21 1才使才使8237A8237A可以作为可以作为DMADMA控制器控制器请看请看命令字命令字的格式的格式微机原理与接口技术第4版机械工业出版社命令字格式命令字格式D7D6D5D4D3D2D1D00 DACK低有效低有效1 DACK高有效高有效0 DREQ高有效高有效1 DREQ低有效低有效0 滞后写滞后写1 扩展写扩展写 若若D310 固定优先权固定优先权1 循环优先权循环优先权0 正常时序正常时序1 压缩时序压缩时序 若若D010 允许允许DMAC工作工作1 禁止禁止DMAC工作工作0 允许通道允许通道0地址改变地址改变1 禁止通道禁止通道0地址改变地址改变 若若D000 禁止存储器之间传送禁止存储器之间传送1 允许存储器之间传送允许存储器之间传送微机原理与接口技术第4版机械工业出版社7. 7. 请求寄存器请求寄存器存放软件存放软件DMADMA请求状态请求状态除除硬硬件件DMADMA请请求求外外,当当工工作作在在数数据据块块传传送送方式时也可以通过软件发出方式时也可以通过软件发出DMADMA请求请求若若是是存存贮贮器器到到存存贮贮器器传传送送,则则必必须须由由软软件请求启动通道件请求启动通道0 0请看请看请求字请求字的格式的格式微机原理与接口技术第4版机械工业出版社请求字格式请求字格式D7 D6 D5 D4 D3D2D1 D0任意任意0 复位复位1 置位置位00 通道通道001 通道通道110 通道通道211 通道通道3微机原理与接口技术第4版机械工业出版社8. 8. 屏蔽寄存器屏蔽寄存器控控制制外外设设硬硬件件DMADMA请请求求是是否否被被响响应应(为为0 0允允许许),各个通道互相独立。各个通道互相独立。3 3种方法:种方法:单通道屏蔽字只对一个单通道屏蔽字只对一个DMADMA通道屏蔽位进行设置通道屏蔽位进行设置主屏蔽字对主屏蔽字对4 4个个DMADMA通道屏蔽位同时进行设置通道屏蔽位同时进行设置清屏蔽寄存器命令使清屏蔽寄存器命令使4 4个屏蔽位都清零(允许)个屏蔽位都清零(允许)复位使复位使4 4个通道全置于屏蔽状态个通道全置于屏蔽状态当当一一个个通通道道的的DMADMA过过程程结结束束,如如果果不不是是工工作作在在自自动动初初始始化化方方式式,则则这这一一通通道道的的屏屏蔽蔽位位置置位位,必必须再次编程为允许,才能进行下次须再次编程为允许,才能进行下次DMADMA传送传送请看请看屏蔽字屏蔽字的格式的格式微机原理与接口技术第4版机械工业出版社单通道屏蔽字格式单通道屏蔽字格式D7 D6 D5 D4 D3D2D1 D0任意任意0 清屏蔽位清屏蔽位1 置屏蔽位置屏蔽位00 通道通道001 通道通道110 通道通道211 通道通道3微机原理与接口技术第4版机械工业出版社主屏蔽字格式主屏蔽字格式D7 D6 D5 D4D3D2D1D0任意任意Di0 清通道清通道I屏蔽位屏蔽位Di1 置通道置通道I屏蔽位屏蔽位微机原理与接口技术第4版机械工业出版社9. 9. 状态寄存器状态寄存器可由可由CPUCPU读取读取低低4 4位位反反映映读读命命令令这这个个瞬瞬间间每每个个通通道道是是否否产生产生TCTC(为(为1 1,表示该通道传送结束),表示该通道传送结束)高高4 4位位反反映映每每个个通通道道的的DMADMA请请求求情情况况(为为1 1,表示该通道有请求),表示该通道有请求)状态位在复位或被读出后,均被清零状态位在复位或被读出后,均被清零微机原理与接口技术第4版机械工业出版社10. 10. 临时寄存器临时寄存器在在存存储储器器到到存存储储器器的的传传送送方方式式下下,临临时时寄寄存存器器保保存存从从源源存存储储单单元元读读出出的的数数据据,该数据又被写入到目的存储单元该数据又被写入到目的存储单元传传送送完完成成,临临时时寄寄存存器器只只会会保保留留最最后后一一个字节,可由个字节,可由CPUCPU读出读出复位使临时寄存器内容为零复位使临时寄存器内容为零微机原理与接口技术第4版机械工业出版社8237A8237A的编程的编程8327A8327A芯芯片片的的初初始始化化编编程程:只只要要写写入入命命令令寄存器寄存器可先输出主清除命令,进行软件复位可先输出主清除命令,进行软件复位然后写入命令字然后写入命令字命令字影响所有命令字影响所有4 4个通道的操作个通道的操作微机原理与接口技术第4版机械工业出版社 8237A 8237A的编程的编程(续(续1 1)DMADMA通道的通道的DMADMA传送编程:传送编程:将将存存储储器器起起始始地地址址写写入入地地址址寄寄存存器器(如如果果采采用用地地址减量工作,则是结尾地址)址减量工作,则是结尾地址)将将本本次次DMADMA传传送送的的数数据据个个数数写写入入字字节节数数寄寄存存器器(个个数要减数要减1 1)确定通道的工作方式,写入方式寄存器确定通道的工作方式,写入方式寄存器写入屏蔽寄存器复位通道屏蔽位,允许写入屏蔽寄存器复位通道屏蔽位,允许DMADMA请求请求请看实例请看实例微机原理与接口技术第4版机械工业出版社DMA通道0的刷新编程out 0dh,al;DMAC主清除命令主清除命令mov al,0out 08h,al;DMAC命令字命令字mov al,0out 00h,al;通道通道0的地址寄存器低字节的地址寄存器低字节out 00h,al;通道通道0的地址寄存器高字节的地址寄存器高字节mov al,0ffhout 01h,al;通道通道0的字节数寄存器低字节的字节数寄存器低字节out 01h,al;通道通道0的字节数寄存器高字节的字节数寄存器高字节mov al,58h out 0bh,al;通道通道0模式字模式字mov al,0out 0ah,al;通道通道0屏蔽字屏蔽字IBM PC/XT微机原理与接口技术第4版机械工业出版社8237A8237A的编程的编程(续(续2 2)两两种种方方法法反反映映DMADMA过过程程结结束束(即即终终止止计计数、发生数、发生TCTC):):状态寄存器的低状态寄存器的低4 4位位信号(需配合信号(需配合DACKDACK响应信号确定通道)响应信号确定通道)应用程序处理应用程序处理DMA传送过程结束:传送过程结束:采用软件查询状态字采用软件查询状态字采用硬件中断在中断服务程序处理采用硬件中断在中断服务程序处理微机原理与接口技术第4版机械工业出版社8237A8237A在在IBM PCIBM PC系列机上的应用系列机上的应用IBM PC/XTIBM PC/XT机使用一片机使用一片8237A8237A通道通道0 0:动态存贮器动态存贮器DRAMDRAM刷新刷新通道通道1 1:用户使用或用户使用或SDLCSDLC卡卡通道通道2 2:内存与软盘的高速数据交换内存与软盘的高速数据交换通道通道3 3:内存与硬盘的高速数据交换内存与硬盘的高速数据交换IBM PC/ATIBM PC/AT机机采用两片采用两片8237A8237ADMAC1DMAC1包含通道包含通道0 03 3,支持支持8 8位数据传送位数据传送DMAC2DMAC2组组成成通通道道4 47 7,通通道道57 7支支持持1616位位数数据传送,通道据传送,通道4用于级连用于级连微机原理与接口技术第4版机械工业出版社 DMA DMA写传送写传送CLKDCLK D0D7Q +5V外设数据外设数据外设外设DMA请求请求74LS37474LS74RESETDRQ1 DACK1IOROERS微机原理与接口技术第4版机械工业出版社通道1工作方式mov al,45h;通道通道1方式字:方式字:;单字节写传送,地址增量,非自动初始化单字节写传送,地址增量,非自动初始化out 0bh,alnop;延时延时nopout 0ch,al;清高清高/低触发器命令低触发器命令DMA写传送微机原理与接口技术第4版机械工业出版社通道1起始地址mov al,0out 02h,al;写入低写入低8位地址到地址寄存器位地址到地址寄存器mov al,45hout 02h,al;写入高写入高8位地址到地址寄存器位地址到地址寄存器 DMA写传送微机原理与接口技术第4版机械工业出版社通道1传送字节数mov ax,2048-1;AX传送字节数减传送字节数减1out 03h,al;送字节数低送字节数低8位到字节数寄存器位到字节数寄存器mov al,ahout 03h,al;送字节数高送字节数高8位到字节数寄存器位到字节数寄存器mov al,01out 0ah,al;单通道屏蔽字:允许通道单通道屏蔽字:允许通道1的的DMA请求请求;其他工作其他工作DMA写传送微机原理与接口技术第4版机械工业出版社通道1传送结束判断dmalp:in al,08h;读状态寄存器读状态寄存器and al,02h;判断通道判断通道1是否传送结束是否传送结束jz dmalp;没有结束,则循环等待没有结束,则循环等待;传送结束,处理转换数据传送结束,处理转换数据DMA写传送DMADMA传送过程结束的判断:传送过程结束的判断:软件查询方式软件查询方式微机原理与接口技术第4版机械工业出版社习题习题7.77.7参参看看图图7-57-5,编编程程实实现现以以下下功功能能:当当K0K0键键单单独独按按下下时时,发发光光二二极极管管L0L0L7L7将将依依次次点点亮亮(L0L0,L1L1,L2L2,L7L7),每每个个维维持持200ms200ms;当当K1K1键键单单独独按按下下时时,发发光光二二极极管管L0L0L7L7将将反反向向依依次次点点亮亮(L7L7,L6L6,L5L5,L0L0),每每个个也也维维持持200ms200ms;在在其其他他情情况况下下各各发发光光二二极极管管均均不不点点亮亮。假假定定有有延延时时200ms200ms的的子子程程序序DELAYDELAY可直接调用。可直接调用。微机原理与接口技术第4版机械工业出版社习题习题7.77.7解答(解答(1 1)again:again:mov dx,8000hmov dx,8000hin al,dxin al,dxcmp al,0fehcmp al,0feh ; D7; D7D0D011111110B 11111110B ?jz next1jz next1; ; 单独按下单独按下K0K0,转移到,转移到next1next1cmp al,0fdhcmp al,0fdh ; D7; D7D0D011111101B 11111101B ?jz next2jz next2; ; 单独按下单独按下K1K1,转移到,转移到next2next2jmp againjmp again; ; 其它情况不点亮其它情况不点亮微机原理与接口技术第4版机械工业出版社习题习题7.77.7解答(解答(2 2)next1:next1:mov cx,8mov cx,8 mov al,1 mov al,1 ; ; 从从K0K0开始开始next11:next11:out dx,alout dx,al; ; 某个某个LEDLED电亮电亮 call delay call delay; ; 延时延时200ms200ms shl al,1 shl al,1 ; rol al,1 ; rol al,1 loop next11 loop next11 jmp again jmp again微机原理与接口技术第4版机械工业出版社习题习题7.77.7解答(解答(3 3)next2: mov cx,8next2: mov cx,8 mov al,80h mov al,80h; ; 从从K7K7开始开始next21: out dx,alnext21: out dx,al ; ; 某个某个LEDLED电亮电亮 call delay call delay; ; 延时延时200ms200ms shr al,1 shr al,1; ror al,1; ror al,1 loop next21 loop next21 jmp againjmp again微机原理与接口技术第4版机械工业出版社习题习题7.87.8现现有有一一个个输输入入设设备备,其其数数据据端端口口地地址址为为FFE0HFFE0H,状状态态端端口口地地址址为为FFE2HFFE2H。当当状状态态标标志志D0D01 1时时,表表明明一一个个字字节节的的输输入入数数据据就就绪绪。请请编编写写利利用用查查询询方方式式进进行行数数据据传传送送的的程程序序段段,要要求求从从该该设设备备读读取取100100个个字字节节保保存存到到BUFFERBUFFER缓冲区。缓冲区。微机原理与接口技术第4版机械工业出版社习题习题7.87.8解答解答 mov bx, offset buffer mov bx, offset buffer mov cx,100 mov cx,100again: mov dx,0ffe2hagain: mov dx,0ffe2hstatus:in al,dxstatus:in al,dx ; ; 查询一次查询一次 test al,01h test al,01h jz status jz status mov dx,0ffe0h mov dx,0ffe0h in al,dx in al,dx; ; 输入一个字节输入一个字节 mov bx,al mov bx,al inc bx inc bx loop again loop again; ; 循环,输入循环,输入100100个字节个字节微机原理与接口技术第4版机械工业出版社习题习题7.97.9某某个个字字符符输输出出设设备备,其其数数据据端端口口和和状状态态端端口口的的地地址址均均为为80H80H。在在读读取取状状态态时时,当当标标志志位位D7D70 0时时,表表明明该该设设备备闲闲,可可以以接接收收一一个个字字符符。请请编编写写利利用用查查询询方方式式进进行行数数据据传传送送的的程程序序段段,要要求求将将存存放放于于缓缓冲冲区区ADDRADDR处处的的一一串串字字符(以符(以0 0为结束标志)输出给该设备。为结束标志)输出给该设备。微机原理与接口技术第4版机械工业出版社习题习题7.97.9解答解答 mov bx,offset addr mov bx,offset addragain: cmp byte ptr bx,0again: cmp byte ptr bx,0 jz done jz donestatus:in al,80hstatus:in al,80h; ; 查询查询 test al,80h test al,80h jnz status jnz status mov al,bx mov al,bx out 80h,al out 80h,al; ; 输出一个字节输出一个字节 inc bx inc bx jmp again jmp again ; ; 循环循环微机原理与接口技术第4版机械工业出版社补充题补充题1 1已已知知82538253的的计计数数时时钟钟频频率率为为1MHZ1MHZ若若要要求求82538253的的计计数数通通道道2 2每每隔隔8ms8ms向向CPUCPU申申请请一一次次中中断断,则则如如何何对对82538253进进行行编编程程设设置置?82538253计计数数器器0 0、1 1、2 2和和控控制制端端口口地地址址依依次次为为:304H304H、305H305H、306H306H、307H307H。微机原理与接口技术第4版机械工业出版社补充题补充题1 1解答解答根根据据题题意意要要求求产产生生周周期期为为8ms8ms的的连连续续脉脉冲冲,故故可可采采用用82538253的的方方式式2 2和和3 3。由由于于输输出出脉脉冲冲的的周周期期是是8ms8ms,故故其其频频率率是是1/8101/8103 3,所所以以计计数数初初值值是是10106 6(1/8101/8103 3)=8000=8000。控控制制字字是是101110B=B4H101110B=B4H,B6HB6H,BCHBCH,BEHBEH。微机原理与接口技术第4版机械工业出版社补充题补充题2 2试试编编写写一一个个程程序序段段,要要求求在在计计数数操操作作进进行行过过程程中中读读取取计计数数器器2 2的的内内容容,并并把把读读取取的的数数值值装入装入AXAX寄存器,端口地址为寄存器,端口地址为304H307H304H307H。微机原理与接口技术第4版机械工业出版社补充题补充题2 2解答解答 本本题题应应先先使使用用82538253的的锁锁存存命命令令将将计计数数器器2 2的的内内容容锁锁存起来,然后用读命令从锁存器中读取。存起来,然后用读命令从锁存器中读取。mov dxmov dx,307H307Hmov almov al,10000000B10000000Bout dxout dx,alalmov dxmov dx,306H306Hin alin al,dxdxmov blmov bl,alalin alin al,dxdxmov ahmov ah,alalmov almov al,blbl微机原理与接口技术第4版机械工业出版社补充题补充题3 3分分别别对对8255A8255A的的控控制制端端口口写写入入80H80H和和08H08H,它它们的作用各是什么?们的作用各是什么?微机原理与接口技术第4版机械工业出版社补充题补充题4 4当当8255A8255A的的PC4PC4PC7PC7全全部部为为输输出出线线时时,请请问问此此时时能能否否确确定定A A端端口口的的工工作作方方式式是是什什么么?为为什么?什么?微机原理与接口技术第4版机械工业出版社补充题补充题5 5利利用用并并行行接接口口8255A8255A与与A/DA/D转转换换器器ADC0809ADC0809连连接接的的电电路路如如图图所所示示。当当主主机机需需要要某某个个模模拟拟输输入入通通道道的的数数据据时时,8255A8255A的的PC4PC4输输出出一一个个高高脉脉冲冲信信号号启启动动A/DA/D转转换换;同同时时从从PC5PC5PC7PC7输输出出该该模模拟拟通通道道的的编编码码。ADC0809ADC0809转转换换结结束束提提供供一一个个高高电电平平信信号号EOCEOC连连接接8255A8255A的的PC0PC0。由由于于ADC0809ADC0809的的输输出出允允许许信信号号OEOE一一直直接接高高电电平平有有效效,所所以以数数字字量量在在转转换换结结束束的的同同时时送送给给连连接接于于8255A8255A的的端端口口B B。假假定定8255A8255A端端口口A A、B B、C C及及控控制制端端口口的的地地址址依依次次为为FFF0HFFF0HFFF3HFFF3H。要要求求编编写写8255A8255A的的初初始始化化程程序序段段,编编写写依依次次启启动动8 8个个模模拟拟通通道道进进行行A/DA/D转转换换、采采用用查查询询方方式式读读取取数数据据的的程程序序段段,8 8个个数数字字量量数数据据存存放放在在数数据据段段bufferbuffer变变量量指指示的缓冲区。示的缓冲区。微机原理与接口技术第4版机械工业出版社补充题补充题5 5图图VccD0D7OEEOCADDAADDBADDC8通道模拟输入(05V)500KHzCLOCKSTARTGNDVREF(+)VREF(-)ALE+5VIN0IN1IN2IN3IN4IN5IN6IN78255APB0PB7PC0PC4PC5PC6PC7ADC0809微机原理与接口技术第4版机械工业出版社补充题补充题5 5解答(解答(1 1); ;数据段数据段bufferbufferdb 8 dup(0)db 8 dup(0); ;设立数据缓冲区设立数据缓冲区;8255A;8255A初始化程序段初始化程序段mov al,83Hmov al,83H;1001000011B0011B83H83H,93H93Hmov dx,0fff3hmov dx,0fff3hout dx,alout dx,almov al,08hmov al,08h;使启动信号为低电平;使启动信号为低电平out dx,alout dx,al微机原理与接口技术第4版机械工业出版社补充题补充题5 5解答(解答(2 2);A/D;A/D转换程序段转换程序段mov bx,offset buffermov bx,offset buffer;BX;BX数数据据缓缓冲冲区区偏偏移移地址地址mov cx,8mov cx,8;CX;CX检测的数据个数检测的数据个数mov al,10hmov al,10h; ;从从IN0IN0开始转换开始转换mov dx,0fff2h mov dx,0fff2h start1:start1:out dx,alout dx,al ; ;启启动动A/DA/D转转换换,使使启启动动信信号号为高电平为高电平push axpush axand al,0e0hand al,0e0hout dx,alout dx,al;使使启启动动信信号号为为低低电电平平,形形成成高高脉脉冲冲微机原理与接口技术第4版机械工业出版社补充题补充题5 5解答(解答(3 3); ;循环查询是否转换结束循环查询是否转换结束start2:start2:in al,dxin al,dx ; ;读入状态信息读入状态信息test al,01htest al,01h ;D0;D0?,转换结束否?,转换结束否? ?jz start2jz start2;D0;D00 0,没没有有结结束束,则则继继续续查查询询dec dxdec dx ;D0;D01 1,转换结束,转换结束in al,dxin al,dx; ;读取数据读取数据mov bx,almov bx,al ; ;存入缓冲区存入缓冲区inc bxinc bxinc dxinc dx微机原理与接口技术第4版机械工业出版社补充题补充题5 5解答(解答(4 4)pop axpop axpush cxpush cxmov cl,4mov cl,4shr al,clshr al,cladd al,2add al,2shl al,clshl al,clpop cxpop cxloop start1loop start1; ;转转向向下下一一个个模模拟拟通通道道进进行行检检测测; ;数据处理数据处理
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号