硬件中断程序设计C语言在测量与控制中应用.pptVIP

  • 4
  • 0
  • 约1.37万字
  • 约 69页
  • 2019-11-06 发布于广东
  • 举报

硬件中断程序设计C语言在测量与控制中应用.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * 周期中断程序举例 #include dos.h #include stdio.h void interrupt ( *oldint70)( ); void interrupt myint70( ); int count=0,nmb=0; char c; void main(void) { oldint70=getvect(0x70); outportb(0x70,0xb); c=inportb(0x71); outportb(0x71,c|0x40); setvect(0x70,myint70); while(count800); outportb(0x70,0xb); outportb(0x71,c); setvect(0x70,oldint70); printf(OK!\n); getch(); } void interrupt myint70( ) { nmb++; if(nmb==10){ nmb=0; putch(.); count++;} outportb(0xa0,0x20); outportb(0x20,0x20); } 状态寄存器A UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 D7 D6 D5 D4 D3 D2 D1 D0 状态寄存器A主要用于确定22级分频器输入输出信号频率。 选择输入信号频率 选择输出信号频率 时钟更新 000 : 4.194 304MHz 001 : 1.048 576MHz 010 : 32.768KHz 0110 : 1.024KHz 调整状态寄存器A的设置可以控制中断周期。 输出信号频率(输入32.748kHz) RS3 RS2 RS1 RS0 周期中断速率 方波输出频率 0 0 0 1 3.90625 ms 256Hz 0 0 1 0 7.8125 ms 128Hz 0 0 1 1 122.070μs 8.192kHz 0 1 0 0 244.141 μs 4.096kHz 0 1 0 1 488.281 μs 2.048kHz 0 1 1 0 976.562 μs 1.024kHz 0 1 1 1 1.953125 ms 512Hz 1 0 0 0 3.90625 ms 256Hz 输出信号频率续(输入32.748kHz ) RS3 RS2 RS1 RS0 周期中断速率 方波输出频率 1 0 0 1 7.8125 ms 128Hz 1 0 1 0 15.625 ms 64Hz 1 0 1 1 31.25ms 32Hz 1 1 0 0 62.5ms 16Hz 1 1 0 1 125ms 8Hz 1 1 1 0 25 0ms 4Hz 1 1 1 1 500 ms 2Hz 输出信号频率 RS3 RS2 RS1 RS0 周期中断速率 方波输出频率 0 0 0 1 30. 517μs 32.768kHz 0 0 1 0 61.035 μs 16.384kHz 0 0 1 1 122.070μs 8.192kHz 0 1 0 0 244.141 μs 4.096kHz 0 1 0 1 488.281 μs 2.048kHz 0 1 1

文档评论(0)

1亿VIP精品文档

相关文档