一、实验目的和要求
1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、实验内容或原理
1、利用单片机的定时器/计数器以查询方式计数外 部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波 。
2、利用单片机的定时器/计数器以中断方式计数外
部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波 。 三、设计要求
1、用Proteus软件画出电路原理图,单片机的定时 器/计数器以查询方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满100 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时 器/计数器以中断方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满200 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 四、原理图
六、编程
汇编
ORG 0000H START: LJMP MAIN ORG 0100H MAIN: CLR EA CLR ET1 MOV TMOD, #20H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CPL P1.0 CLR TF1 LJMP LOOP END C语言 #include \ sbit P10=P1^0; void main() { TMOD=0x20; TR1=1; for(;;) { TH1=0X9C; TL1=0X9C; do { }
while(!TF1); P10=!P10; TF1=0;
} } 汇编
ORG 0000H
START: LJMP MAIN ORG 000BH LJMP TTC0 ORG 0100H
MAIN: MOV TMOD, #06H MOV TH0, #38H MOV TL0, #38H SETB EA SETB ET0 SETB TR0
HERE: LJMP HERE TTC0: CPL P1.0 RETI END
C语言
#include
EA=1; ET1=1;
TMOD=0x60; TH1=0x38; TL1=0x38; TR1=1;
while(1); }
void TTC1() interrupt 3 {
P10=!P10; }
汇编 ORG 0000H START: LJMP MAIN ORG 001BH