1、一、实验目的1、掌握定时器/计数器计数功能的使用方法。2、掌握定时器/计数器的中断、查询使用方法。3、掌握 Proteus软件与 Keil软件的使用方法。4、掌握单片机系统的硬件和软件设计方法。二、设计要求1、用 Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反 P1.0口线状态,在 P 1.0口线上接示波器观察波形。2、用 Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲,则取反 P1.0口线状态,在
2、P 1.0口线上接示波器观察波形。三、电路原理图6、实验总结通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等) ,掌握了查询和中断工作方式的应用。七、思考题1、利用定时器 0,在 P1.0口线上产生周期为 200微秒的连续方波,利用定时器 1,对 P1.0 口线上波形进行计数,满 50个,则取反 P1.1口线状态,在P 1.1口线上接示波器观察波形。答:程序见程序清单。4、实验程序流程框图和程序清单。1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反 P1.0口线状态。汇编程序:ORG 0000HST
3、ART: LJMP MAINORG 0100HMAIN: MOV IE, #00HMOV TMOD, #60HMOV TH1, #9CHMOV TL1, #9CHSETB TR1LOOP: JNB TF1, LOOPCLR TF1CPL P1.0AJMP LOOPENDC语言程序:#include sbit Y=P10;void main()EA=0;ET1=0;TMOD=0x60;TH1=0x9C;TL1=0x9C;while(1) TR1=1; while(!TF1); TF1=0;Y=!Y; 开 始T M O D 初 始 化计 数 初 值 初 始 化中 断 初 始 化启 动 定 时 器计
4、 数 溢 出清 计 数 溢 出 标 志YNP 1 . 0 口 线 取 反2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲,则取反 P1.0口线状态。汇编程序:ORG 0000HSTART: LJMP MAINORG 001BHLJMP TTC1ORG 0100HMAIN: MOV TMOD, #60HMOV TH1, #38HMOV TL1, #38HSETB EASETB ET1SETB TR1HERE: LJMP HEREORG 0200HTTC1: CPL P1.0RETI ENDC语言程序:#include sbit Y=P10;void mai
5、n()EA=1;ET1=1;TMOD=0x60;TH1=0x38;TL1=0x38;TR1=1;while(1); void TTC1() interrupt 3Y=!Y;开 始T M O D 初 始 化计 数 初 值 初 始 化中 断 初 始 化等 待 中 断启 动 计 数 器开 始中 断 返 回输 出 取 反3、利用定时器 0,在 P1.0口线上产生周期为 200微秒的连续方波,利用定时器 1,对 P1.0 口线上波形进行计数,满 50个,则取反 P1.1口线状态。汇编程序: ORG 0000HSTART: LJMP MAINORG 001BHLJMP TTC1ORG 0100HMAIN:
6、 MOV TMOD, #62HMOV TH1, #0CEHMOV TL1, #0CEHMOV TH0, #9CHMOV TL0, #9CHMOV IE, #88HSETB TR0SETB TR1LOOP1: JNB TF0, LOOP1CPL P1.0CLR TF0LJMP LOOP1TTC1: CPL P1.1RETIENDC语言程序: #include sbit Y0=P10;sbit Y1=P11;void main()TMOD=0x62; TH0 =0x9C;TL0 =0x9C; TH1 =0xCE; TL1 =0xCE;EA =1;ET1 =1;ET0 =0;TCON=0x50;while(1) while(!TF0); TF0=0;Y0=!Y0;void TTC1()interrupt 3 Y1=!Y1;开 始中 断 返 回输 出 取 反开 始TMOD初 始 化计 数 初 值 初 始 化中 断 初 始 化启 动 定 时 器 0启 动 计 数 器 1定 时 时 间 到清 计 数 溢 出 标 志P1.0口 线 取 反NY5、实验结果(波形图) 。