久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機定時器時鐘程序 [打印本頁]

作者: 瀟博    時間: 2025-5-13 18:34
標題: 單片機定時器時鐘程序
#include "reg52.h"


typedef unsigned int u16;
typedef unsigned char u8;


#define SMG_A_DP_PORT        P0

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共陰0-F

u8 XS[8];//8段數碼管
u16 h,min,s,ms;//時,分,秒 毫秒;


void delay_10us(u16 ten_us)//當傳入Ten_us=1時,大約延時10us
{
        while(ten_us--);
}

void ZD0_init(void)
{
          TMOD|=0X01;//選擇為定時器0模式,工作方式1
          TH0=0XFC;//給定時器賦初值,定時1ms
          TL0=0X17;
          ET0=1; //打開定時器0中斷
          EA=1;        //打開總中斷
          TR0=1;//打開定時器
}

void smg_display(void)//數碼管主程序
{
        u8 i=0;
               
                for(i=0;i<8;i++)
                {                                 
                        switch(i)//位選
                        {
                                case 0: LSC=1;LSB=1;LSA=1;break;
                                case 1: LSC=1;LSB=1;LSA=0;break;
                                case 2: LSC=1;LSB=0;LSA=1;break;
                                case 3: LSC=1;LSB=0;LSA=0;break;
                                case 4: LSC=0;LSB=1;LSA=1;break;
                                case 5: LSC=0;LSB=1;LSA=0;break;
                                case 6: LSC=0;LSB=0;LSA=1;break;
                                case 7: LSC=0;LSB=0;LSA=0;break;
                        }
                        P0=XS[i];//段送碼
                        delay_10us(100);
                        P0=0x00;//消音
                }         
}


void xianshishu()//第7 6 4 3 1 0位顯示數字
{          
        XS[0]=gsmg_code[s%10];  //秒位
        XS[1]=gsmg_code[s/10];        //秒位
        XS[3]=gsmg_code[min%10];//分位
        XS[4]=gsmg_code[min/10];//分位
        XS[6]=gsmg_code[h%10];//時位
        XS[7]=gsmg_code[h/10];//時位
}
void hg()//橫杠閃爍判斷
{
                if(ms==500)//橫杠500毫秒的判斷
                {
                        XS[2]=0x40;//橫杠顯示
                        XS[5]=0x40;//橫杠顯示
                }
                else
                {

                  XS[2]=0x00;//橫杠不顯示
                  XS[5]=0x00;//橫杠不顯示
                }
}
void main()
{
        ZD0_init();//定時器初始化
        while(1)
        {       
                xianshishu();//顯示位數程序       
                  smg_display();//數碼管程序
        }
}
void ZD0() interrupt 1 //定時器0中斷函數
{
       
        TH0=0XFC;//給定時器賦初值,定時1ms
        TL0=0X17;
        ms++;
        if(ms>=1000)//1000*ms=1s
        {
           ms=0;//毫秒清零
           s++;
                  if(s>=60)//60秒
                {
                        s=0;//秒清零
                        min++;
                    if(min>=60)//60分鐘
                        {
                           min=0;//分清零
                           h++;
                                if(h>=24)//24小時
                                {
                                  h=0;//時清零
                       
                                }
                        }
                }       
        }
       
        if(ms%500==0)////橫杠500毫秒的判斷
        {
          hg();        //橫杠程序
        }
}


作者: cy009    時間: 2025-5-14 11:36
TH0=0XFC;//給定時器賦初值,定時1ms
TL0=0X17;
樓主這個初始值是不是有誤呢?晶振頻率多少?
作者: 瀟博    時間: 2025-5-14 15:09
cy009 發表于 2025-5-14 11:36
TH0=0XFC;//給定時器賦初值,定時1ms
TL0=0X17;
樓主這個初始值是不是有誤呢?晶振頻率多少?

晶振 12   0~65535  你換算下多少  FC17
作者: cy009    時間: 2025-5-14 16:53
瀟博 發表于 2025-5-14 15:09
晶振 12   0~65535  你換算下多少  FC17

正確應是 FC18




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产盗摄一区二区 | 免费av网站在线观看 | 成人av网站在线观看 | 亚洲理论片 | 五月天毛片 | 91综合在线 | 一本色道久久加勒比精品 | 欧美精品第一页 | 狠狠干婷婷| 国产精品自拍小视频 | 欧美一级久久 | 欧美一区不卡 | 日韩精品在线观看视频 | 精品久久一区二区三区 | 亚洲一区免费视频 | 欧美一级片网站 | 98国产精品| 国产精品美女久久 | 午夜欧美 | 国产91丝袜在线播放 | 亚洲免费专区 | 久久精品视| 成人毛片在线播放 | 亚洲免费精品视频 | 久久久精品一区二区 | 久久精品国产成人av | 婷婷色综合 | 精品免费在线 | 欧美大白屁股 | 国产99页 | 亚洲精品久久 | 亚洲网站在线观看 | 午夜影院在线观看视频 | 精品国产乱码一区二区三 | 久久cao| 精品视频99 | 精品国产一区二区在线观看 | 国产欧美日本 | 免费人成 | 亚洲激情一区 | 日本成人久久 |