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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2074|回復(fù): 9
收起左側(cè)

單片機(jī)程序,同樣的賦值為什么結(jié)果數(shù)碼管顯示的不一樣了?

[復(fù)制鏈接]
ID:1036115 發(fā)表于 2022-7-15 10:01 | 顯示全部樓層 |閱讀模式
     大神們求指教下,下面這段單片機(jī)代碼先是我自己慢慢編出來,之后結(jié)合郭老師的視頻講解改了改,就是學(xué)習(xí)《單片機(jī)十天征服我》的那個學(xué)習(xí)視頻。中讓LED按1秒閃爍,數(shù)碼管用中斷2秒來變化。

我最初使用的是TL0 = 0xD7; ,那數(shù)碼管顯示的老快了。看著就是8,燈到?jīng)]問題,這張圖片就是顯示的很快,這又是為什么了。這TL0和TH0都是通過STC-isp算出來的呀。沒道理錯瑟
                      TH0 = 0xFD;      
當(dāng)我使用TL0=(65536-50000)%256;就完全能實(shí)現(xiàn)。
            TH0=(65536-50000)/256;
A5XC~CG`COZ`]0U9R0T2R78.png
單片機(jī)源程序如下:
#include<reg52.h>
#include<intrins.h>
#define ut unsigned int
#define ur unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
ut num=0,t=0;
ur a=0,temp=0;        
ur code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(ut z) //延遲保持不變,大約Z=1000為1s
{
   ut x,y;
   for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
void main()
{  TMOD=0x01;
   /*TL0=(65536-50000)%256;
   TH0=(65536-50000)/256;*/
   TL0 = 0xD7; TH0 = 0xFD;//50ms的初值
   EA=1; //總中斷開
   ET0=1; //定時0中斷開
   TR0=1; //啟動定時器0開,開始斷點(diǎn)
   wela=1;P0=0xe0;wela=0; //位選,所有的數(shù)碼管
   dula=1;P0=0x3f;dula=1; //段選讓數(shù)碼管的初值為0
   a=0xfe;                                        //讓發(fā)光二極管間隔1s循環(huán)閃爍,沒問題
while(1){P1=a;
          temp=a;
          temp=_crol_(temp,1);
                  a=temp;
                  delay(1000);
         }
}
void zd0() interrupt 1         //中斷有問題
{ /*TL0=(65536-50000)%256;
   TH0=(65536-50000)/256;*/TL0 = 0xD7; TH0 = 0xFD;
   t++;
   if(t==40)
       {t=0;num++;
        dula=1;P0=table[num%16];dula=0;
           }
         
}
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-7-15 11:24 | 顯示全部樓層
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計(jì)時時間 = 65536 - 64983 = 533
12Mhz晶振為533us
11.0592Mhz晶振為 600us
你是不是在STC-ISP上按錯了?
2022-07-15_112359.png


回復(fù)

使用道具 舉報

ID:1036115 發(fā)表于 2022-7-15 11:34 | 顯示全部樓層
lkc8210 發(fā)表于 2022-7-15 11:24
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計(jì)時時間 = 65536 - 64983 = 533

大佬又是你,感謝感謝。忘說了。因?yàn)橹苯觼矶x1秒都達(dá)不到跟何況2秒了,所以我采用了50ms,之后再運(yùn)行40次。那個if就是判斷是否中斷了40次,也就是2秒。是的話再,t重新計(jì)數(shù),同時顯示數(shù)碼管。就這樣循環(huán)下去。
真的很怪.TL0=(65536-50000)%256; TH0=(65536-50000)/256;用這兩個都沒問題,  TH0 = 0xFD;TL0 = 0xD7;這兩個就有問題,按照道理,都是代表50ms,沒想到用這個TH0 = 0xFD;TL0 = 0xD7;數(shù)碼管閃的老快了。正常的話應(yīng)該LED閃爍兩次,數(shù)碼管顯示一次
回復(fù)

使用道具 舉報

ID:1036115 發(fā)表于 2022-7-15 11:40 | 顯示全部樓層
lkc8210 發(fā)表于 2022-7-15 11:24
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計(jì)時時間 = 65536 - 64983 = 533

郭天祥老師在視頻中用的TL0=(65536-50000)%256;TH0=(65536-50000)/256;這兩個。中斷那章郭老師的視頻看的云里霧里,之后看了其他up主的視頻,說八位定時器可以用軟件來算,我就一直用的軟件。哪知道這次不行。就咋想都想不明白
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2022-7-15 11:42 來自手機(jī) | 顯示全部樓層
楓清y 發(fā)表于 2022-7-15 11:34
大佬又是你,感謝感謝。忘說了。因?yàn)橹苯觼矶x1秒都達(dá)不到跟何況2秒了,所以我采用了50ms,之后再運(yùn)行40 ...

你確定?  (65536-50000)/256 = 0xfd ????
你計(jì)算器按一下看看?
回復(fù)

使用道具 舉報

ID:1036115 發(fā)表于 2022-7-15 11:51 | 顯示全部樓層
本帖最后由 楓清y 于 2022-7-15 11:55 編輯
188610329 發(fā)表于 2022-7-15 11:42
你確定?  (65536-50000)/256 = 0xfd ????
你計(jì)算器按一下看看?

