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

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

来源:互联网 2023-03-16 19:12:01 385

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

工具/原料

  • 电脑

方法/步骤

  • 1

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

  • 2

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

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

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

  • 2相关内容非法爬取自百度经验
  • 3

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

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

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

  • 4

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

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

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

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

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

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

  • 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 6

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

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

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

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

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

    TH0=0x3c;//设置初值zjR办公区 - 实用经验教程分享!

    TL0=0xb0;zjR办公区 - 实用经验教程分享!

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

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

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

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

  • 7

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

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

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

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

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

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

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

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

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

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

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

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

  • 8

    void int0() interrupt 0zjR办公区 - 实用经验教程分享!

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

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

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

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

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

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

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

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

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

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

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

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

  • 9

    void time0() interrupt 1zjR办公区 - 实用经验教程分享!

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

    TH0=0x3c;zjR办公区 - 实用经验教程分享!

    TL0=0xb0;zjR办公区 - 实用经验教程分享!

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

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

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

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

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

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

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

    if(n==60)zjR办公区 - 实用经验教程分享!

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

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

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

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

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

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

  • 10

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

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


    标签: C语言

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