精华内容
下载资源
问答
  • 2021-05-21 01:34:02

    单片机定时器计数器实验报告

    单片机定时器计数器实验报告

    篇一:单片机计数器实验报告  计数器实验报告  ㈠ 实验目的  1. 学习单片机内部定时/计数器的使用和编程方法; 2. 进一步掌握中断处理程序的编程方法。  ㈡ 实验器材  1. 2. 3. 4. 5.  G6W仿真器一台 MCS—51实验板 一台 PC机 一台 电源 一台 信号发生器 一台  ㈢ 实验内容及要求  8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。   ㈣ 实验说明   1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入  定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。 2. 计数脉冲由信号发生器输入(从T0端接入)。  3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421  码表示,个位用L8~L5的8421码表示  4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动  次数并显示  ㈤ 实验框图(见下页)  程序源代码 ORG 00000H LJMP MAIN  ORG 001BH AJMP MAIN1 MAIN:  MOV SP,#60H  MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H   ;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位   MOV TH0,#00H  SETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;等待中断  MAIN1: PUSH PSW PUSH ACC CLR TR0  CLR TR1 MOV TL1,#0B0H MOV TH1,#3CH  DJNZ 20H,RETUNT MOV 20H ,#14H  SHOW: MOV R0,TH0 MOV R1,TL0  MOV A,R1 MOV B,#0AH DIV AB  MOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,C  MOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0  MOV P1.7,C ;保护现场  ;装入计数值低8位  ;装入计数值高8位,50ms;允许T1中断  ;未到1s,继续计时 ;1s到重新开始  ;显示计数器T0的值;读计数器当前值 ;将计数值转为十进制  ;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中 ;将个位的数字显示在L4~L7上  ;  RETUNT:  MOV TL0,#00H;将计数器T0清零 MOV TH0,#00H  SETB TR0SETB TR1POP ACCPOP PSW  RETI ;中断返回  在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。 思考与小结:  有了前面的定时器实验做基础,定时器计数器的选择以及初始化已经不再是难点,本次试验的重点是写入两个中断判断程序和十六进制到十进制的转化和显示。 MOV TL1,#0B0H ;装入计数值低8位  MOV TH1,#3CH;装入计数值高8位,50ms  MOV 20H,#14H ;未到1s,继续计时 DJNZ 20H,RETUNT;1s到重新开始 RETUNT:  MOV TL0,#00H;将计数器T0清零 MOV TH0,#00H  由于书上详细解释了设置中断时间的问题,所以中断程序并没有什么太大的难点,主要是要思考一下程序的执行顺序问题。  十六进制到十进制的转化和显示使我们这次实验遇到的比较大的困难,刚开始采用的是DA指令,由于没有搞清楚它的实质错误的使用了DA。DA用于十六进制到BCD的转换,不能用于十六进制到8421的转换,于是我们思考了很久

    更多相关内容
  • c语言控制51单片机模拟实验 定时器/计数器外部中断实验
  • //若系统时钟频率为60MHZ,编写软件实现:按一下按键,产生一次外部中断0中断信号,启动T1计时,使P1.0输出周期为1ms的方波。1、汇编查询 ORG 0000H //汇编查询 LJMP MAIN MAIN: MOV SP, #60H MOV TMOD, #20H //...

    //若系统时钟频率为60MHZ,编写软件实现:按一下按键,产生一次外部中断0中断信号,启动T1计时,使P1.0输出周期为1ms的方波。

    1、汇编查询
           ORG 0000H           //汇编查询
           LJMP MAIN
    MAIN:  MOV  SP,   #60H
           MOV  TMOD, #20H      //工作方式选择为
           MOV  TL1,  #06H     //设置定时器1初值
           MOV  TH1,  #06H
           CLR  TR1
           SETB ET1             //中断初始化
           SETB EX0
           CLR  IT0
           SETB EA
    EXINT0:JB P3.2, EXINT0        
           SETB TR1
    TIMER1:JNB TF1,TIMER1
           CLR TF1
           CPL P1.0
           SJMP TIMER1
           END
    2、汇编终端
          ORG 0000H          //汇编中断方式
          LJMP MAIN
          ORG 0003H
          SETB TR1
          RETI
          ORG 001BH
          CPL P1.0
          RETI
     MAIN:MOV  SP,   #60H        
          MOV  TMOD, #20H         //选择工作方式
          MOV  TL1,  #06H         //设置定时器1初值
          MOV  TH1,  #06H
          CLR  TR1                //中断初始化
          SETB ET1
          SETB EX0
          SETB IT0
          SETB EA
    HERE: AJMP HERE
          END
    
          ORG 0000H      //汇编中断方式
          LJMP MAIN
          ORG 0003H
          LJMP EX0INT 
          ORG 001BH
          LJMP T1INT
     MAIN:MOV  SP,   #60H        
          MOV  TMOD, #20H//选择工作方式
          MOV  TL1,  #06H//设置定时器1初值
          MOV  TH1,  #06H
          CLR  TR1       //中断初始化
          SETB ET1          
          SETB EX0
          SETB IT0
          SETB EA
    EX0IN:SETB TR1   //开启定时器
          RETI       //中断返回
    T1INT:CPL P1.0   //P1.0取反
          RETI
          END
    3、C51查询
    #include <reg52.h>       //中断查询
    sbit P10 = P1^0;
    sbit P32 = P3^2;
    void main()
    {   
        SP=0x60;         
        TMOD = 0x20;         //选择工作模式2
        TH1 = 0x06;          //设置T1定时器初值
        TL1 = 0x06;          
        TR1 = 0;            //  初始化
        ET1 = 1;            //定时器溢出允许控制位
        IT0 = 1;             //中断触发控制方式
        EX0 = 1;            //外部中断0允许控制位
        EA = 1;              //开总中断
        while(!IE0);        //循环查询
        TR1 = 1;            //启动T1
        while(1)        
        {
            if(TF1)
            {
                P10 = !P10;    //当TF1=1时,P1.0求反
                TF1 = 0;     //TF1定时器溢出中断请求标志位清零              
            }   
        }
    }
    4、C51中断
    #include <reg52.h>           //C中断方式
    sbit P10 = P1^0;
    void main()
    {    SP=0x60;        
        TMOD = 0x20;         //选择工作模式2
        TH1 = 0x06;          //设置T1定时器初值
        TL1=0x06;
        TR1 = 0;              // 初始化 
        ET1 = 1;              //定时器溢出允许控制位
        EX0 = 1;             //外部中断0允许控制位
        IT0 = 1;            //中断触发控制方式,下降沿触发
        EA = 1;              //开总中断
        while(1);           
    }
    void exint0() interrupt 0     //外部中断0
    {   TR1 = 1;             //开定时器
    }
    void timer1() interrupt 3    //定时器中断   
    {
        P10 = !P10;         }
    展开全文
  • 第6章 中断与定时器/计数器的C51编程;...6.2 外部中断源的C51编程;6.2.1外部中断源初始化;例6-2外部中断0示例;例6-3 中断嵌套示例;6.3 定时器/计数器基本知识;6.3.1定时器/计数器的结构与控制;TCON:TFTR;6.3.2工作方式
  • 自己整理的 51单片机中断定时器计数器 说明,代码已经封装,可直接在main中调用,并带有proteus仿真
  • 外部中断定时器计数器,串口

    千次阅读 2019-09-26 21:17:28
    外部中断定时器计数器 学习如逆水行舟,不进则退,很久不用发现自己都已经将中断,定时器计数器这部分忘完了,今天将它重新复习并整理,在便于以后学习的同时也警示自己。 同时感谢普中科技的C51单片机教程...

    外部中断、定时器、计数器,串口
    串口相关(TMOD、SCON、PCON)寄存器的配置链接:https://blog.csdn.net/qq_36554582/article/details/82695138
    学习如逆水行舟,不进则退,很久不用发现自己都已经将中断,定时器,计数器这部分忘完了,今天将它重新复习并整理,在便于以后学习的同时也警示自己。

    同时感谢普中科技的C51单片机教程以及CSDN的一位作者:老马识途单片机,他的proteus教程写的很好,同时也对C语言进行了讲解,很适合初学者。

    为了偷个懒,就发图了,自己画的,不好看,但是表述还是明确,如果不想看可以参考其他人写的。
    在这里插入图片描述

    为了避免多个页面,将中断函数都写在了一个页面,可直接在main()函数调用就行,
    
    但是为了避免地址冲突,应单个运行,即仅在main()函数中取消一个子函数的注释。
    
    #include <reg52.h>
    
    #define uchar unsigned char
    #define uint unsigned int
    
    uchar counter=0;   //计数器
    
    sbit key0 = P3^5;
    sbit key1 = P3^4; 
    sbit key2 = P3^3;
    sbit key3 = P3^2;    
    
    sbit led = P1^0;	 //定义P10口是led
    
    //------------------------------------------------------//外部中断0
    //外部中断0初始化函数
    void Int0init()
    {   //设置INT0
        EA = 1;     //开总中断
        EX0 = 1;    //开(INT0)外部中断0的中断允许
        IT0 = 1;    //选择电平负跳变(下降沿)触发方式
    }
    //外部中断T0中断函数
    void int0(void) interrupt 0 using 0
    {
      P1 = 0x0f;     //点亮LED
    }
    //------------------------------------------------------//外部中断1
    //外部中断1初始化函数
    void Int1init(void)
    {  //设置INT1
        EA = 1;     //开总中断
        EX1 = 1;    //开外部中断1
        IT1 = 1;    //选择电平负跳变触发方式,
    }
    //外部中断T1中断函数
    void int1(void) interrupt 2 using 0
    {
      P1 = 0xf0;     //点亮LED
    }
    //------------------------------------------------------//定时器T0
    //定时器T0初始化
    void Timer0init()
    {   //设置T0
        TMOD|=0X01; //选择为定时器0模式,工作方式1,仅用TR0打开启动
        TH0=0XFC;	//给定时器赋初值,定时1ms
    	TL0=0X18;	
    	ET0=1;      //打开定时器0中断允许
    	EA=1;       //打开总中断
    	TR0=1;      //打开定时器	
    }
    void Timer0() interrupt 1
    {
        static uint i; 
        TH0=0XFC;	//给定时器赋初值,定时1ms
        TL0=0X18;
        i++;
        if(i==1000)
        {
        	i=0;
        	led=~led;	
        }	
    }
    //------------------------------------------------------//计数器T0
    //计数器T0外部计数方式统计计按键次数
    void  Counter0init()
    {  //设置T0    
        TMOD=0X06;   //使用定时器T0的计数工作方式,工作于工作方式2(8位自动重装)
        TH0=256-1;   //定时器T0的高8位赋值,计数值为1
        TL0=256-1;   //定时器T0的低8位赋值
        ET0=1;   //允许计数中断
        EA=1;    //开总中断
        TR0=1;   //启动计数方式工作
    }
    //T0计数中断服务函数
    void Counter0(void) interrupt 1 using 0
    {
        counter++;         //按键次数加1
        P1=counter;
    }
    //------------------------------------------------------//定时器T1
    //定时器T1初始化
    void Timer1init()
    {   //设置T1
    	TMOD|=0X10;//选择为定时器1模式,工作方式1,仅用TR1打开启动。
    	TH1=0XFC;	//给定时器赋初值,定时1ms
    	TL1=0X18;	
    	ET1=1;//打开定时器1中断允许
    	EA=1;//打开总中断
    	TR1=1;//打开定时器		
    }
    void Timer1() interrupt 3
    {
        static uint i;
        TH1=0XFC;	//给定时器赋初值,定时1ms
        TL1=0X18;
        i++;
        if(i==1000)
        {
        	i=0;
        	led=~led;	
        }	
    }
    //------------------------------------------------------//计数器T1
    //计数器T1外部计数方式统计计按键次数
    void  Counter1init()
    {   //设置T1   
        TMOD=0X60;   //使用定时器T1的计数工作方式,工作于工作方式2(8位自动重装)
        TH1=256-1;   //定时器T1的高8位赋值,计数值为1
        TL1=256-1;   //定时器T1的低8位赋值
        ET1=1;   //允许计数中断
        EA=1;    //开总中断
        TR1=1;   //启动计数方式工作
    }
    //T1计数中断服务函数
    void Counter1(void) interrupt 3 using 0
    {
        counter++;         //按键次数加1
        P1=counter;
    }
    /*******************************************************/
    void main(void)
    {
        P1 = 0xff;   //关闭LED      
    //    Int0init();//外部中断0初始化
    //    Int1init();//外部中断1初始化
    //    Timer0init();//定时器T0初始化
    //    Counter0init();//计数器T0初始化
    //    Timer1init();//定时器T1初始化
    //    Counter1init();//计数器T1初始化
         while(1);
    }
    

    Proteus仿真电路图
    在这里插入图片描述
    串口相关(TMOD、SCON、PCON)寄存器的配置链接:https://blog.csdn.net/qq_36554582/article/details/82695138

    发现很多人都在用串口程序,为了方便,我就给大家贴一个完整的串口收发程序:

    //这是一个完整的虚拟串口收发程序
    #include <reg51.h>
    #define uchar unsigned char
    #define uint unsigned int//毫秒级延时函数
    void delayms(uint ms)
    {
        uchar i;
        while(ms--)
            for(i = 0;i < 120;i++);
    }
    //字符发送函数
    void putchar(uchar dat)   
    {
        SBUF = dat;    //将待发送的字符送入发送缓冲器
        while(TI == 0);  //等待发送完成
        TI = 0;          //发送中断标志请0
    }
    //字符串发送函数
    void putstring(uchar *dat)
    {
        while(*dat != '\0')  //判断字符串是否发送完毕
        {
            putchar(*dat);   //发送单个字符
            dat++;           //字符地址加1,指向先下一个字符
            delayms(5);
        }
    }
    uchar receive(void)         
    {   //数据接收函数 -- 和本例中断函数功能相同
     uchar dat; 
     while(RI==0);     //数据没有接收完毕时等待接收
     RI=0;             //接收完毕时清零
     dat=SBUF;         //将接收缓冲器中的数据存入dat
     putchar(dat);
     return dat;       //将接收到的数据返回
    }
    void Usartinit()
    {
         SCON = 0X50;  //串口工作方式设置,串口方式1 ,允许接收
         TMOD = 0X20;  //定时器工作方式设置,T1工作于方式2
         PCON = 0X00;  //波特率倍增设置,不倍增
         TH1 = 0XFD;   //波特率设置
         TL1 = 0XFD;
         ES=1;  //打开串口接收中断
         EA = 1;    //打开总中断
         //TI = 0; 
         TR1 = 1;   //开启定时器
    }
    
    void Usart() interrupt 4
    {
        uchar temp;
        if(RI == 0) return;  //如果没有接收中断标志,返回
        ES = 0;          //关闭串口中断
        RI = 0;          //清串行中断标志位                                                                                                                      
        temp = SBUF;     //接收缓冲器中的字符
        putchar(temp);   //将接收的字符发送出去
     //   P1=temp;
        ES = 1;          //开启串口中断
    }
    void main(void)
    {
        uchar c=0;
        Usartinit();
        delaym--s(200);
        putstring("Receiving from 8051...\r\n");   
        //串口向终端发送字符串,结尾处回车换行
        putstring("----------------------\r\n");
        delayms(50); 
        while(1){
            P1= receive();
        }
    }

    虚拟串口仿真图
    TX-----------------发送
    RX----------------接收
    在这里插入图片描述

    展开全文
  • 外部中断定时器中断实验

    千次阅读 2017-10-12 18:56:11
    已知单片机晶振频率为12MHZ,自行选取定时/计数器,定时/计数器工作方式自选,编写程序,使P1.7端输出周期为0.5ms方波。解题思路: 假设方波信号的占空比为50%,已知条件可以得,机器周期为1us,所以决定采用T0...

    已知单片机晶振频率为12MHZ,自行选取定时/计数器,定时/计数器工作方式自选,编写程序,使P1.7端输出周期为0.5ms方波。

    解题思路:
    假设方波信号的占空比为50%,已知条件可以得,机器周期为1us,所以决定采用T0定时,工作方式0,已知输出周期为0.5ms,则每定时0.25ms计数使P1.7输出求反。计算的次数为0.25/1us=250次。
    则计数初值:X=8192-250=7942=1F06=1111100000110,(13位,低八位有三位不用)即TH0=F8,TL0=06。

    C语言:

    #include <reg52.h>
    sbit P11=P1^7;
    void exint() interrupt 0
    {
        TR0=1;
    }
    
    void time0int() interrupt 1
    {
        TL0=0X06;
        TH0=0XF8;
        P11=!P11;
    }
    
    void main()
    {
        SP=0X60;
        TMOD=0X00;
        TL0=0X06;
        TH0=0XF8;
        TR0=1;
        ET0=1;
        EA=1;
        while(1)
        {
            ;
        }
    }

    汇编语言:

    ORG 0000H
    LJMP    MAIN
    ORG 0000H
    LJMP    INTOP
    ORG 000BH
    LJMP    T0P
    ORG 0030H
    MAIN:   MOV SP,#60H
            MOV TMOD,#00H
            MOV TH1,#0F8H
            MOV TL1,#006H
            SETB ET0
            SETB TR0
            SETB EA
    HERE: SJMP  HERE
    INTOP: SETB TR1
    T0P:    MOV TL0,#006H
            MOV TH0,#0F8H 
            CPL P1.7                
            END

    附上仿真图:
    这里写图片描述

    展开全文
  • 中断: 什么是中断,就是打断,你一开始在做一件事,突然意外发生...件意外(中断服务),处理完意外后你继续做刚才那件事(中断返回),这就是中断,而单片机中的中断也是如此, 单片机中有五个中断源,两个优先级...
  • 外部中断和定时器中断

    万次阅读 多人点赞 2018-11-20 13:53:27
    8.外部中断实现代码 9.定时器/计数器中断工作原理 10.定时器/计数器定时值的计算 11.定时器/计数器实现代码 1.什么是中断 中断就是指CPU正在执行一项任务A,然后突然停止任务A去执行任务B,执行完任务B再回来...
  • 外部中断,定时器中断的理解

    千次阅读 2021-04-25 23:20:53
    外部中断一般是由计算机外设发出的中断请指求,如:键盘中断、打印机中断、定时器中断等。外部中断一般指io高低电平来触发并响应io中断函数 定时器中断 定时器中断是指计数器在晶振的震荡下一直加数一直加到一定...
  • 定时器和计数器以及外部中断的使用定时器中断使用计数器中断使用外部中断的使用 定时器中断使用 /*方式1:不能自动重载*/ void Timer0init() { TMOD = 0x01; TH0 = (6553-5000)/256/(12/12); TL0 = ...
  • 51——中断定时器 / 计数器中断系统中断概念中断作用中断源及相关寄存器中断源及优先级中断允许寄存器 IE中断优先级控制寄存器低 IP定时器/计数器概念定时器/计数器控制寄存器 TCON 中断系统 中断概念 CPU在处理某...
  • C51外部中断定时器

    2021-04-13 14:56:39
    C51外部中断与按键 在这里我们还是通过外部中断配合按键来控制led的亮与灭 原理图(此图来自普中C51)
  • 然后利用32的外部中断和定时器来测量32输出的波形 硬件:STM32F103C8T6核心板、示波器、串口调试助手 所用到的的引脚为PA8PA0。 测量方案 在第一次外部中断(上升沿触发)到之时,开启定时器,同时计数器清零。然后...
  • 8051定时/计数器定时器0(T0)、定时器1(T1)、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。 二、定时的原理——计数周期 当定时/计数器设置为定时工作方式时,计数器对内部机器周期进行计数,每过一个...
  • 51单片机的中断和定时器计数器

    千次阅读 2019-01-13 11:25:01
    中断使得高低速设备可以协调工作(低速设备完成工作后通过中断的方式通知高速设备一次处理一批数据),中断还可以根据不同的优先级实现嵌套...TCON 的低 4 位用作外部中断,高 4 位用作定时控制。地址是 88H。 TCON ...
  • STM32中断(外部中断和定时器中断)

    千次阅读 多人点赞 2019-05-27 17:22:00
    spi,iic的中断51单片机不一样,这些在stm32属于外设,是外部中断。 因为STM32的中断非常多,因此必须设置中断优先级 STM32有两个优先级的概念:抢占式优先级响应式优先级(亚优先级,副优先级) 抢占式优先级:...
  • 2、掌握80C51单片机定时器/计数器的程序控制方法。 实验原理简介 中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起...
  • STM32F407芯片支持82个可屏蔽中断通道,每个中断通道都具备自己的中断优先级控制字节(8位,但是STM32F407中只使用4位,高4位有效),用于表达优先级的高4位又被为组成抢占式优先级响应优先级,通常也把
  • 然后利用32的外部中断和定时器来测量32输出的波形 硬件:STM32F103C8T6核心板、示波器、串口调试助手 所用到的的引脚为PA8PA0。 测量方案:在第一次外部中断(上升沿触发)到之时,开启定时器,同时计数器清零。...
  • 单片机中断系统与定时器/计数器应用;一MCS-51单片机中断系统;1中断源;2与中断有关的特殊功能寄存器;1定时器/计数器控制寄存器 TCON;...EA CPU 总中断允许位 EA=0 关中断EA=1 开中断 EX0 外部中断 0 中断允许
  • 定时器和外部中断同时控制led

    千次阅读 2020-11-20 11:14:59
    定时器控制led50ms秒变化一次 中断令led全灭 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit K1=P3^2; void delay(int i) { while(i--); } void init() { TMOD = 0x01; ...
  • (C51学习四)外部中断和定时器中断

    万次阅读 多人点赞 2017-02-25 14:27:52
    8.外部中断实现代码 1.什么是中断 中断就是指CPU正在执行一项任务A,然后突然停止任务A去执行任务B,执行完任务B再回来继续执行任务A的过程。 例如:你正在看电视,然后电话响了,你就停止看电视,跑去接电话,接...
  • 让内部 T0 按计数器模式方式 1 工作,对 P3.4(T0)引脚进行计数。使用 T1 作 定时器,0.1s 中断一次,看 T0 内每 0.1s 来了多少脉冲,将其数值按二进制数在 P1 口 驱动 LED 灯上显示出来,5 秒后再次测试。
  • 定时器/计数器中断

    2022-02-12 11:19:05
    定时器的介绍、中断系统的一些介绍、实例演示
  • 外部中断 计时器、定时器中段 串口中断 中断允许控制(控制中断方式) 总中断 各个中断 中断请求标志(控制触发方式) 外部中断触发方式IT0、IT1 标志位IE0、IE1 计时器、定时器溢出中断TF0、TF1...
  • 定时器和计数器可能是MCU设计中普遍的外设。... 定时器和计数器以一些非常简单的操作模式开始,以替换用于计数外部事件的公共程序循环,用于计时内部和外部操作以及用于收集关键MCU的各种统计信息操作。 M
  • 51单片机内部定时器计数器实验

    千次阅读 2020-12-08 12:43:42
    51单片机内部定时器计数器实验 一、实验内容 使用MCS-51内部定时/计数器,定时1秒钟,CPU运用定时中断方式,实现每1秒钟输出状态发生一次反转,即发光管每隔1秒钟亮一次(P1.7接LED)。 根据实验内容编写一个程序...
  • 这个实验的内容是:通过外部中断控制流水灯的流向,通过定时器来确定流水灯的流动速度,采用多个源文件多个头文件编写C语言程序(即一个源文件对应一个头文件),并在proteus中在仿真。 关于多个源文件多个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,843
精华内容 5,137
关键字:

外部中断和定时器计数器实验