欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)+1206顯示時(shí)間程序, leds一秒一變化,就不正常了 [打印本頁(yè)]

作者: abeimao    時(shí)間: 2020-7-12 10:15
標(biāo)題: 單片機(jī)+1206顯示時(shí)間程序, leds一秒一變化,就不正常了
各位大佬,我是個(gè)業(yè)余愛(ài)好者,基礎(chǔ)差,,請(qǐng)教大家了,,
我想讓1206上顯示,時(shí)間(小時(shí):分種,秒),不知道哪里錯(cuò)了,1206顯示秒的地方,不是一秒一變化,同時(shí)進(jìn)入一秒
的IF中不見(jiàn)leds變化,1206,顯示的部分全刪了,進(jìn)入一秒的IF  leds是有變化的,,一個(gè)個(gè)加的測(cè)試,也像一到1206寫(xiě)
命令處和1206寫(xiě)數(shù)據(jù)的地方,, leds一秒一變化,就不正常了,,(1206顯示秒的地方,不是一秒一變化,)

謝謝謝謝

單片機(jī)源程序如下:
#include <reg52.h>
unsigned char ms;
//unsigned char ml;
sbit sm=P2^6;          //RS 數(shù)據(jù)/命令選擇。H/L.
sbit dx=P2^5;          // R/W讀寫(xiě)選擇。H/L.
sbit eo=P2^7;          //  使能
sbit leds=P2^0;
sbit ledf=P2^1;
sbit ledh=P2^2;
unsigned char  t;
unsigned char code yihang[]="BeiJingShiJian";
unsigned char code erhang[]="0123456789";

/* 開(kāi)定時(shí)器T0.定時(shí)5MS   RST15F204 */
void InitTimer0()
{
    TMOD = 0x01;        //設(shè)定定時(shí)器0工作方式(16位定時(shí)器 )
    TH0 = 0xEC;            //
    TL0 = 0x78;        //
    EA = 1;                   // 開(kāi)總中斷
    ET0 = 1;           // 開(kāi)定時(shí)器0中斷
    TR0 = 1;           // 啟動(dòng)定時(shí)器0
}




void Lcd1602_Delay1ms(unsigned int c)   //誤差 0us
{
    unsigned char a,b;
        for (; c>0; c--)                                                                                                                 
        {
                 for (b=199;b>0;b--)
                 {
                          for(a=1;a>0;a--);
                 }      
        }
            
}


/*寫(xiě)命令比如光標(biāo)顯示與不顯示,需不需要移屏,在液晶什么位置顯示        */
void xieml (unsigned char ml)
  {
        eo=0;
          dx=0;           // R/W讀寫(xiě)選擇。H/L..
        sm=0;           //RS 數(shù)據(jù)/命令選擇。H/L.
        P0=ml;
        Lcd1602_Delay1ms(2);
        eo=1;
        Lcd1602_Delay1ms(2);
        eo=0;
  }

/*寫(xiě)數(shù)據(jù)比如在液晶顯示什么容        */
void xiesj(unsigned char sj)   
{
        eo=0;
    dx=0;           // R/W讀寫(xiě)選擇。H/L.
        sm=1;           //RS 數(shù)據(jù)/命令選擇。H/L.
        P0=sj;
        Lcd1602_Delay1ms(2);
        eo=1;
        Lcd1602_Delay1ms(2);
        eo=0;                                                         
}

/*1206初始化        */
void chushiha()
{

   xieml(0X38);
   xieml(0X0c);
  // xieml(0X06);
   xieml(0X01);
}


/*主函數(shù),寫(xiě)入固定時(shí)間,驅(qū)動(dòng)某個(gè)繼電器        */
void main()
{
  unsigned char n,s,f,h,sh,sg,fh,fg,hh,hg;
  InitTimer0();
  chushiha();

  while(1)
  {

  if(ms==200)
  {
   ms=0; s=s+1; leds=~leds;   //為了檢測(cè)觀察程序,加了一秒leds亮滅一次。
  }


  if(s==59)
  {
   s=0; f=f+1;ledf=~ledf;           //為了檢測(cè)觀察程序,加了一分leds亮滅一次。
  }

  if(f==59)
  {
   f=0; h=h+1; ledh=~ledh;
  }
  if(h==11)
  {
   h=0;
  }           



  sg=s%10; sh=s/10;                // sg秒的個(gè)位數(shù),sh秒十位數(shù)。
  fg=f%10; fh=f/10;                // fg分的個(gè)位數(shù),fh分十位數(shù)。
  hg=h%10; hh=h/10;                // hg時(shí)的個(gè)位數(shù),hh時(shí)十位數(shù)。

  xieml(0X80+0X01);
  for(n=0;n<14;n++)
  {
  xiesj(yihang[n]);            //1206第一行顯示BeiJingShiJian。
}
         
  xieml(0X80+0X44);
  xiesj(erhang[hh]);          //1206第二行顯示時(shí)間時(shí)的十位數(shù)。
  xieml(0X80+0X45);
  xiesj(erhang[hg]);         //1206第二行顯示時(shí)間時(shí)的個(gè)位數(shù)。
  xieml(0X80+0X46);
  xiesj(':');


  xieml(0X80+0X47);
  xiesj(erhang[fh]);           //1206第二行顯示時(shí)間分的十位數(shù)。
  xieml(0X80+0X48);
  xiesj(erhang[fg]);         //1206第二行顯示時(shí)間分的個(gè)位數(shù)。
  xieml(0X80+0X49);
  xiesj(',');
         

  xieml(0X80+0X4A);
  xiesj(erhang[sh]);          //1206第二行顯示時(shí)間秒的十位數(shù)。
  xieml(0X80+0X4B);
  xiesj(erhang[sg]);         //1206第二行顯示時(shí)間秒的個(gè)位數(shù)。


  }
}


void T0_time() interrupt 1
{                  
  TH0 = 0xEC;            //
  TL0 = 0x78;
  ms++;
// if(ms==200){ms=0;led=~led;}


}



作者: 不要黑    時(shí)間: 2020-7-12 17:52
不是1s變化具體是不變化還是2s變化,delay1ms那個(gè)函數(shù)用for循環(huán)延時(shí)不準(zhǔn)確的,寫(xiě)數(shù)據(jù)時(shí)間過(guò)長(zhǎng)可能導(dǎo)致計(jì)時(shí)不準(zhǔn),將if(ms==200)改成if(ms>199),估計(jì)會(huì)好一些
作者: abeimao    時(shí)間: 2020-7-13 13:37
不要黑 發(fā)表于 2020-7-12 17:52
不是1s變化具體是不變化還是2s變化,delay1ms那個(gè)函數(shù)用for循環(huán)延時(shí)不準(zhǔn)確的,寫(xiě)數(shù)據(jù)時(shí)間過(guò)長(zhǎng)可能導(dǎo)致計(jì)時(shí) ...

有變化,,但太正常了 ,理想是一秒,,實(shí)際都快1分了
作者: 不要黑    時(shí)間: 2020-7-14 14:39
abeimao 發(fā)表于 2020-7-13 13:37
有變化,,但太正常了 ,理想是一秒,,實(shí)際都快1分了

是仿真的么?仿真中有沒(méi)有模擬電路,可以把源文件發(fā)上來(lái)測(cè)試一下




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1