单片机实验六

来源:互联网 发布:tensorflow 路径规划 编辑:程序博客网 时间:2024/06/04 18:46

实验6.1 采用定时器与计数器相结合的方法使P1.7所接的发光二极管亮1秒、灭1秒,周而复始。

中断方式 汇编代码:

ORG 0000H LJMP START ORG 000BHJMP TIMER0ORG 001BHJMP TIMER1ORG 0040H START: MOV TMOD,#61HMOV TH0,#03CHMOV TL0,#0B0HMOV TH1,#0F6HMOV TL1,#0F6HSETB P1.0SETB P1.1SETB EASETB ET0SETB ET1SETB TR0SETB TR1SJMP $TIMER0:CPL P1.0MOV TH0,#03CHMOV TL0,#0B0HRETITIMER1:CPL P1.7RETIEND

查询方式 汇编代码: 查询方式下,TF0,TF1标志位一定要手动清零

ORG 0000H SJMP START ORG 0040H START: MOV TMOD,#61HMOV TH0,#03CHMOV TL0,#0B0HMOV TH1,#0F6HMOV TL1,#0F6HSETB P1.0SETB P1.1SETB TR0SETB TR1F:JNB TF0,$CLR TF0CPL P1.0MOV TH0,#03CHMOV TL0,#0B0HJNB TF1,FCLR TF1CPL P1.7SJMP FEND

中断方式 C语言:

#include<reg51.h>timer0()interrupt 1{    TH0=0x3c;    TL0=0xb0;    P10=~P10;}timer1()interrupt 3{    P17=~P17;}main(){    TMOD=0x61;    TH0=0x3c;    TL0=0xb0;    TH1=0xf6;    TL1=0xf6;    P10=0;    P11=1;    EA=1;    ET0=1;    ET1=1;    TR0=1;    TR1=1;    while(1){    }}

查询方式 C语言:

#include<reg51.h>main(){    TMOD=0x61;    TH0=0x3c;    TL0=0xb0;    TH1=0xf6;    TL1=0xf6;    P10=0;    P11=1;    TR0=1;    TR1=1;    while(1){        while(!TF0){        }        TF0=0;        TH0=0x3c;        TL0=0xb0;        P10=~P10;        if(!TF1){            continue;        }        TF1=0;        P17=~P17;    }}
原创粉丝点击