首页 > 软件开发 > C语言 >

外部中断定时器c语言程序详解(2)

来源:互联网 2023-03-16 19:08:20 434

外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

工具/原料

  • 电脑

方法/步骤

  • 1

    利用外部中断1,定时器1从数码管到流水灯显示cDf办公区 - 实用经验教程分享!

  • 2

    #include "reg52.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义cDf办公区 - 实用经验教程分享!

    #include "intrins.h"cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 3

    #define uint unsigned intcDf办公区 - 实用经验教程分享!

    #define uchar unsigned charcDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 4

    uchar led,n,i,s,count=0;cDf办公区 - 实用经验教程分享!

    uchar smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7fcDf办公区 - 实用经验教程分享!

    ,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-FcDf办公区 - 实用经验教程分享!

    uchar sm[]={0x00,0x01,0x03,0x04};//数码管扫描cDf办公区 - 实用经验教程分享!

    uchar str[4];//显示两位数码管cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 5

    /******************************************************************/cDf办公区 - 实用经验教程分享!

    /* 延时函数声明 */cDf办公区 - 实用经验教程分享!

    /******************************************************************/cDf办公区 - 实用经验教程分享!

    /*void mdelay(uint t)cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    uchar n;cDf办公区 - 实用经验教程分享!

    for(;t>0;t--)cDf办公区 - 实用经验教程分享!

    for(n=0;n125;n )cDf办公区 - 实用经验教程分享!

    {;}cDf办公区 - 实用经验教程分享!

    }*/cDf办公区 - 实用经验教程分享!

    /*大约一毫秒的延时函数*/cDf办公区 - 实用经验教程分享!

    void mdelay(uint t)cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    uchar n;cDf办公区 - 实用经验教程分享!

    while(t--)cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    for(n=0;n123;n )cDf办公区 - 实用经验教程分享!

    {;}cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 6

    /******************************************************************/cDf办公区 - 实用经验教程分享!

    /* 主函数 1 */cDf办公区 - 实用经验教程分享!

    /******************************************************************/cDf办公区 - 实用经验教程分享!

    void main()cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    EA=1;//开总中断开关cDf办公区 - 实用经验教程分享!

    EX1=1;//打开外部中断0cDf办公区 - 实用经验教程分享!

    INT1=1;//触发方式为下降沿触发cDf办公区 - 实用经验教程分享!

    TH1=0x38;//设置初值cDf办公区 - 实用经验教程分享!

    TL1=0x38;cDf办公区 - 实用经验教程分享!

    ET1=1;//打开定时器中断cDf办公区 - 实用经验教程分享!

    TR1=1;//启动定时器cDf办公区 - 实用经验教程分享!

    TMOD=0x20;//设置定时器0为工作方式1cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 7

    while(1)cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    for(i=0;i4;i )//数码管显示数据cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    P1=0xff;cDf办公区 - 实用经验教程分享!

    P2=sm[i];cDf办公区 - 实用经验教程分享!

    P0=smg[str[i]];cDf办公区 - 实用经验教程分享!

    mdelay(5);cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 8

    void int1() interrupt 2cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    uchar c;cDf办公区 - 实用经验教程分享!

    led=0xfe;cDf办公区 - 实用经验教程分享!

    P2=0x00;cDf办公区 - 实用经验教程分享!

    for(c=0;c8;c )//流水灯循环一次cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    P1=led;cDf办公区 - 实用经验教程分享!

    led=_crol_(led,1);//左移函数cDf办公区 - 实用经验教程分享!

    mdelay(1000);cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    外部中断定时器c语言程序详解(2)cDf办公区 - 实用经验教程分享!

  • 9

    void time1() interrupt 3cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    count ;cDf办公区 - 实用经验教程分享!

    if(count==50)//延时一秒0-60显示cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    count=0;cDf办公区 - 实用经验教程分享!

    str[2]=n/10;cDf办公区 - 实用经验教程分享!

    str[3]=n;cDf办公区 - 实用经验教程分享!

    n ;cDf办公区 - 实用经验教程分享!

    if(n==100)//0-100cDf办公区 - 实用经验教程分享!

    {cDf办公区 - 实用经验教程分享!

    n=0;cDf办公区 - 实用经验教程分享!

    str[0]=s/10;cDf办公区 - 实用经验教程分享!

    str[1]=s;cDf办公区 - 实用经验教程分享!

    s ;cDf办公区 - 实用经验教程分享!

    if(s==60)//0-60cDf办公区 - 实用经验教程分享!

    s=0;cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

    }cDf办公区 - 实用经验教程分享!

  • 9相关内容未经授权抓取自百度经验
  • 10

    cDf办公区 - 实用经验教程分享!

    本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。cDf办公区 - 实用经验教程分享!

    cDf办公区 - 实用经验教程分享!

    cDf办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!cDf办公区 - 实用经验教程分享!


    标签: C语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码