可编程接口芯片8254及应用课件.ppt
68页第第7 7章章 可编程定时器可编程定时器/ /计数器芯片计数器芯片82548254概述概述可编程计数器可编程计数器/定时器芯片定时器芯片82548254在在PC机中的应用机中的应用1可编程接口芯片8254及应用7.1 定时器和计数器概述定时控制在微机系统中极为重要定时控制在微机系统中极为重要[定时器定时器]由数字电路中的计数电路构成,由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔定时器强调的是精确的时准确的时间间隔定时器强调的是精确的时间2可编程接口芯片8254及应用定时举例:定时举例:①①一天一天24小时的计时,称为日时钟小时的计时,称为日时钟②②在监测系统中,对被测点的定时取样在监测系统中,对被测点的定时取样③③在读键盘时,为去抖,一般延迟一段时间,再在读键盘时,为去抖,一般延迟一段时间,再读④④在微机控制系统中,控制某工序定时启动在微机控制系统中,控制某工序定时启动3可编程接口芯片8254及应用[计数电路计数电路]如果记录外设提供的具有一定随机性如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为外设的某种状态),常又称为计数器。
计数器计数举例:计数举例:①①对零件和产品的计数;对零件和产品的计数;②②对大桥和高速公路上车流量的统计对大桥和高速公路上车流量的统计4可编程接口芯片8254及应用定时功能的实现方法软件延时软件延时——是利用是利用CPU每执行一条指令都需要每执行一条指令都需要几个固定的指令周期的原理,运用软件编程的方式几个固定的指令周期的原理,运用软件编程的方式进行定时利用微处理器执行一个延时程序段实现进行定时利用微处理器执行一个延时程序段实现不可编程的硬件定时不可编程的硬件定时——采用分频器、单稳电路或采用分频器、单稳电路或简易定时电路控制定时时间简易定时电路控制定时时间可编程的硬件定时可编程的硬件定时——软件硬件相结合、用可编程软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路定时器芯片构成一个方便灵活的定时电路5可编程接口芯片8254及应用7.2 8253/8254定时计数器3个独立的个独立的16位计数器通道位计数器通道每个计数器有每个计数器有6种工作方式,按二进制或十进制种工作方式,按二进制或十进制((BCD码)计数码)计数每个计数器在开始工作前必须预制时间常数每个计数器在开始工作前必须预制时间常数 每个计数器在工作过程中的当前计数值可被每个计数器在工作过程中的当前计数值可被CPU读出。
注:时间常数也可在计数过程中更改)读出注:时间常数也可在计数过程中更改)8254是是8253的改进型的改进型6可编程接口芯片8254及应用 8253/8254的内部结构和引脚D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT27可编程接口芯片8254及应用计数器结构示意图预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器v计数初值存于计数初值存于预置预置寄存器寄存器;;v在计数过程中,在计数过程中,减减1计数器计数器的值不断的值不断递减,而预置寄存递减,而预置寄存器中的预置不变器中的预置不变v输出锁存器输出锁存器用于写用于写入锁存命令时,入锁存命令时,锁定当前计数值锁定当前计数值8可编程接口芯片8254及应用1 计数器的3个引脚CLK时钟输入信号时钟输入信号——在计数过程中,此引脚上在计数过程中,此引脚上每输入一个时钟信号(每输入一个时钟信号(下降沿下降沿),计数器的计数值),计数器的计数值减减1GATE门控输入信号门控输入信号——控制计数器工作,可分成控制计数器工作,可分成电平控制电平控制和和上升沿控制上升沿控制两种类型两种类型OUT计数器输出信号计数器输出信号——当一次计数过程结束当一次计数过程结束(计数值减为(计数值减为0),),OUT引脚上将产生一个输出信号引脚上将产生一个输出信号9可编程接口芯片8254及应用2 与处理器接口D0 ~ D7数据线数据线 A0 ~ A1地址线地址线RD读信号读信号 WR写信号写信号CS片选信号片选信号10可编程接口芯片8254及应用由控制字格式中由控制字格式中SC1,,SC0位位决定属于哪个计数器决定属于哪个计数器选中控制寄存器选中控制寄存器10110读输出锁存器读输出锁存器OL当前值当前值01对计数器寄存器对计数器寄存器CR送初值送初值选中计数器选中计数器2#10010读输出锁存器读输出锁存器OL当前值当前值01对计数器寄存器对计数器寄存器CR送初值送初值选中计数器选中计数器1#10100读输出锁存器读输出锁存器OL当前值当前值01对计数器寄存器对计数器寄存器CR送初值送初值选中计数器选中计数器0#10000功功 能能A0A1CSWRRD11可编程接口芯片8254及应用8254的工作方式8254有有6种工作方式,由种工作方式,由方式控制字方式控制字确定确定熟悉每种工作方式的特点熟悉每种工作方式的特点才能根据实际应用才能根据实际应用问题,选择正确的工作方式问题,选择正确的工作方式不同工作方式的区分点:不同工作方式的区分点:v输出波形输出波形v计数过程中门控信号的影响计数过程中门控信号的影响v启动触发方式启动触发方式12可编程接口芯片8254及应用每种工作方式的过程类似:每种工作方式的过程类似:⑴⑴ 设定工作方式设定工作方式⑵⑵ 设定计数初值设定计数初值〔〔 ⑶⑶ 硬件启动硬件启动 〕〕⑷⑷ 计数初值进入减计数初值进入减1计数器计数器⑸⑸ 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程⑹⑹ 计数过程结束计数过程结束13可编程接口芯片8254及应用方式0 计数结束中断(一次有效)写入控制字之后,相应的输出信号写入控制字之后,相应的输出信号OUT就开就开始变成低电平。
始变成低电平计数器写完计数值时,开始计数当计数器计数器写完计数值时,开始计数当计数器减到零时,减到零时,OUT立即输出高电平立即输出高电平14可编程接口芯片8254及应用①①②②⑤⑤④④⑥⑥GATEOUTCLK 031244方式方式0WR①①设设定定工工作作方方式式②②设设定定计计数数初初值值④④计计数数值值送送入入计计数数器器⑤⑤计计数数过过程程⑥⑥计计数数结结束束15可编程接口芯片8254及应用方式0门控信号门控信号GATE位高电平时,计数器工作;为位高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变低电平时,计数器停止工作,计数值保持不变在计数器工作期间,如果重新写入新的计数值,在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作计数器将按新写入的计数值重新工作16可编程接口芯片8254及应用82548254的方式的方式0 0时序波形时序波形n=5n=5CLKCLKOUTOUTWRWR①5 54 43 32 21 10 0n=5n=5WRWRGATEGATEOUTOUT②5 54 43 32 21 10 04 44 4WRWROUTOUT③n=9n=99 98 8n=4n=44 43 32 21 10 017可编程接口芯片8254及应用方式1 可编程单稳脉冲写入计数初值后,计数器并不立即开始工作;写入计数初值后,计数器并不立即开始工作;等待到等待到GATE上升沿,才开始工作,使输出上升沿,才开始工作,使输出OUT变成低电平;变成低电平;直到计数器值减到零后,输出才变高电平。
直到计数器值减到零后,输出才变高电平计数到计数到0,初值自动重置,但要等到下一个,初值自动重置,但要等到下一个GATE上升沿触发才重新计数上升沿触发才重新计数[单稳态触发器单稳态触发器]只有一个稳态(高电平),一只有一个稳态(高电平),一个触发脉冲使触发器进入暂稳态(低电平),经个触发脉冲使触发器进入暂稳态(低电平),经过一段可调的时间间隔后,又回到稳态所以工过一段可调的时间间隔后,又回到稳态所以工作于方式作于方式1时相当于一个可重复触发的单稳态触发时相当于一个可重复触发的单稳态触发器18可编程接口芯片8254及应用①①②②⑤⑤④④⑥⑥①①设设定定工工作作方方式式②②设设定定计计数数初初值值③③③③硬硬件件启启动动④④计计数数值值送送入入计计数数器器⑤⑤计计数数过过程程⑥⑥计计数数结结束束GATEOUTCLK 031244方式方式1WR19可编程接口芯片8254及应用方式1在计数器工作期间,当在计数器工作期间,当GATE又出现一个上升又出现一个上升沿时,计数器重新装入原计数初值并重新开始计沿时,计数器重新装入原计数初值并重新开始计数 如果工作期间对计数器写入新的计数初值,则如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。
现上升沿后,才按新写入的计数初值开始工作20可编程接口芯片8254及应用8254的的1方式时序波形方式时序波形OUTOUT②② 4 43 32 21 1GATEGATE4 40 0n=4n=4CLKCLKGATEGATEWRWROUTOUT①① 4 43 32 21 10 0n=3n=3WRWR③③n=2n=2OUTOUT 3 32 21 10 02 21 10 0GATEGATE21可编程接口芯片8254及应用方式2 频率发生器(分频器)写入控制字之后,输出端写入控制字之后,输出端OUT变为高电平变为高电平计数器写完计数值时,开始计数当计数器计数器写完计数值时,开始计数当计数器减到减到1时时,,OUT变为低电平变为低电平完成一次计数过程,输出端完成一次计数过程,输出端OUT又变为高电平,开始又变为高电平,开始一个新的计数过程,周而复始一个新的计数过程,周而复始对于计数初值对于计数初值N,输出端,输出端OUT 输出的信号的周期是输出的信号的周期是计计数值数值N×时钟时钟CLK的周期的周期T,,N-1个时钟周期为高,个时钟周期为高,1个个时钟周期为低,为负脉冲时钟周期为低,为负脉冲 。
输出负脉冲的周期为时钟周期的输出负脉冲的周期为时钟周期的N倍,频率是倍,频率是1/N,,称为分频器,可以用来给自动控制中的实时检测,实称为分频器,可以用来给自动控制中的实时检测,实时控制提供时钟信号时控制提供时钟信号22可编程接口芯片8254及应用WRCLKGATEOUTCWn=3重新记数重新记数321321重新记数重新记数23可编程接口芯片8254及应用方式3 方波发生器与与2方式基本相同,也具有自动装入时间常数(计数初方式基本相同,也具有自动装入时间常数(计数初值)的功能,不同之处在于:值)的功能,不同之处在于:工作在工作在3方式,引脚方式,引脚OUT输出的不是一个时钟周期的输出的不是一个时钟周期的负脉冲,而是占空比为负脉冲,而是占空比为1::1或近似或近似1::1的方波;当计的方波;当计数初值为偶数初值为偶 数时,输出在前一半的计数过程中为高电数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平平,在后一半的计数过程中为低电平由于由于3方式输出的波形是方波,并且具有自动重装计方式输出的波形是方波,并且具有自动重装计数初值的功能,因此,数初值的功能,因此,8254一旦计数开始,就会在输一旦计数开始,就会在输出端出端OUT输出连续不断的方波。
输出连续不断的方波24可编程接口芯片8254及应用3124GATEOUTCLK 4方式方式3312431243124WR25可编程接口芯片8254及应用方式3当计数值为奇数时,在前(当计数值为奇数时,在前(N+1)/)/2计数期间,计数期间,OUT输出高电平,而后(输出高电平,而后(N-1)/)/2个计数期间,个计数期间,OUT输出为低电平输出为低电平54321543CWn=5WRCLKGATEOUT26可编程接口芯片8254及应用方式4 软件触发选通信号控制字写入控制字写入8254后,计数器输出后,计数器输出OUT为高电平为高电平在写入计数初值后,而且在写入计数初值后,而且GATE为高电平时,开始计为高电平时,开始计数,计数到数,计数到0后输出一个时钟周期的低电平脉冲后输出一个时钟周期的低电平脉冲门控信号门控信号GATE==1时允许计数,时允许计数,GATE==0禁止计数禁止计数软件触发软件触发选通选通体现在当体现在当GATE为高电平时,写入计数为高电平时,写入计数初值后开始计数初值后开始计数D0--D7STB锁存器8254OUTCPU送数据同时输出一数送数据同时输出一数据选通信号,锁存数据。
据选通信号,锁存数据方式方式4可编程控制选通信号可编程控制选通信号发出时间发出时间27可编程接口芯片8254及应用GATEOUTCLK31244方式方式4223331WR28可编程接口芯片8254及应用方式方式4和方式和方式2的区别:的区别: ((1)方式)方式2的负脉冲是在计数到的负脉冲是在计数到1时产生一个时产生一个T的负的负脉冲,而方式脉冲,而方式4是在是在计数到计数到0时产生一个时产生一个T的负脉冲的负脉冲 ((2)在计数过程中,写入新的初值时,方式)在计数过程中,写入新的初值时,方式2是从是从下一次开始从新的初值计数,而方式下一次开始从新的初值计数,而方式4是从下一个脉是从下一个脉冲就开始以新的值计数,因为方式冲就开始以新的值计数,因为方式4不能重复计数不能重复计数29可编程接口芯片8254及应用方式5 硬件触发选通信号工作特点是由工作特点是由GATE上升沿上升沿触发计数器开始工作触发计数器开始工作当写入计数初值后,计数器并不立即开始计数,而当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数要由门控信号的上升沿启动计数 在计数过程中(或者计数结束后),如果门控再次在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。
出现上升沿,计数器将从原装入的计数初值重新计数硬件触发选通硬件触发选通::GATE信号一般由硬件产生信号一般由硬件产生30可编程接口芯片8254及应用GATEOUTCLK31244方式方式52233311WR31可编程接口芯片8254及应用计数开始的时刻需要注意需要注意•当控制字写入当控制字写入8254时,所有的控制逻辑电路自动复时,所有的控制逻辑电路自动复位,这时输出端位,这时输出端OUT进入初始状态进入初始状态•处理器写入处理器写入8254的计数初值只是写入了预置寄存器,的计数初值只是写入了预置寄存器,要到时钟下降沿,减法计数器才开始工作要到时钟下降沿,减法计数器才开始工作•方式方式0、方式、方式4——GATE信号为电平触发信号为电平触发 方式方式1、方式、方式5——GATE信号为上升沿触发信号为上升沿触发 方式方式2、方式、方式3——两种皆可两种皆可32可编程接口芯片8254及应用7.3 8254的编程8254加电后的工作方式不确定加电后的工作方式不确定8254必须初始化编程,才能正常工作必须初始化编程,才能正常工作v写入方式控制字写入方式控制字v写入计数初值写入计数初值v读取计数值读取计数值v8254新增读回命令新增读回命令33可编程接口芯片8254及应用1 方式控制字((A1A0==11))计数器计数器读写格式读写格式工作方式工作方式BCDD7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1X10 方式方式2X11 方式方式3100 方式方式4101 方式方式50 二进制二进制1 BCD码码示例示例34可编程接口芯片8254及应用2 写入计数值计数值写入计数器各自的计数值写入计数器各自的I/O地址地址示例示例选择二进制时选择二进制时v计数值范围:计数值范围:0000H~~FFFFHv0000H是最大值,代表是最大值,代表65536选择十进制(选择十进制(BCD码)码)v计数值范围:计数值范围:0000~~9999v0000代表最大值代表最大值1000036可编程接口芯片8254及应用3 读取计数值8位数据线,读取位数据线,读取16位计数值需分两次位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然计数在不断进行,应该将当前计数值先行锁存,然后读取:后读取:v向控制字向控制字I/O地址:给地址:给8254写入锁存命令写入锁存命令v从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制38可编程接口芯片8254及应用7.4 8254在PC机上的应用A0A1——— A0— A1—D0~~D7D0~~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IRQ0DRQ0 8254+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS40可编程接口芯片8254及应用定时中断和定时刷新n将将计数器计数器1作为定时刷新作为定时刷新n看如何编写初始化程序段看如何编写初始化程序段n从阅读初始化程序段从阅读初始化程序段n看看计数器计数器0作为定时中断的作用作为定时中断的作用41可编程接口芯片8254及应用8254初始化(定时中断)mov al,0011 0110B;计数器计数器0为方式为方式3,采用二进制计数,,采用二进制计数,;先低后高写入计数值先低后高写入计数值out 43h,al;写入方式控制字写入方式控制字mov al,0;计数值为计数值为0out 40h,al;写入低字节计数值写入低字节计数值out 40h,al;写入高字节计数值写入高字节计数值42可编程接口芯片8254及应用计数器0:定时中断计数器计数器0:方式:方式3,计数值:,计数值:65536,输出频率为,输出频率为1.19318MHz÷65536==18.206Hz的方波的方波门控为常启状态,这个方波信号不断产生门控为常启状态,这个方波信号不断产生OUT0端接端接8259的的IRQ0,用作中断请求信号,用作中断请求信号每秒产生每秒产生18.206次中断请求,或说每隔次中断请求,或说每隔55ms((54.925493ms)申请一次中断)申请一次中断DOS系统利用计数器系统利用计数器0的这个特点,通过的这个特点,通过08号中断号中断服务程序实现了日时钟计时功能服务程序实现了日时钟计时功能43可编程接口芯片8254及应用计数器1:定时刷新门控总为高,选择方式门控总为高,选择方式2或或3n2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次计数初值为计数初值为18n需要重复不断提出刷新请求需要重复不断提出刷新请求44可编程接口芯片8254及应用8254初始化(定时刷新)mov al,0101 0100B;计数器计数器1为方式为方式2,;采用二进制计数采用二进制计数,只写低只写低8位计数值位计数值out 43h,al;写入方式控制字写入方式控制字mov al,18 ;计数初值为计数初值为18out 41h,al;写入计数值写入计数值45可编程接口芯片8254及应用扬声器控制计数器计数器2的输出控制扬声器的发声音调的输出控制扬声器的发声音调计数器计数器2只能工作在方式只能工作在方式3,才能输出一定频率的方,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发波,经滤波后得到近似的正弦波,进而推动扬声器发声声扬声器还受控于并行接口(扬声器还受控于并行接口(8255芯片)芯片)必须使必须使PB0和和PB1同时为高电平,扬声器才能发出同时为高电平,扬声器才能发出预先设定频率的声音预先设定频率的声音46可编程接口芯片8254及应用扬声器控制(频率设置)speakerprocpush axmov al,1011 0110B;0b6hout 43h,al;写入控制字写入控制字pop axout 42h,al;写入低写入低8位计数值位计数值mov al,ahout 42h,al;写入高写入高8位计数值位计数值retspeakerendp47可编程接口芯片8254及应用扬声器控制(扬声器开)speakonprocpush axin al,61hor al,03h;D1D0==PB1PB0==11B,其他位不变,其他位不变out 61h,alpop axretspeakonendp48可编程接口芯片8254及应用扬声器控制(扬声器关)speakoffprocpush axin al,61hand al,0fch;D1D0==PB1PB0==00B,其他位不变,其他位不变out 61h,alpop axretspeakoffendp49可编程接口芯片8254及应用扬声器控制(主程序);数据段数据段freq dw 1193180/600;代码段代码段mov ax,freqcall speaker;设置扬声器音调设置扬声器音调call speakon;打开扬声器声音打开扬声器声音mov ah,1 ;等待按键等待按键int 21hcall speakoff;关闭扬声器声音关闭扬声器声音50可编程接口芯片8254及应用在一个实际的数据采集系统中,要求在一个实际的数据采集系统中,要求5s采一个数,现场采一个数,现场的主时钟的振荡频率为的主时钟的振荡频率为2.5MHz。
分析:选择工作方式分析:选择工作方式3(方波发生器),连续工作对(方波发生器),连续工作对2.5M的脉冲分频的脉冲分频 时钟周期时钟周期Tck==l//2.5×106 计数初值计数初值n=T/Tck=5÷(l//2.5×106 )=1.25×107 一个计数器最多的分频次数是一个计数器最多的分频次数是65536,是不够用的是不够用的例51可编程接口芯片8254及应用采用两级计数器,用计数器采用两级计数器,用计数器0的输出的输出OUT0作为计数器作为计数器1的输入的输入CLK1 计数器计数器0的计数值为的计数值为50000 (C350H );计数器;计数器1的的250 (FAH) 则有: 总的计数值总的计数值=50000×250=1.25 ×107 计数器计数器0:方式:方式3(方波发生器)控制宇(方波发生器)控制宇36H(( 0011 0110B )) 计数器计数器1:方式:方式2(分频器)控制字(分频器)控制字54H)()( 0101 0100B )) 设:控制口地址:设:控制口地址:CRPT;;0号计数器:号计数器:PRT0;;1号号计数器:计数器:PRT152可编程接口芯片8254及应用实现上述过程的程序如下:实现上述过程的程序如下: MOV AL,,36H MOV DX,,CRPT OUT DX,,AL ;;0号计数器方式号计数器方式3 MOV AL,,50H MOV DX,,PRT0 OUT DX,,AL ;计数值低;计数值低8位位 MOV AL,,C3H OUT DX,,AL ;计数值高;计数值高8位位 MOV AL,,54H MOV DX,,CRPT OUT DX,,AL ;; 1号计数器方式号计数器方式2 MOV AL,,FAH MOV DX,,PRT1 OUT DX,,AL ;计数值低;计数值低8位位8253CLK0GATE0OUT0CLK1GATE1OUT12.5MHZ+5V+5V5S脉冲脉冲53可编程接口芯片8254及应用例:某火灾报警系统的部分接口电路如图所示。
该系统例:某火灾报警系统的部分接口电路如图所示该系统 具有温度和烟雾浓度超限报警和自动灭火功能当温度具有温度和烟雾浓度超限报警和自动灭火功能当温度或烟雾浓度超限时,进行光报警;两者同时超限时,进或烟雾浓度超限时,进行光报警;两者同时超限时,进行光、声报警,并开启电磁阀,进行喷淋灭火按键行光、声报警,并开启电磁阀,进行喷淋灭火按键A为手动报警按钮,按键为手动报警按钮,按键B为解除报警按钮半导体温度为解除报警按钮半导体温度传感器的温度测量范围为传感器的温度测量范围为0℃℃~127℃℃,对应输出电压为,对应输出电压为0V~5VADC0809输入电压范围为输入电压范围为0V~5V开关式集成开关式集成烟雾传感器报警时输出高电平,正常工作时输出低电平烟雾传感器报警时输出高电平,正常工作时输出低电平8253的通道的通道0、通道、通道1、通道、通道2均工作于方式均工作于方式3(方波发生(方波发生器),按器),按BCD码计数扬声器的报警声音频率为码计数扬声器的报警声音频率为2kHz8253、、8255的方式控制字及的方式控制字及8255的置位的置位/复位控制字格复位控制字格式如图所示式如图所示54可编程接口芯片8254及应用 GATE0A0 CLK0A1 OUT0RD CLK1WR 8253 GATE1CS GATE2 OUT1D7~D0 CLK2 OUT2IOWIOR A1 A0 PA7~PA0D7~D0 PB0 PB1CS PB2WR PC0RDA1 PC4A0 8255 PC1 PC5 PC6 PC7D7~D0 IN0ADDAADDB ADDCEOC IN7 OESTARTALE ADC 0809+5V烟雾传感器烟雾传感器驱动驱动电磁阀电磁阀喷淋头喷淋头温度传感器温度传感器D7~D08259CSA0驱动驱动扬声器扬声器驱动驱动1MHzD7~D0D7~D0发光二极管发光二极管40H~43H80H~83HD7~D020H~21HA0+5V+5V按按键键B解解除除警警报报按按键键A手手动动报报警警IR7IR1IR055可编程接口芯片8254及应用8255的方式控制字格式如下:的方式控制字格式如下:56可编程接口芯片8254及应用8255 端口端口C按位置按位置0/置置1控制字控制字作用:作用:指定指定PC口的某一位(某一个引脚)输出高平口的某一位(某一个引脚)输出高平或低电平。
或低电平注意:注意:C口控制字虽然是对端口口控制字虽然是对端口C操作,但应写入到操作,但应写入到控制口地址,而不是写入到控制口地址,而不是写入到C数据口数据口0D6D5D4D3D2D1D0特征位 不 用(写0)位 选 择000=C口0位001=C口1位…111=C口7位1=置位(高电平)0=复位(低电平)57可编程接口芯片8254及应用8253的方式控制字((A1A0==11))计数器计数器读写格式读写格式工作方式工作方式BCDD7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1X10 方式方式2X11 方式方式3100 方式方式4101 方式方式50 二进制二进制1 BCD码码示例示例58可编程接口芯片8254及应用部分初始化、主程序及中断服务子程序如下:部分初始化、主程序及中断服务子程序如下:CODESEGMENTASSUME DS:DATA,CS:CODESTART: ┊ ┊ ;;8259初始化初始化MOV AL,13H ;初始化初始化8259 ICW1OUT 20H,ALMOV AL, ;送中断类型码基值送中断类型码基值OUT 21H,ALMOV AL,0DHOUT 21H,AL;8255初始化初始化MOV AL, ;置置8255工作方式工作方式OUT 83H,ALMOV AL,00H ;C口初始化口初始化OUT 82H,AL91H 08H59可编程接口芯片8254及应用;8253初始化初始化MOV AL,37H ;置;置8253通道通道0方式控制字方式控制字OUT 43H,ALMOV AL,00H ;置;置8253通道通道0计数初值计数初值OUT 40H,ALMOV AL,10HOUT 40H,ALMOV AL, ;置置8253通道通道1方式方式控制字控制字OUT 43H,ALMOV AL,00H ;置;置8253通道通道1计数初值计数初值OUT 41H,ALMOV AL,10HOUT 41H,ALMOV AL, 0B7H; 置置8253通道通道2方式控制字方式控制字OUT 43H,AL 77H或或7FH 60可编程接口芯片8254及应用MOV AL, ;置置8253通道通道2计数初值计数初值OUT 42H,ALMOV AL, ;OUT 42H,AL;中断设置中断设置MOV AH,25H;设置中断向量设置中断向量MOV AL,08H ;中断类型号为入口参数;中断类型号为入口参数MOV BX,, ;DS:DX指向指向4字节地址字节地址MOV DS,BXMOV DX, ;INT 21HMOV AH,25HMOV AL, ;MOV BX,SEG KEYAINTMOV DS,BX 00H 05H SEG KEYBINT OFFSET KEYBINT 09H 61可编程接口芯片8254及应用MOV DX,OFFSET KEYAINTINT 21HSTI;数据采集数据采集MOV AL,00H ;选选ADC0809模拟量输入通道号模拟量输入通道号OUT 81H,ALLOP:MOV AL, ;置置PC4=1,锁存模拟量通道选择号,锁存模拟量通道选择号OUT 83H,ALNOPMOV AL,08H ;置置PC4=0,启动启动A/D转换转换OUT 83H,ALLOP1:IN AL,82H ;读读8255C口,查询口,查询EOCTEST AL,01HJZ LOP1IN AL,80H ;读读A/D转换结果转换结果CMP AL,0A0H ;判断是否高于上限判断是否高于上限 09H62可编程接口芯片8254及应用JA ABOVEIN AL,82H ;判断烟雾传感器是否报警判断烟雾传感器是否报警TEST AL,02HJNZ BJMOV AL,0EHOUT 83H,ALJMP LOPABOVE:IN AL,82HTEST AL,02HJZ BJMOV AL,0F0H ;启动报警及灭火功能;启动报警及灭火功能OUT 82H,ALJMP LOPBJ:MOV AL,0FH ;光报警光报警OUT 83H,ALJMP LOP63可编程接口芯片8254及应用;中断服务;中断服务KEYAINT PROC FAR ;按键按键A中断服务子程序中断服务子程序PUSH AXMOV AL,0F0HOUT 82H,ALMOV AL,20H ;给给8259发中断结束命令发中断结束命令OUT 20H,ALPOP AXIRETKEYAINT ENDP64可编程接口芯片8254及应用;中断服务;中断服务KEYBINT PROC FAR ;按键按键B中断服务子程序中断服务子程序PUSH AXMOV AL, ;OUT 82H,ALMOV AL,20H OUT 20H,ALPOP AXIRETKEYBINT ENDPCODEENDSEND START 0XH或或1XH65可编程接口芯片8254及应用请回答下列问题:请回答下列问题:1、程序空白处填空。
程序空白处填空2、超限报警温度是、超限报警温度是 ℃℃3、报警时,发光二极管显示器的闪烁频率是、报警时,发光二极管显示器的闪烁频率是 Hz4、仅温度超限时,报警灯闪烁报警,若此时报警条件解、仅温度超限时,报警灯闪烁报警,若此时报警条件解除,报警灯将(继续、停止)除,报警灯将(继续、停止) 报警5、火灾发生后,光、声报警,灭火系统启动,若此时报、火灾发生后,光、声报警,灭火系统启动,若此时报警条件解除,扬声器将(继续、停止)警条件解除,扬声器将(继续、停止) 报警6、火灾发生后,光、声报警,灭火系统启动,若报警条、火灾发生后,光、声报警,灭火系统启动,若报警条件未解除,按解除报警键件未解除,按解除报警键B,灭火系统将(继续、停止),灭火系统将(继续、停止) 工作 7、报警条件不成立,此时按手动报警键、报警条件不成立,此时按手动报警键A,灭火系统将灭火系统将(一直、工作一下马上停止)(一直、工作一下马上停止) 工作 801停止停止继续继续继续继续一直一直66可编程接口芯片8254及应用 8254有有3个独立的个独立的16位计数器通道,每个计数位计数器通道,每个计数器有器有6种工作方式,按二进制或十进制(种工作方式,按二进制或十进制(BCD码)码)计数。
计数 每个计数器在开始工作前必须预制时间常数每个计数器在开始工作前必须预制时间常数 每个计数器在工作过程中的当前计数值可被每个计数器在工作过程中的当前计数值可被CPU读出注:时间常数也可在计数过程中更改)读出注:时间常数也可在计数过程中更改) 8254是一种可编程的芯片,可通过软件来设置是一种可编程的芯片,可通过软件来设置芯片的工作方式芯片的工作方式 小小 结结 8254的初始化编程注意的是先写控制字(控制的初始化编程注意的是先写控制字(控制字写到方式控制字中),后写时间常数(时间常数字写到方式控制字中),后写时间常数(时间常数写到相应的通道地址中),通道的顺序无所谓的写到相应的通道地址中),通道的顺序无所谓的反正当三个独立的器件使用反正当三个独立的器件使用67可编程接口芯片8254及应用 1、、8254有几个通道?各通道有几个工作方式有几个通道?各通道有几个工作方式?各种工作方式的主要特点是什么??各种工作方式的主要特点是什么? 2、、8254的初始化编程包括哪几项内容?他们的初始化编程包括哪几项内容?他们在顺序上有无要求?在顺序上有无要求? 3、若、若8254的的4个通道地址分别为个通道地址分别为90H、、92H、、94H、、96H,且已知通道,且已知通道0的时钟频率为的时钟频率为2.5MHz。
((1)请问通道)请问通道0的最大定时时间是多长?的最大定时时间是多长? ((2)请使用)请使用74LS138译码器完成译码器完成8254端口地址端口地址的译码(可附加与或非门)的译码(可附加与或非门) ((3)若要使用通道)若要使用通道0周期性地产生周期性地产生5ms的定时中的定时中断(方式断(方式2),试编写初始化程序段试编写初始化程序段 ((4)若要产生)若要产生1s的定时中断,说明实现方法的定时中断,说明实现方法 作作 业业68可编程接口芯片8254及应用。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


