标题: 小白白,求详细单片机代码注释 [打印本页]

作者: chenyuanyi    时间: 2020-4-30 18:56
标题: 小白白,求详细单片机代码注释
#include "std_for_wym.h"

//bit bTime_50Ms = 0;
bit bTime_500Ms = 0;
bit time_1000ms = 0;
//定时器初始化函数
void InitTimer(void)
{
        TMOD&=0X0F;
        TMOD|=0X10;     //定时器0工作于方式1
        TH1=0X4C;
        TL1=0X00;       //50MS
        ET1=1;          //打开定时器0
        TR1=1;          //启动定时器0
        EA=1;           //开总中断
}

unsigned char time_when=0,time_points=0,time_seconds=0;
void Time1(void) interrupt 3   
{
        static char num1;
        TH1=0X4C;
        TL1=0X00;       //50MS 11.0592MHz

        if(++num1 >= 20)
        {
                num1 = 0;
                time_1000ms=1;
                time_seconds++;      
                if (time_seconds==60)
            {
                        time_seconds=0;
                time_points++;      
                        if (time_points==60)
                    {
                        time_points=0;
                        time_when++;      
                                if (time_when==23)
                            {
                                //TR0 = 0;
                            }
                    }
            }     
        }
}


作者: lzw1997    时间: 2020-4-30 18:56
#include "std_for_wym.h"//头文件

//bit bTime_50Ms = 0;
bit bTime_500Ms = 0;
bit time_1000ms = 0;
//定时器初始化函数
void InitTimer(void)
{
        TMOD&=0X0F;//保留T1原先设置,T2不动
        TMOD|=0X10;     //定时器0工作于方式1
        TH1=0X4C;
        TL1=0X00;       //50MS
        ET1=1;          //打开定时器0
        TR1=1;          //启动定时器0
        EA=1;           //开总中断
}

unsigned char time_when=0,time_points=0,time_seconds=0;//when时钟,points分钟,second是秒钟
void Time1(void) interrupt 3   //T0是定时器/计算器中断 在51里优先级是3
{
        static char num1; //num1设置静态,只有第一次进来调用,之后不再调用,根据后面的操作而改变
        TH1=0X4C;
        TL1=0X00;       //50MS 11.0592MHz//初始值还原,从头计时

        if(++num1 >= 20) //num1自加,中断进来直到当加到20时进入,否则退出等待下次中断进入
        {
                num1 = 0;//num1还原
                time_1000ms=1;
                time_seconds++; //秒钟加     
                if (time_seconds==60) //中断进来直到当加到加到60进去
            {
                        time_seconds=0;//秒钟归0
                time_points++;      //分钟加
                        if (time_points==60) //中断进来直到当加到分钟加到60进去
                    {
                        time_points=0;//分钟归0
                        time_when++;  //时钟加   
                                if (time_when==23) //时钟加到23进去
                            {
                                //TR0 = 0;//时钟归0
                            }
                    }
            }     
        }
}

作者: kmsj    时间: 2020-4-30 21:45
好像是用中断完成的一个0-24小时0分0秒的计时程序,程序好像不太完整,这么简单的程序有什么好注释的?自己编一个也比这个强,慢慢学会自己编吧。
作者: chenyuanyi    时间: 2020-4-30 22:03
lzw1997 发表于 2020-4-30 21:34
#include "std_for_wym.h"//头文件

//bit bTime_50Ms = 0;

谢谢大佬




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1