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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

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

查看數(shù): 2195 | 評論數(shù): 9 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-7-15 10:01

正文摘要:

     大神們求指教下,下面這段單片機代碼先是我自己慢慢編出來,之后結(jié)合郭老師的視頻講解改了改,就是學習《單片機十天征服我》的那個學習視頻。中讓LED按1秒閃爍,數(shù)碼管用中斷2秒來變化。 ...

回復

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

謝謝,開始不知道還要選這個。現(xiàn)在明白了
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的



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開,開始斷點
  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. }
復制代碼
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標志
        TR0 = 1;                //定時器0開始計時
}
STC89C52    定時器0中斷50ms
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 ????
你計算器按一下看看?

void Timer0Init(void)                //50微秒@11.0592MHz
{
        AUXR |= 0x80;                //定時器時鐘1T模式
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TL0 = 0xD7;                //設(shè)置定時初值
        TH0 = 0xFD;                //設(shè)置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}定時長度為50
找到錯那里了,該用筆來算算。大意了,納悶上面定時為50單位為微秒,我要的是50毫秒。哎呀,真憨啊我。謝謝,果然單片機10天征服我啊,&#128557;
ID:624769 發(fā)表于 2022-7-15 11:42
楓清y 發(fā)表于 2022-7-15 11:34
大佬又是你,感謝感謝。忘說了。因為直接來定義1秒都達不到跟何況2秒了,所以我采用了50ms,之后再運行40 ...

你確定?  (65536-50000)/256 = 0xfd ????
你計算器按一下看看?
ID:1036115 發(fā)表于 2022-7-15 11:40
lkc8210 發(fā)表于 2022-7-15 11:24
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計時時間 = 65536 - 64983 = 533

郭天祥老師在視頻中用的TL0=(65536-50000)%256;TH0=(65536-50000)/256;這兩個。中斷那章郭老師的視頻看的云里霧里,之后看了其他up主的視頻,說八位定時器可以用軟件來算,我就一直用的軟件。哪知道這次不行。就咋想都想不明白
ID:1036115 發(fā)表于 2022-7-15 11:34
lkc8210 發(fā)表于 2022-7-15 11:24
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計時時間 = 65536 - 64983 = 533

大佬又是你,感謝感謝。忘說了。因為直接來定義1秒都達不到跟何況2秒了,所以我采用了50ms,之后再運行40次。那個if就是判斷是否中斷了40次,也就是2秒。是的話再,t重新計數(shù),同時顯示數(shù)碼管。就這樣循環(huán)下去。
真的很怪.TL0=(65536-50000)%256; TH0=(65536-50000)/256;用這兩個都沒問題,  TH0 = 0xFD;TL0 = 0xD7;這兩個就有問題,按照道理,都是代表50ms,沒想到用這個TH0 = 0xFD;TL0 = 0xD7;數(shù)碼管閃的老快了。正常的話應該LED閃爍兩次,數(shù)碼管顯示一次
ID:161164 發(fā)表于 2022-7-15 11:24
TL0 = 0xD7; TH0 = 0xFD;
0xFDD7 = 64983
計時時間 = 65536 - 64983 = 533
12Mhz晶振為533us
11.0592Mhz晶振為 600us
你是不是在STC-ISP上按錯了?



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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国内| 男人天堂免费在线 | 一级黄a视频 | 成人日b视频 | 在线免费国产视频 | 久久日韩精品一区二区三区 | 日韩精品成人一区二区三区视频 | 国内精品视频在线 | 久久久久久久久久久久一区二区 | 97国产精品视频 | 欧美精品在线播放 | 亚洲视频在线看 | 久草久 | 久久国产精品网站 | 亚洲一区二区在线视频 | 欧美成人精品激情在线观看 | 亚洲一区二区三区在线 | 久久国内 | 最新黄色在线观看 | av色站| 久久成人18免费网站 | 日韩二三区 | 一二三四在线视频观看社区 | 欧美日韩理论 | 欧美综合久久 | 玖玖色在线视频 | 国产精品久久久久久吹潮 | 精品国产99 | 古典武侠第一页久久777 | 免费看淫片 | 欧美三区在线观看 | 国产精品不卡一区 | 91婷婷韩国欧美一区二区 | 可以在线看的黄色网址 | 国产一区二区三区久久久久久久久 | 99久久亚洲 | 伊人久久综合影院 | 天天操夜夜拍 | 97av| 亚洲精品九九 | 男人阁久久 |