找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1869|回复: 3
收起左侧

小白白,求详细单片机代码注释

[复制链接]
ID:730528 发表于 2020-4-30 18:56 | 显示全部楼层 |阅读模式
88黑币
#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;
                            }
                    }
            }     
        }
}

最佳答案

查看完整内容

#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; //开总中 ...
回复

使用道具 举报

ID:539117 发表于 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
                            }
                    }
            }     
        }
}
回复

使用道具 举报

ID:383215 发表于 2020-4-30 21:45 | 显示全部楼层
好像是用中断完成的一个0-24小时0分0秒的计时程序,程序好像不太完整,这么简单的程序有什么好注释的?自己编一个也比这个强,慢慢学会自己编吧。
回复

使用道具 举报

ID:730528 发表于 2020-4-30 22:03 | 显示全部楼层
lzw1997 发表于 2020-4-30 21:34
#include "std_for_wym.h"//头文件

//bit bTime_50Ms = 0;

谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表