特级茶叶 2022-05-28 15:47 采纳率: 78.6%
浏览 82
已结题

单片机计数器定时器实验

img


参考上图程序并修改,实现两位显示的秒表,秒表时间范围为100秒(00-99),要求采用数码管的最右边两位数码管显示,采用定时器T0编写程序。

  • 写回答

3条回答 默认 最新

  • 智者知已应修善业 2022-05-28 17:11
    关注

    数码管的最右边两位数码管显示,数码管是几位的?位引脚是怎么接的?给出电路图才好写代码,代码依据电路写的。假设是8位数码管位引脚接P1,则修改代码

    # include <reg51.h>
    #define uint unsigned int
    #define uchar unsigned char
    uchar n=0,shiw=0,gew=0;
    uchar code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
    void main()
     {
    uchar y=0;
    TMOD|=0x01;
    EA=1;
    ET0=1;
    TR0=1;
    TH0=(65536-15536)/256;//3cb0=15536
    TL0=(65536-15536)%256;  
    while(1)
    {
    P0=~smgduan[gew];
    P1=0x01;
    while(++y);
    P0=~smgduan[shiw];
    P1=0x02;
    while(++y);
    P0=P1=0x00;//P0=P1=0xff;
    }
    }
    void T0_time() interrupt 1   
    {
    uchar i;
    TH0=(65536-15536)/256;
    TL0=(65536-15536)%256;
    i++;
    if(i==20)
    {
    i=0;
    P0=~smgduan[n++];
    if(n==100)n=0;
    shiw=n/10;
    gew=n%10; 
    }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 赞助了问题酬金5元 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来