3)使OE有效的指令段: MOV IN
DX,16FH AL,DX
4)计算CLOCK的重复周期:
三个D门实现8分频,则CLOCK的周期为CLK88的8分频,fCLOCK = fCLK88/8=500KHz
8.7有一温度控制电路如习图8-5所示。通过计数器/定时器8253的通道1产生周期为1秒的方波,向可编程中断控制器8259A的IRj申请中断。若IRi上无中断请求信号IRQ,则CPU响应IRj,转向相应的中断服务程序INTJ。在INTJ中启动ADC0809,对IN5信号(来自温度传感器的温度信号)进行A/D转换,然后返回主程序。当A/D转换结束后,向8259A的IRk发出中断请求。若IRj上无中断请求信号IRQ,则CPU响应IRk,转向相应的中断服务程序INTK,在INTK中通过接通风扇与加热电炉来调节温度。上述程序中,若在IRi上有IRQ信号,则程序结束返回操作系统。
(1)计算8253、8255、8259的端口地址; (2)对8253初始化;
(3)启动0809工作的程序段;
(4)在固定优先权方式下,要保证本题中要求的操作,IRi、IRj和IRk的优先
权排列图如何?
习图8-5
解:注意:教材的图中 (a)改为OUT1,(b)改为EOC ,
GATE1接+5V ,CLK1接1.25MHz
36
1)各芯片端口地址计算:
A7 A6 A5 A4 A3 A2 A1 A0 8253为88H~8BH(无关项为0) 1 0 0 0 1 × 0 0 0 1 1 0 1 1
1 0 0 1 0 × 0 0 8255A为90H~93H(无关项为0)
0 1 1 0
1 1
1 0 0 0 0 × 0 × 8259为80H,82H(无关项为0)
1 2)写方式选择字:
MOV OUT
AL,01100111B 8BH,AL
写入计数初值
n1 = TOUT1/TCLK1 = 1s/800μs = 1250 MOV OUT
AL,50H 89H,AL AL,12H 89H,AL 9DH,AL
MOV OUT
3) OUT
4) IRi >IRj >IRk
37