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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2353|回復: 8
收起左側

絕了,單片機中斷進入失敗!軟件沒問題,計數器由DCLOCK激勵輸入

[復制鏈接]
ID:563332 發表于 2019-6-16 11:53 | 顯示全部樓層 |閱讀模式
幾個鐘頭了,用簡單中斷試過,軟件沒問題,計數器由DCLOCK激勵輸入,還試過直接開關加接地手動方波。
謝謝大佬們!
360截圖20190616115224132.jpg 360截圖20190616115056737.jpg

單片機源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. sbit duan=P3^0;
  4. sbit wei=P3^1;
  5. unsigned long pl;
  6. unsigned int ct0,ct1;
  7. unsigned char code table[] = {
  8. 0x3f,0x06,0x5b,0x4f,
  9. 0x66,0x6d,0x7d,0x07,
  10. 0x7f,0x6f,0x77,0x7c,
  11. 0x39,0x5e,0x79,0x71 };

  12. void delay(unsigned int z)       //延遲
  13. {
  14.   unsigned char i,j;
  15.   for(i=0;i<z;i++)
  16.   for(j=0;j<110;j++);
  17. }
  18. void cl(void)            //初始化
  19. {
  20. pl=100;
  21. ct0=0;
  22. ct1=0;
  23. TMOD=0x15;
  24. EA=1;
  25. ET0=1;
  26. ET1=1;
  27. TH0=0xff;
  28. TL0=0xfc;
  29. TR0=1;
  30. TH1=0;
  31. TL1=0;
  32. TR1=1;
  33. }


  34. void show6led(long num)                      //數碼管輸出,大佬可以不看
  35. {
  36. unsigned char i,q,w,e,r;
  37. i=num/10000;
  38. duan=1;
  39. P2=table[i];
  40. duan=0;
  41. P2=0xff;
  42. wei=1;
  43. P2=0xfd;
  44. wei=0;
  45. delay(10);
  46. P2=0xff;
  47. P3=0xff;
  48. q=num%10000/1000;
  49. duan=1;
  50. P2=table[q]+0x80;  
  51. duan=0;
  52. P2=0xff;   
  53. wei=1;
  54. P2=0xfb;            
  55. wei=0;
  56. delay(10);
  57. P2=0xff;
  58. P3=0xff;  
  59. w=num%1000/100;
  60. duan=1;
  61. P2=table[w];
  62. duan=0;
  63. P2=0xff;
  64. wei=1;
  65. P2=0xf7;         
  66. wei=0;
  67. delay(10);
  68. P2=0xff;
  69. P3=0xff;
  70. e=num%100/10;
  71. duan=1;
  72. P2=table[e];
  73. duan=0;
  74. P2=0xff;
  75. wei=1;
  76. P2=0xef;         
  77. wei=0;
  78. delay(10);
  79. P2=0xff;
  80. P3=0xff;
  81. r=num%10;
  82. duan=1;
  83. P2=table[r];
  84. duan=0;
  85. P2=0xff;
  86. wei=1;
  87. P2=0xdf;         
  88. wei=0;
  89. delay(10);
  90. P2=0xff;
  91. P3=0xff;
  92. }

  93. void main()      
  94. {
  95.   long number=23333;
  96.   P2=0x00;
  97.   cl();
  98.   while(1)
  99.   {           
  100.    if(ct0)
  101.    {
  102.     TR0=0;
  103.     TR1=0;
  104.     TH0=0xff;
  105.     TL0=0xfc;
  106.     TH1=0x00;
  107.     TL1=0x00;
  108.     pl=ct1;
  109.     ct0=0;
  110.     TR0=1;
  111.     TR1=1;
  112.         number=4000000/pl;
  113.         }
  114.    show6led(number);
  115.    }
  116.   }
  117. void t() interrupt 1
  118. {
  119.   TR1=0;
  120.   TR0=0;
  121.   ct1=TH1*256;
  122.   ct1=ct1+TL1;
  123.   TH0=0xff;
  124.   TL0=0xfc;
  125.   TH1=0;
  126.   TL1=0;
  127.   ct0=1;
  128.   TR0=1;
  129.   TR1=1;
  130.   P1=0x00;             //用來判斷中斷到底有沒有進去,看來是失敗了
  131. }
復制代碼




回復

使用道具 舉報

