口端口地址0A006H
4编写代码,代码如下;
CODESEGMENTASSUMECSCODE
STARTJMPTCONTTCONTROEQU0A006H
fTCON0EQU0A000HTCON1EQU0A002HTCON2EQU0A004HTCONTMOVDXTCONTRO
MOVAL27H计数器0只写初值高8位方式3BCD码OUTDXALMOVDXTCON0MOVAL10H时钟为1MHZ计数时间1us1000输出频率1KHZOUTDXAL注意1000的BCD码为1000H,此处只需写高位
CODE
MOVDXTCONTROMOVAL0B2H计数器2先写初值低8位再写高8位方式1,二进制数OUTDXALMOVDXTCON2MOVAX1250写入计数初值1250OUTDXALMOVALAHOUTDXALJMP
ENDSENDSTART
f5对程序进行编译、链接、仿真,仿真结果如图4、图5所示。
图4方波图A通道,黄色图5脉冲图D通道,绿色
f六、实验总结
本次实验,重点在于自己找资料,理解透8253的控制方式及工作原理。只要理解了8253的原理,再配上汇编指令,便轻松完成本次实验。
到现在,一共做了6次实验。6次实验都是与外设打交道,故常用到的指令就MOV,OUT,IN三条指令,常用到的寄存器就AX,DX,常用到的寻址方式是寄存器间接寻址(DX用在此处)。当访问的端口地址小于255时,则可以采用直接寻址,不用DX间接寻址;当访问的端口地址大于255时,寄存器间接寻址则是必须的,必须用到DX寄存器。
fr