大连理工大学实验报告实验室(房间号):420实验台号码:16班级:姓名:指导教师签字:成绩:实验四8254方式3的秒脉冲实验一、实验目的和要求1.掌握8254工作方式的基本原理、计数特点和编程方法。2.利用8254实验秒脉冲信号的输出。二、实验原理和内容1.实验内容利用8254,将1MHz的方波信号变化成1Hz的秒脉冲信号。要求:1).8254的片选地址为200h-20fh。2).8254的计数器0的地址为200H,计数器1的地址为201H,计数器2的地址是202H,控制寄存器的地址是203H。3).CLK0链接时钟1MHz,由计数器0进行10000分频后得到100Hz的信号,然后再用计数器1进行100分频就得到了1Hz的信号频率。4).用逻辑笔连接OUT1,观看分频后的效果。2.实验原理1).8254相关地址的连线A.地址端口的接线本次实验在实验板上操作,8254与CPU间的连接线已经固化,因此只需要将8254的片选段与实验板上的200H-20FH端口用导线连起来就可以了。B.时钟与输出8254的CLKO与时钟电路的“1MHz”输出端连接,由计数器0进行10000分频后得到100Hz的信号在OUT0输出;OUT0与CLK1连接,再由计数器1进行100分频就得到了1Hz的信号;最后OUT1与逻辑笔电路的输入相连,观察输出现象。GATE0、GATE1均与+5V电压连接。2).8254的程序控制先对8254的控制端口写控制命令,接着对相应的端口写计数初值。对于10000分频,采用BCD码形式计数,则计数初值为0;对于100分频,采用十六进制形式计数,则计数初值为100。三、实验电路图四、算法流程图START定义数据段计数器0方式3BCD码计数计数器1方式二进制计数计数器1设初始值100计数器0设初始值10000动态停机五、程序清单.modelsmall.386IO_ADRESSEQU200H;宏定义,计数器的地址一次是200-202hDATASEGMENTD1DW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,IO_ADRESS+3;写控制寄存器,MOVAL,00110111B;计数器0方式3BCD码计数OUTDX,ALMOVDX,IO_ADRESSMOVAL,0;实际计数10000次OUTDX,AL;低八位OUTDX,AL;高八位MOVDX,IO_ADRESS+3MOVAL,01010110B;计数器1方式二进制计数`OUTDX,ALMOVDX,IO_ADRESS+1MOVAL,100OUTDX,AL;100用低八位就足够了DDD:JMPDDDCODEENDSENDSTART六、实验结果与分析连好接线,运行程序,可以看到逻辑笔的红黄灯交替闪,目测频率正确,实验完成。七、实验体会和建议本次实验学习了8254芯片的方式3模式。8254的方式3为方波发生器方式,利用此方式可以较为方便的产生各种频率的方波。本实验CLK0断接1MHz时钟,用计数器0分频为100Hz,再用计数器1分频为1Hz,实现了秒脉冲。编程过程中,要特别注意DX寄存器的值,每次输入输出的时候,先查看DX的值,看是否存的是需要的地址,防止出错。同时,写控制字的时候要理解每位二进制代表的意义。