void Timer0Init(void)                //50微秒@11.0592MHz
{
        AUXR |= 0x80;                //定時器時鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TL0 = 0xD7;                //設(shè)置定時初值
        TH0 = 0xFD;                //設(shè)置定時初值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時器0開始計(jì)時
}定時長度為50
找到錯那里了,該用筆來算算。大意了,納悶上面定時為50單位為微秒,我要的是50毫秒。哎呀,真憨啊我。謝謝,果然單片機(jī)10天征服我啊,&#128557;
回復(fù)

使用道具 舉報

ID:140489 發(fā)表于 2022-7-15 12:51 | 顯示全部樓層
void Timer0Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TMOD |= 0x01;                //設(shè)置定時器模式  16位
        TL0 = 0x00;                //設(shè)置定時初始值
        TH0 = 0x4C;                //設(shè)置定時初始值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時器0開始計(jì)時
}
STC89C52    定時器0中斷50ms
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2022-7-15 13:35 | 顯示全部樓層
楓清y 發(fā)表于 2022-7-15 11:40
郭天祥老師在視頻中用的TL0=(65536-50000)%256;TH0=(65536-50000)/256;這兩個。中斷那章郭老師的視頻看的 ...
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define ut unsigned int
  4. #define ur unsigned char
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. ut num=0,t=0;
  8. ur a=0,temp=0;        
  9. ur code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  10. 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  11. void delay(ut z) //延遲保持不變,大約Z=1000為1s
  12. {
  13.    ut x,y;
  14.    for(x=z;x>0;x--)
  15.     for(y=110;y>0;y--);
  16. }
  17. void main()
  18. {
  19.         TMOD=0x01;
  20.         /*TL0=(65536-50000)%256;
  21.         TH0=(65536-50000)/256;*/
  22. //        TL0 = 0xD7; TH0 = 0xFD;//50ms的初值
  23.         TH0 = 0x4C;                //50ms的初值
  24.         TL0 = 0x00;                //50ms的初值

  25.         EA=1; //總中斷開
  26.         ET0=1; //定時0中斷開
  27.         TR0=1; //啟動定時器0開,開始斷點(diǎn)
  28.         wela=1;P0=0xc0;wela=0; //位選,所有的數(shù)碼管
  29.         dula=1;P0=0x3f;dula=1; //段選讓數(shù)碼管的初值為0
  30.         a=0xfe;//讓發(fā)光二極管間隔1s循環(huán)閃爍,沒問題
  31.         while(1)
  32.         {
  33.                 P1=a;
  34.                 temp=a;
  35.                 temp=_crol_(temp,1);
  36.                 a=temp;
  37.                 delay(1000);
  38.         }
  39. }
  40. void zd0() interrupt 1         //中斷有問題
  41. {
  42. /*TL0=(65536-50000)%256;
  43.    TH0=(65536-50000)/256;*/
  44. // TL0 = 0xD7; TH0 = 0xFD;
  45.         TH0 = 0x4C;                //50ms的初值
  46.         TL0 = 0x00;                //50ms的初值
  47.         t++;
  48.         if(t==40)
  49.         {
  50.                 t=0;
  51.                 num++;
  52.                 dula=1;P0=table[num%16];dula=0;
  53.         }         
  54. }
復(fù)制代碼
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-7-15 16:30 | 顯示全部樓層
楓清y 發(fā)表于 2022-7-15 11:51
void Timer0Init(void)                //50微秒@11.0592MHz
{
        AUXR |= 0x80;                 ...

你選錯了1T,普通8051是12T的
2022-07-15_162813.png


回復(fù)

使用道具 舉報

ID:1036115 發(fā)表于 2022-7-15 21:56 | 顯示全部樓層
lkc8210 發(fā)表于 2022-7-15 16:30
你選錯了1T,普通8051是12T的

謝謝,開始不知道還要選這個。現(xiàn)在明白了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 手机看片在线播放 | 精品视频在线观看 | 天堂av资源 | 成人av播放 | 夜夜爽99久久国产综合精品女不卡 | 中国三级黄色录像 | 欧美综合国产精品久久丁香 | 日韩成人精品一区二区三区 | 免费日本视频 | 黄色网址在线免费观看 | 91精品免费 | 国产视频一区二区 | 蜜臀av日日欢夜夜爽一区 | 亚洲免费网 | 国产91观看 | 久久精品 | 一区二区三区国产精品 | 99免费在线观看视频 | 成人国产在线视频 | 日韩在线 | 国产免费一区二区三区最新6 | 激情欧美一区二区三区中文字幕 | 免费永久av | 97在线观视频免费观看 | 日本不卡一区二区三区 | 成人免费大片黄在线播放 | 黄色毛片黄色毛片 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 亚洲精品久久久久中文字幕二区 | 色一情一乱一伦一区二区三区 | 不卡一区二区三区四区 | 免费国产精品久久久久久 | 色av一区二区三区 | 天天操夜夜操 | 日韩精品一区二区三区久久 | 在线观看中文字幕视频 | 午夜影视大全 | 国产精品69久久久久水密桃 | 四虎在线观看 | 黄视频免费在线 | 欧美在线观看一区 |