1写入方式控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1010方式2011方式3100方式4101方式50二进制1十进制控制字写入控制字I/O地址(A1A0=11)示例第29页,共61页,星期日,2025年,2月5日2写入计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000计数值写入计数器各自的I/O地址示例第30页,共61页,星期日,2025年,2月5日3读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制第31页,共61页,星期日,2025年,2月5日MOVAL(36H)OUT43H,ALMOVAL,56HOUT40H,ALMOVAL,78HOUT40H,AL例题.一片8253占用端口地址40H—43H,假设其定时器0工作在方式3,计数初值为7856H,试编写其初始化程序和在计数过程中的读取计数值程序第32页,共61页,星期日,2025年,2月5日MOVAL(06H)OUT43H,ALINAL,40HMOVAH,ALINAL,40HXCHAL,AH(AX)=???第33页,共61页,星期日,2025年,2月5日现有一个时钟源,频率为1MHZ,现要求产生1Ms的周期性定时信号,如何连接8253,并且编程启动该计数器。端口地址300H—306H。如果改为产生1S的定时呢?第34页,共61页,星期日,2025年,2月5日MOVDX,306HMOVAL,65HOUTDX,ALMOVAL,95HOUTDX,ALMOVDX,304HMOVAL,0OUTDX,ALMOVAL,1MOVDX,302HOUTDX,AL第35页,共61页,星期日,2025年,2月5日10.58253在IBMPC系列机上的应用A0A1———A0—A1—D0~D7D0~D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2DQCLK+5V接至DMA控制器接至扬声器驱动器PB0PB1IRQ0DRQ08253+5V1.19318MHzDACK0BRDIORIOWRDWRCST/CCS第36页,共61页,星期日,2025年,2月5日10.5.1定时中断和定时刷新从阅读初始化程序段看计数器0作为定时中断的作用将计数器1作为定时刷新看如何编写初始化程序段第37页,共61页,星期日,2025年,2月5日定时中断 moval,36h ;计数器0为方式3,采用二进制计数, ;先低后高写入计数值 out43h,al ;写入方式控制字 moval,0 ;计数值为0 out40h,al ;写入低字节计数值 out40h,al ;写入高字节计数值8253初始化第38页,共61页,星期日,2025年,2月5日计数器0:定时中断计数器0:方式3,计数值:65536,输出频率为1.19318MHz÷65536=18.206Hz的方波门控为常启状态,这个方波信号不断产生OUT0端接8259A的IRQ0,用作中断请求信号每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能第39页,共61页,星期日,2025年,2月5日计数器1:定时刷新需要重复不断提出刷新请求门控总为高,选择方式2或32ms内刷新128次,即15.6?s刷新一次计数初值为18第40页,共61页,星期日,2025年,2月5日定时刷新 moval,54h ;计数器1为方式2,采用二进制计数,只写低8位计数值 out43h,al ;写入方式控制字 mov