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

標題: 單片機中斷程序編寫時鐘出現(xiàn)不會調(diào)用程序是什么回事? [打印本頁]

作者: coisni    時間: 2020-8-28 16:31
標題: 單片機中斷程序編寫時鐘出現(xiàn)不會調(diào)用程序是什么回事?
我便寫完程序后下載到單片機里只能初始化,時鐘不會走動
并且出現(xiàn)警告


時鐘程序.docx

13.56 KB, 下載次數(shù): 8


作者: HC6800-ES-V2.0    時間: 2020-8-28 17:32
你的截圖顯示的警告是那個函數(shù)沒被調(diào)用。為什么沒被調(diào)用?是不是你說的什么中斷程序沒被調(diào)用?我看不到程序,當然就不知道了嘛。
作者: angmall    時間: 2020-8-28 17:35
給你改了,對比一下就知道哪里錯了。



  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit lcdrs=P3^5;
  7. sbit lcdwr=P3^6;
  8. sbit lcden=P3^4;
  9. uchar code table[]="  2020-8-27 Thu";
  10. uchar code table1[]="   00:00:00";
  11. void write_com(uchar com);
  12. void write_data(uchar dat);
  13. void write_sfm(uchar add,uchar date);
  14. uchar n,shi=11,fen=50,miao=50;
  15. void delay(uint z)
  16. {       
  17.         uint x,y;
  18.         for(x=z;x>0;x--)
  19.         {
  20.                 for(y=110;y>0;y--)
  21.                 {
  22.                 }       
  23.         }
  24. }
  25. void init()
  26. {
  27.         uchar a;
  28.         miao=0;
  29.         dula=0;
  30.         wela=0;
  31.         lcdrs=0;
  32.         lcdwr=0;
  33.         lcden=0;
  34.         write_com(0x38);
  35.         write_com(0x0c);
  36.         write_com(0x06);
  37.         write_com(0x01);
  38.         write_com(0x80);
  39.         for(a=0;a<15;a++)
  40.         {
  41.                 write_data(table[a]);
  42.                 delay(5);
  43.         }
  44.         write_com(0x80+0x40);
  45.         for(a=0;a<11;a++)
  46.         {
  47.                 write_data(table1[a]);
  48.                 delay(5);
  49.         }
  50.         TMOD=0x01;
  51.         TH0=(65536-50000)/256;
  52.         TL0=(65536-50000)%256;
  53.         EA=1;
  54.         ET0=1;
  55.         TR0=1;
  56. }
  57. void write_com(uchar com)
  58. {
  59.         lcdrs=0;
  60.         lcdwr=0;
  61.         lcden=0;
  62.         P0=com;
  63.         delay(5);
  64.         lcden=1;
  65.         delay(15);
  66.         lcden=0;
  67. }
  68. void write_data(uchar dat)
  69. {
  70.         lcdrs=1;
  71.         lcdwr=0;
  72.         lcden=0;
  73.         P0=dat;
  74.         delay(5);
  75.         lcden=1;
  76.         delay(15);
  77.         lcden=0;
  78. }
  79. void main()
  80. {
  81.         init();
  82.         while(1)  //;  多寫分號
  83.         {
  84.                 if(n==20)
  85.                 {
  86.                         n=0;
  87.                         miao++;
  88.                         if(miao==60)
  89.                         {
  90.                                 miao=0;
  91.                                 fen++;
  92.                                 if(fen==60)
  93.                                 {
  94.                                         fen=0;
  95.                                         shi++;
  96.                                         if(shi==24)
  97.                                         {
  98.                                                 shi=0;
  99.                                         }
  100.                                 }
  101.                         }
  102.                         write_sfm(9,miao);
  103.                         write_sfm(6,fen);
  104.                         write_sfm(3,shi);
  105.                        
  106.                 }       
  107.         }
  108. }

  109. void write_sfm(uchar add,uchar date)
  110. {
  111.         uchar shi,ge;
  112.         shi=date/10;
  113.         ge=date%10;
  114.         write_com(0x80+0x40+add);
  115.         write_data(0x30+shi);
  116.         write_data(0x30+ge);
  117. }

  118. void timer0() interrupt 1
  119. {       
  120.         TH0=(65536-50000)/256;
  121.         TL0=(65536-50000)%256;
  122.         n++;
  123. }


復制代碼

作者: wulin    時間: 2020-8-28 17:37
void main()
{
        init();
        while(1)//; 多了分號
        {
                if(n==20)
                {
                        n=0;
                        miao++;
                        if(miao==60)
                        {
                                miao=0;
                                fen++;
                                if(fen==60)
                                {
                                        fen=0;
                                        shi++;
                                        if(shi==24)
                                        {
                                                shi=0;
                                        }
                                }
                        }
                        write_sfm(3,shi);//添加時
                        write_sfm(6,fen);//添加分
                        write_sfm(9,miao);//改秒位置
                }       
        }
}
作者: coisni    時間: 2020-8-29 09:21
angmall 發(fā)表于 2020-8-28 17:35
給你改了,對比一下就知道哪里錯了。

謝謝您

作者: coisni    時間: 2020-8-29 09:31
wulin 發(fā)表于 2020-8-28 17:37
void main()
{
        init();

謝謝您   

作者: coisni    時間: 2020-8-29 09:52
HC6800-ES-V2.0 發(fā)表于 2020-8-28 17:32
你的截圖顯示的警告是那個函數(shù)沒被調(diào)用。為什么沒被調(diào)用?是不是你說的什么中斷程序沒被調(diào)用?我看不到程序 ...

找到問題了,while后面多了個分號   
作者: jizhongbiao    時間: 2020-9-2 23:53
出問題了進debug模式單步執(zhí)行看看程序卡在哪里。





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