【51单片机计时器1中断的60秒数码管倒计时】2023-1-23

51单片机的60秒数码管倒计时缘由https://ask.csdn.net/questions/7859269

cpp 复制代码
`#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int
uchar code table_du[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
void delay(){    uint m;for(m=0;m<255;m++);}    
uchar j=0,sum=60;
void main(){
    TMOD=0x01;
    TH0=(65535-50000)/256;
    TL0=(65535-50000)%256;
    TR0=1;
    EA=1;
    ET0=1;
    while(1){
        P2=255-1;
        P0=table_du[sum/10];
        delay();P0=P2=255;
        P2=255-2;
        P0=table_du[sum%10];
            delay();P0=P2=255;

    }
}
void time0() interrupt 1{
    TH0=(65535-50000)/256;
    TL0=(65535-50000)%256;
    j++;
       if(j==20){
        j=0;
        sum--;
        if(sum==0)
            sum=60;
    }
}`


计时器中断1秒计时在程序简单的时候还是比较准确的,一旦程序复杂则定时时间不准确,因此程序返回主函数周期越小则用定时器作为1秒时钟的准确率就至关重要,也就是响应中断的时间能否尽量小,若能尽量小则1秒的计时误差也相对小则计时精度就高。

相关推荐
沪漂的码农几秒前
C语言队列与链表结合应用完整指南
c语言·链表
艾为电子11 分钟前
【技术贴】全链路协同!艾为电子开启端侧AI音频“精而优”时代
经验分享
asdzx6713 分钟前
使用 Python 将 PDF 转换为 PNG
经验分享
freedom_1024_15 分钟前
LRU缓存淘汰算法详解与C++实现
c++·算法·缓存
Metaphor69220 分钟前
Java 在 Excel 文件中添加或删除分节符
经验分享
博语小屋23 分钟前
力扣11.盛水最多的容器(medium)
算法·leetcode·职场和发展
Swift社区30 分钟前
LeetCode 423 - 从英文中重建数字
算法·leetcode·职场和发展
朱嘉鼎1 小时前
消费级MCU如何管理内存
单片机·嵌入式硬件
点云SLAM1 小时前
算法与数据结构之二叉树(Binary Tree)
数据结构·算法·二叉树·深度优先·广度优先·宽度优先
小龙报1 小时前
《算法通关指南:算法基础篇 --- 一维前缀和 — 1. 【模板】一维前缀和,2.最大子段和》
c语言·数据结构·c++·算法·职场和发展·创业创新·visual studio