一、实验要求: 8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)
引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。
二、实验目的:学习8051内部定时/计数器的使用和编程方法。
三、实验电路及连线
连线 1 2 3 4 5
连接孔1 P1.0 P1.1 P1.2 P1.3 单脉冲输出
连接孔2 LED0 LED1 LED2 LED3 T0
四、实验说明
本实验中内部计数器起计数器的作用。外部事件脉冲由P3.4引入定时/计数器T0,即T0用来检测外部脉冲数。
五、实验程序框图
六、实验步骤:(如源程序、流程图或调试中遇到的问题和解决方法等)
36
七、实验结果和体会:
八、建议:
实验五 定时器实验
一、实验要求: 用CPU内部定时器中断方式计时,实现每5秒钟输出状态发生一次反转。
二、实验目的:学习8051内部定时器的使用和编程方法;掌握中断处理程序的编程方法。
三、实验电路及连线
四、实验说明:
1. 关于内部定时/计数器的编程主要是定时常数的设置和有关控制寄存器的设置。 2. 定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 3. 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡周
37
期。本实验系统的晶振是6MHz,即一个机器周期是2?s。设本程序工作于方式1,按照定时常数的计算公式,当定时时间为100ms(即每100ms中断一次),其定时初值为3CB0H,然后对100ms中断次数计数10次,就是1秒钟。 4. 在一般的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后或返回主程序之前再打开相应的中断。
五、实验程序流程图
38
主程序流程图 外部中断子程序流程图 六、实验步骤:(如源程序或调试中遇到的问题和解决方法等)
七、实验结果和体会:
八、建议:
实验六 外部中断实验
一、实验要求: 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。
二、实验目的:学习外部中断技术的基本使用方法;学习中断处理程序的编程方法。
三、实验电路及连线
连线 1 2 2
连接孔1 P1.0 单脉冲输出 单脉冲输出
连接孔2 LED0 INT0(8051) EINT(80196)
四、实验说明 中断服务程序的关键是:
1. 保护进入中断时的状态,并在退出中断之前恢复进入时的状态。 2. 必须在中断程序中设定是否允许中断重入,即对EX0进行设置。 3. 对于80C196,要选择相应的中断源,并设置中断屏蔽寄存器的相应位。 本例中使用了INT0中断(80C196为EXTINT中断),一般中断程序进入时应保护PSW、ACC等寄存器,并且在退出前恢复被保护的寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入,可以在中断返回前再打开相应的中断,本例中没有涉及这种情况。
五、实验程序流程图
39
六、实验步骤:(如源程序或调试中遇到的问题和解决方法等)
七、实验结果和体会:
40