ID:213173 發表于 2019-6-17 06:56 | 顯示全部樓層
樓主自信軟件沒問題,其實就是軟件問題:中斷向量入口錯誤。 無標題.jpg

  1. #include<reg51.h>
  2. #include<intrins.h>
  3. sbit duan=P3^0;
  4. sbit wei=P3^1;
  5. unsigned int ct0=0;
  6. unsigned char count=0;
  7. unsigned char code table[] = {
  8. 0x3f,0x06,0x5b,0x4f,
  9. 0x66,0x6d,0x7d,0x07,
  10. 0x7f,0x6f,0x77,0x7c,
  11. 0x39,0x5e,0x79,0x71 };

  12. void delay(unsigned int z)       //延遲
  13. {
  14.   unsigned char i,j;
  15.   for(i=0;i<z;i++)
  16.           for(j=0;j<110;j++);
  17. }
  18. void cl(void)            //初始化
  19. {
  20.         TMOD=0x15;                //T0外部計數器T1定時器
  21.         TH0=0x00;
  22.         TL0=0x00;
  23.         TH1 = 0x3C;                //設置定時器T1初值50ms
  24.         TL1 = 0xB0;                //設置定時器T1初值50ms
  25.         TR0=1;
  26.         TR1=1;
  27.         EA=1;
  28. //        ET0=1;
  29.         ET1=1;
  30. }


  31. void show6led(unsigned int num)
  32. {
  33.         static unsigned char count=0;        //計數變量
  34.         P2=0x00;                                        //消隱
  35.         duan=1;
  36.         duan=0;
  37.         switch(count)
  38.         {
  39.                 case 0:                               
  40.                    P2=table[num/10000%10];
  41.                    duan=1;
  42.                    duan=0;

  43.                    P2=0x7d;
  44.                    wei=1;
  45.                    wei=0;
  46.                    count++;
  47.                 break;
  48.                 case 1:                               
  49.                    P2=table[num/1000%10]|0x80;
  50.                    duan=1;
  51.                    duan=0;
  52.                
  53.                    P2=0x7b;
  54.                    wei=1;
  55.                    wei=0;
  56.                    count++;
  57.                 break;
  58.                 case 2:                                       
  59.                    P2=table[num/100%10];
  60.                    duan=1;
  61.                    duan=0;
  62.                
  63.                    P2=0x77;
  64.                    wei=1;
  65.                    wei=0;
  66.                    count++;
  67.                 break;
  68.                 case 3:       
  69.                    P2=table[num/10%10];
  70.                    duan=1;
  71.                    duan=0;
  72.                
  73.                    P2=0xef;
  74.                    wei=1;
  75.                    wei=0;
  76.                    count++;
  77.                 break;
  78.                 case 4:       
  79.                    P2=table[num%10];
  80.                    duan=1;
  81.                    duan=0;
  82.                
  83.                    P2=0xdf;
  84.                    wei=1;
  85.                    wei=0;
  86.                    count=0;
  87.                 break;
  88.         }
  89. }

  90. void main()      
  91. {
  92.         cl();
  93.         while(1)
  94.         {           
  95.                 show6led(ct0);
  96.                 delay(1);
  97.         }
  98. }
  99. void t() interrupt 3 //T1中斷服務函數
  100. {
  101.         TH1 = 0x3C;                //設置定時初值50ms
  102.         TL1 = 0xB0;                //設置定時初值
  103.         count++;
  104.         if(count>=20)        //1秒
  105.         {
  106.                 count=0;
  107.                 ct0=TH0<<8|TL0;//讀取T0計數值
  108.                 TH0=0x00;
  109.                 TL0=0x00;
  110.         }
  111. }
復制代碼



回復

使用道具 舉報

ID:208271 發表于 2019-6-17 08:09 | 顯示全部樓層
我也出現過這種情況,調試很多次都沒用。
結果把KEIL關閉,重啟電腦,重啟軟件后,一樣的程序,重新下載,就OK了。
直到現在我也不知道原因是什么,有哪位大神能指示一下。
回復

使用道具 舉報

ID:448543 發表于 2019-6-17 11:00 | 顯示全部樓層

把KEIL關閉,重啟電腦,重啟軟件后,一樣的程序,重新下載,就OK了
回復

使用道具 舉報

ID:123289 發表于 2019-6-17 14:46 | 顯示全部樓層
1、仿真是誰在仿?仿什么東西的真?仿的錯不錯?無論哪一項有誤都不行。
2、有些動作,仿真不一定仿得出來,否則就不叫仿了。
所以做個實戰,一切都明朗,能花幾個錢呢。
回復

使用道具 舉報

ID:563332 發表于 2019-6-18 16:49 | 顯示全部樓層
wulin 發表于 2019-6-17 06:56
樓主自信軟件沒問題,其實就是軟件問題:中斷向量入口錯誤。

牛。。牛人!咱這論壇太猛了。謝謝您啦!學到了!
回復

使用道具 舉報

ID:563332 發表于 2019-6-18 16:54 | 顯示全部樓層
wifingtta 發表于 2019-6-17 08:09
我也出現過這種情況,調試很多次都沒用。
結果把KEIL關閉,重啟電腦,重啟軟件后,一樣的程序,重新下載, ...

對我這沒起效,但是謝謝你的方案喔!
回復

使用道具 舉報

ID:563332 發表于 2019-6-18 16:55 | 顯示全部樓層
libin123 發表于 2019-6-17 11:00
把KEIL關閉,重啟電腦,重啟軟件后,一樣的程序,重新下載,就OK了

試了一下應該不是這個問題。但是謝謝你的幫助。
回復

使用道具 舉報

ID:563332 發表于 2019-6-18 16:56 | 顯示全部樓層
yzwzfyz 發表于 2019-6-17 14:46
1、仿真是誰在仿?仿什么東西的真?仿的錯不錯?無論哪一項有誤都不行。
2、有些動作,仿真不一定仿得出來 ...

確實是實踐出真知!我的開發板在路上了!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 先锋资源网站 | av天天澡天天爽天天av | 美国一级毛片a | 日本一区二区在线视频 | 热久久免费视频 | 久久精品一二三影院 | 黄色一级片视频 | 99热都是精品 | 国产一级片免费在线观看 | 欧美性视频在线播放 | 超黄视频网站 | 日操操 | 亚洲播放 | 国内精品视频在线观看 | 九九九精品视频 | 户外露出一区二区三区 | 亚洲a人 | 亚洲精品自在在线观看 | 一区二区三区四区视频 | 精久久久 | 天天射天天操天天干 | 久久av一区二区三区 | 国产一区二区在线免费 | 亚洲九九 | 亚洲视频免费观看 | 精品欧美一区二区精品久久久 | 欧美成人一区二免费视频软件 | 91免费电影 | 久久精品二区亚洲w码 | 韩日av在线 | 天天综合干 | 欧美乱操| 成年人视频免费在线观看 | 色五月激情五月 | 一区二区亚洲 | 老外黄色一级片 | 日本久久久一区二区三区 | 成人小视频在线观看 | 国产精品视频网站 | 免费看91 | 天天天天天操 |