版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章定时计数控制接口12.1定时/计数概述12.2定时/计数器82538253的外部特性8253的内部结构8253的编程命令8253的工作方式8253的应用举例12.1定时/计数概述计算机的许多应用都与时间有关,例如实时时钟、定时中断、定时检测、定时扫描等。外部事件发生次数达到规定值后产生中断,以及统计外部事件发生的次数等定时器和计数器定时控制在微机系统中极为重要定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器定时功能的实现方法软件延时——利用微处理器执行一个延时程序段实现不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路8253定时/计数器的应用对8253定时/计数器进行使其完成我们需要的计数功能定时功能软件设计硬件设计12.28253定时/计数器3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数减法计数12.2.1定时/计数器8253的外部特性12.2.28253的内部结构D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2计数器结构示意图计数初值寄存器GATECLKOUT减1计数器当前计数值锁存器1、计数器的3个引脚CLK时钟输入信号——在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号——控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号——当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号12.2.38253的编程8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字写入计数初值读取当前计数值1方式控制字的数据格式D7D6D5D4D3D2D1D0SC1SC0RW1RW0M2M1M0BCD00:计数器001:计数器110:计数器211:不用00:表示计数器锁存命令01:仅读/写一个低8位字节10:仅读/写一个高8位字节。11:读/写两个字节,先读/写低8位字节,后读/写高8位字节。000:方式0;
×11:
方式3001:方式1;100:
方式4×10:方式2;101:
方式50:二进制计数;1:BCD码计数2写入计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值100003.8253的读写操作(1)写操作——计数通道的初始化【例12.1】选择2号计数器,工作在方式3,计数初值为566H(2个字节),采用二进制计数。因此,方式控制字为10110110B=0B6H,其初始化程序段为:MOVDX,307H ;8253控制口MOVAL,0B6H ;2号计数器的初始化命令字OUTDX,AL ;写入控制字寄存器MOVDX,306H ;2号计数器数据端口MOVAX,566H ;计数初值OUTDX,AL ;先送低字节MOVAL,AH ;取高字节到ALOUTDX,AL ;后送高字节(2)读操作——读当前计数值用IN指令可读出所选通道计数器的计数值。16位的计数值在读出时,可先读出低字节,再读出高字节,但必须将高、低字节全部读出后,才能对计数器进行其它操作。12.2.48253/8254的工作方式8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:⑴设定工作方式⑵设定计数初值〔⑶硬件启动〕⑷计数初值进入减1计数器⑸每输入一个时钟计数器减1的计数过程⑹计数过程结束方式0:计数结束中断①②⑤④⑥GATEOUTCLK
031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束方式1:可编程单稳脉冲方式2:频率发生器(分频器)方式3:方波发生器方式4:软件触发选通信号方式5:硬件触发选通信号各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01讨论:计数开始的时刻12.2.58253应用举例1.8253定时功能的应用例子用8253定时功能可产生各种定时波形。【例12.1】如果8253芯片可利用8088的外设接口地址310H~313H,如果已知加到8253上的时钟信号为2MHz,若利用计数器0、1、2分别产生周期为100μs的对称方波以及每1s和10s产生一个负脉冲,试说明8253如何连接并编写包括初始化在内的程序。例12.1题图一、硬件设计8253A8088310H~313H译码器CSD7~D0D7~D0D7~D0A9~A0A1A1A0A0
GATE2OUT2+5V
+5V2MHzGATE1+5V
100μs
OUT11s10s
GATE0OUT0CLK1CLK0CLK2RDRDWRWRM/IO10000Hz1Hz二、软件设计1、确定工作方式2、计算计数初值:计数初值N=分频系数=fclk/fout3、确定工作方式控制字4、写出初始化程序1)、写入计数器的控制字2)、写入计数初值。8253初始化编程的注意事项控制字写入控制字I/O地址(A1A0=11)计数值写入计数器各自的I/O地址:计数器0:A1A0=00计数器1:A1A0=01计数器2:A1A0=10;初始化计数器0MOVDX,313H ;控制端口地址MOVAL,00010110B;通道0控制字,只写低字节,方式3,二进制计数OUTDX,AL ;写入方式字MOVAL,200MOVDX,310HOUTDX,AL;写入计数初值;初始化计数器1MOVDX,313HMOVAL,01110100BOUTDX,AL ;通道1控制字,先写低字节,后写高字节,方式2,二进制计数MOVDX,311HMOVAX,10000 ;通道1赋计数初值10000OUTDX,AL ;先写低字节MOVAL,AHOUTDX,AL ;写高字节;初始化计数器3MOVDX,313HMOVAL,10010100BOUTDX,AL;通道1控制字,只写低字节,方式2,二进制计数MOVDX,312HMOVAL,10OUTDX,AL;通道2赋计数初值102.8253计数功能的应用例子8253可以用于各种需要进行计数的场合。【例12.2】某产品的包装流水线中,一个包装箱能装24罐饮料。试利用一片8253来完成流水线控制中的计数功能,假设8253的端口地址为8CH~8FH。8253A80888CH~8FH译码器CSD7~D0D7~D0D7~D0A9~A0A1A1A0A0
+5V
GATE1
OUT1CLK1RDRDWRWRM/IO饮料罐信号作为中断请求信号去8259A或者用于控制其它设备例12.2题图一、硬件设计二、软件设计假设选择计数通道1工作在方式2,计数初值23选二进制计数;计数通道1初始化程序MOV AL, 01010100BOUT 8FH,ALMOV AL, 23OUT 8DH,AL为什么是23而不是24?方式2频率发生器(分频器)03124GATEOUTCLK
4方式2031240312403124WR注意计数开始的时刻在此计数初值由初值寄存器进入减1计数器3.8253计数、定时功能综合应用的例子【例12.3】包装流水线控制某产品的包装流水线中,一个包装箱能装24罐饮料。装箱时希望流水线上每通过24罐饮料,流水线要停4秒以等待包装箱封口,然后继续通过下一箱的24罐。流水线就是这样周而复始的运作。试利用一片8253来完成流水线控制中的定时和计数功能。假设8253的端口地址为8CH~8FH,采用的时钟频率是2KHz。思路:用8253的计数通道1作为计数器,用于24个罐的计数;计数通道2作为定时器,定时为4S。当计数通道1的OUT脚出现0到1的跳变的时候,将启动计数通道2开始定时,而计数通道2定时阶段将控制计数通道1停止计数,只有其定时结束并停止定时阶段才可再次启动计数通道1开始计数。分析:计数通道:需要软件触发,重复计数,因此选择方式2、3皆可。定时通道:需要上升沿触发(可重触发),并且定时未到时需要输出信号OUT的值不变(用此信号控制流水线停止、计数器停止),因此选择方式1计数通道1工作在方式2,计数初值23计数通道2工作在方式1,计数初值8000CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D0~D7A1A0RDWRCS饮料罐信号fCLK控制流水线停止和运行的信号例12.3题简图;初始化程序;计数通道1初始化MOV AL, 01010100BOUT 8FH, ALMOV AL, 23OUT 8DH, AL;初始化计数通道2MOV AL, 10110010BOUT 8FH, ALMOV AX, 8000OUT 8EH, ALMOV AL, AHOUT 8EH, AL4、8253在IBMPC系列机上的应用A0A1———A0—A1—D0~D7D0~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2DQCLK+5V接至DMA控制器接至扬声器驱动器PB0PB1IRQ0DRQ0
8253+5V1.19318MHzDACK0BRDIORIOWRDWRCST/CCS计数器0:定时中断计数器0:方式3,计数值:65536,输出频率为1.19318MHz÷65536=18.206Hz的方波门控为常启状态,这个方波信号不断产生OUT0端接8259A的IRQ0,用作中断请求信号每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能计数器0:定时中断对8253的计数器0进行初始化的程序为:MOVAL,36HOUT43H,AL;写控制字MOVAL,0;计数初值为65536OUT40H,AL;写入初值低位OUT40H,AL;写入初值高位计数器1:动态RAM刷新定时器需要重复不断提出刷新请求门控总为高,选择方式2或32ms内刷新128次,即15.6s刷新一次计数初值为18计数器1:动态RAM刷新定时器初始化程序:MOVAL,54HOUT43H,AL;写控制字MOVAL,18;计数初值为18OUT41H,AL;对应15.09μs计数器2:扬声器音调控制计数器2的输出控制扬声器的发声音调计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声扬声器还受控于并行接口(8255芯片)必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音例12.4【例12.4】如图12-2-11所示利用定时/计数器8253发600Hz的声音。按任意键,开始发声,按【ESC】键,停止发声。分析:计数初值的确定。N=1.19318MHz/600HZ=1989例12.4CODESEGMENTASSUMECS:CODESTART:;关闭扬声器
INAL,61H;取8255PB端口原输出值
ANDAL,0FCH;置PB0和PB1为零,关闭GATE2和与门
OUT61H,AL;初始化计数器2MOVAL,0B6H;10110110B,计数器2,先写低后写高字节,方式3,二进制
OUT43H,AL;控制字写入控制口
MOVAX,1989;计数初值
OUT42H,AL;对应600HZ,送低字节
MOVAL,AHOUT42H,AL;送高字节例12.4;按任意键,启动发声器
MOVAH,01H;单字符输入DOS功能调用
INT21H;有键按下,程序往下执行,启动扬声器发声
INAL,61H;取8255PB端口原输出值
ORAL,03;设PB1=PB0=1OUT61H,AL;使扬声器发声;判断是否是ESC键按下WAIT1:MOVAH,01H;单字符输入DOS功能调用
INT21HCMPAL,1BH;ESC键的ASCII码=1BHJNEWAIT1;不是ESC键按下,循环判断例12.4;ESC键按下,关闭扬声器,停止发声QUIT:INAL,61H;是ESC键按下,停止发声
ANDAL,0FCH;置PB0和PB1为零,关闭GATE2和与门OUT61H,ALMOVAH,4CHINT 21HCODEENDSENDSTART例12.5【例12.5】如图12-2-11所示利用定时/计数器8253发声。编写程序,在程序运行时使PC机成为一架可弹奏的“钢琴”。即当按下数字键1~7时,依次发出1,2,3,4,5,6,7七个音调。按q键则退出“钢琴”状态。分析:通过给8253定时器装入不同的计数初值,可以使其输出不同频率的波形。按下1~7中的某个键,则把相应的计数初值送入8253发出相应频率的声音,键抬起声音停止,按其它的键不发声。例12.5DATASEGMENT;定义各音符对应的计数初值TABLEDW4571,4058,3616,3419,3044,2712,2415DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;初始化DSBEGIN:MOVAH,07;接收键盘输入的单字符,不回显。INT21HCMPAL,71H ;是字符q?JEEXIT ;是则退出程序例12.5CMPAL,31HJBBEGIN;小于1,重新接收键盘输入CMPAL,37HJABEGIN;大于7,重新接收键盘输入SUBAL,30H;由ASCII码得到对应的数值SUBAL,1;数值减1;乘以2得到存放对应计数初值的存储单元的地址偏移量。SHLAL,1MOVAH,0LEABX,TABLEADDBX,AX;得到存放对应计数初值的存储单元的地址MOVAX,[BX];取得需要发的音对应的计数初值CALLSOUND;调用发音子程序例12.5DELAY:INAL,60HTESTAL,80HJZDELAY;按键未抬起,继续发声INAL,61HANDAL,0FCHOUT61H,AL;按键抬起,发声结束,关闭扬声器JMPBEGIN;重新接收键盘输入EXIT:MOVAH,4CH;结束返回INT21H例12.5SOUNDPROCNEAR;发音子程序PUSHAX;保存计数初值INAL,61H;发音设置,打开扬声器ORAL,03HOUT61H,ALMOVAL,10110110B;初始化8253OUT43H,ALPOPAX;恢复计数初值OUT42H,AL;送计数值低字节MOVAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年二手房买卖委托代理协议
- 电子商务售后服务改进制度
- 商业特许权合同
- 体育馆室内消防施工组织方案
- 快递物流设施供货与调试方案
- 2024年学术工作者雇佣合同
- 2024年个人车辆租赁协议书
- 2024年农产品一次性采购合同
- 2024年孔丽婚变协议样本
- 污水处理标准化操作方案
- led显示屏工艺流程
- 建设项目设计管理方案
- 第13课《警惕可怕的狂犬病》 课件
- 仓库货物条码管理培训
- 第六章-中国早期社会学中的社区学派-《中国社会学史》必备
- 水产品质量安全知识讲座
- 技术协议范本通用模板
- 香港十日游旅游计划书
- 屠宰工培训课件
- 生命的价值课件
- 动车组空调及换气系统维护与检修 CRH380A型动车组空调及换气系统的控制
评论
0/150
提交评论