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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2334|回復: 3
打印 上一主題 下一主題
收起左側

單片機+1206顯示時間程序, leds一秒一變化,就不正常了

[復制鏈接]
跳轉到指定樓層
樓主
ID:64817 發(fā)表于 2020-7-12 10:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大佬,我是個業(yè)余愛好者,基礎差,,請教大家了,,
我想讓1206上顯示,時間(小時:分種,秒),不知道哪里錯了,1206顯示秒的地方,不是一秒一變化,同時進入一秒
的IF中不見leds變化,1206,顯示的部分全刪了,進入一秒的IF  leds是有變化的,,一個個加的測試,也像一到1206寫
命令處和1206寫數(shù)據的地方,, leds一秒一變化,就不正常了,,(1206顯示秒的地方,不是一秒一變化,)

謝謝謝謝

單片機源程序如下:
#include <reg52.h>
unsigned char ms;
//unsigned char ml;
sbit sm=P2^6;          //RS 數(shù)據/命令選擇。H/L.
sbit dx=P2^5;          // R/W讀寫選擇。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";

/* 開定時器T0.定時5MS   RST15F204 */
void InitTimer0()
{
    TMOD = 0x01;        //設定定時器0工作方式(16位定時器 )
    TH0 = 0xEC;            //
    TL0 = 0x78;        //
    EA = 1;                   // 開總中斷
    ET0 = 1;           // 開定時器0中斷
    TR0 = 1;           // 啟動定時器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--);
                 }      
        }
            
}


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

/*寫數(shù)據比如在液晶顯示什么容        */
void xiesj(unsigned char sj)   
{
        eo=0;
    dx=0;           // R/W讀寫選擇。H/L.
        sm=1;           //RS 數(shù)據/命令選擇。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ù),寫入固定時間,驅動某個繼電器        */
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;   //為了檢測觀察程序,加了一秒leds亮滅一次。
  }


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

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



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

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


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

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


  }
}


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


}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:789121 發(fā)表于 2020-7-12 17:52 | 只看該作者
不是1s變化具體是不變化還是2s變化,delay1ms那個函數(shù)用for循環(huán)延時不準確的,寫數(shù)據時間過長可能導致計時不準,將if(ms==200)改成if(ms>199),估計會好一些
回復

使用道具 舉報

板凳
ID:64817 發(fā)表于 2020-7-13 13:37 | 只看該作者
不要黑 發(fā)表于 2020-7-12 17:52
不是1s變化具體是不變化還是2s變化,delay1ms那個函數(shù)用for循環(huán)延時不準確的,寫數(shù)據時間過長可能導致計時 ...

有變化,,但太正常了 ,理想是一秒,,實際都快1分了
回復

使用道具 舉報

地板
ID:789121 發(fā)表于 2020-7-14 14:39 | 只看該作者
abeimao 發(fā)表于 2020-7-13 13:37
有變化,,但太正常了 ,理想是一秒,,實際都快1分了

是仿真的么?仿真中有沒有模擬電路,可以把源文件發(fā)上來測試一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久久久久久久 | 国产精品不卡一区二区三区 | 国产高清精品在线 | 成人国产a | 大学生a级毛片免费视频 | 国产韩国精品一区二区三区 | 成人免费在线网 | 超碰高清 | 一区亚洲 | 国产成人久久av免费高清密臂 | www.狠狠干 | 欧美激情视频一区二区三区在线播放 | 一区二区三区精品在线视频 | 久久精品中文字幕 | 欧美日韩综合精品 | 国产精品无码久久久久 | 日韩免费毛片视频 | 中文字幕av高清 | 精品综合久久久 | aa级毛片毛片免费观看久 | 日韩欧美在线观看视频网站 | 91香蕉嫩草 | 成人无遮挡毛片免费看 | 久久在线看 | 精品久久久久一区二区国产 | 成人蜜桃av | 日日干夜夜干 | 亚洲综合大片69999 | 一区二区三区精品视频 | www.黄网| 精品国产一区二区三区性色av | 成人免费视频观看视频 | 黄色一级免费看 | 国产精品色 | 一区中文字幕 | www.久草.com| 亚洲综合无码一区二区 | 国产综合久久久久久鬼色 | 青青草av在线播放 | 99热播精品 | 国产精品亚洲一区二区三区在线 |