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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機主函數里的變量值為什么傳送不到終端服務函數中

[復制鏈接]
跳轉到指定樓層
樓主
ID:210474 發表于 2017-6-14 10:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

當while(1)中的TT或者t改變時,中斷函數1中的T(TT仍然為255)T和中斷5中的t(t仍然為10)都不會發生相應的變化。請問有什么辦法可以解決這個問題。謝謝了!!!
  1. /**********************************************************/

  2. #include<reg52.h>

  3. unsigned char PWM=0x7f ; //賦初值

  4. char code reserve [3] _at_ 0x3b; //保留0x3b開始的3個字節
  5. unsigned char t;
  6. unsigned char TT;
  7. unsigned char count=0;
  8. unsigned char flag;

  9. sbit BEEP =P3^7 ; //蜂鳴器
  10. /*********************************************************

  11. 延時子程序

  12. *********************************************************/
  13. void delayms(unsigned char ms)

  14. {
  15. unsigned char i ;
  16. while(ms--)
  17. {
  18. for(i=0 ; i<114 ; i++) ;
  19. }
  20. }
  21. /*************T1定時器的初始化程序***********************/
  22. void init2_main()
  23. {
  24. SCON = 0x50; //設定串口工作方式1,接收使能
  25. PCON = 0x00; //波特率不倍增

  26. TMOD = 0x20; //定時器1工作于8位自動重載模式, 用于產生波特率
  27. EA = 1;
  28. TL1 = 0xfd;
  29. TH1 = 0xfd; //波特率9600
  30. TR1 = 1;

  31. }
  32. /****T2定時器初始化程序********************************/
  33. void init_main()
  34. {
  35. RCAP2H=0XFF;
  36. RCAP2L=0x66;
  37. TH2=RCAP2H;
  38. TL2=RCAP2L;
  39. T2CON=0;
  40. IE=0xb0;
  41. EA=1;
  42. ET2=1;

  43. }
  44. /*********************************************************/
  45. void main()
  46. { t=10;
  47. TT=255;

  48. BEEP = 1;

  49. ES = 1;
  50. init_main();
  51. TMOD=0x01 ;
  52. TH0=0xff ;
  53. TL0=0x66 ;
  54. EA=1;
  55. ET0=1;

  56. init2_main();
  57. delayms(100);

  58. while(1)
  59. {

  60. if(t>TT) {BEEP=!BEEP;P0=0xff;}
  61. if(flag==1){t=PWM;}
  62. if(flag==2){TT=PWM;}
  63. }
  64. }
  65. /*********************************************************

  66. 定時器0中斷服務程序

  67. *********************************************************/
  68. void timer0() interrupt 1
  69. {
  70. if(PWM!=0x02)
  71. {t=PWM;
  72. flag=1;}
  73. TT=TT;
  74. TH0=0xff ;
  75. TL0=0x66 ;
  76. count++;
  77. if(count<=t){P0=0x00;}
  78. if(count>t) {P0=0xFF;}
  79. if(count>TT){count=0;}
  80. }

  81. /*********************************************************

  82. 定時器2中斷服務程序

  83. *********************************************************/
  84. void timer1() interrupt 5
  85. { TF2=0;
  86. if(PWM!=0X01){TT=PWM;flag=2;}

  87. RCAP2H=0xff;
  88. RCAP2L=0x66 ;
  89. t=t;
  90. count++;
  91. if(count<=t){P0=0x00;}
  92. if(count>t) {P0=0Xff;}
  93. if(count>=TT){count=0;}
  94. /*********************串口中斷服務程序************************************/

  95. void mm() interrupt 4
  96. {
  97. RI=0;
  98. PWM=SBUF;
  99. if(PWM==0x01)
  100. {
  101. TR2=0;
  102. TR0=1;
  103. flag=0;
  104. }
  105. if(PWM==0x02)
  106. {
  107. TR0=0;
  108. TR2=1;
  109. TT=PWM;
  110. flag=0;
  111. }
  112. }
復制代碼


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

使用道具 舉報

沙發
ID:123289 發表于 2017-6-15 00:27 | 只看該作者
這取決于哪個先被執行。
如果參數X在主程序中先被改動為A,而后產生中斷,則中斷中所用的X就是A了。
你能弄清誰先動了X嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美色综合天天久久综合精品 | 成人一级片在线观看 | 成人在线免费观看 | 在线视频成人 | 久久91| 午夜影院视频在线观看 | 久久国产精品亚洲 | 国产精品久久久久久久午夜 | 一级毛片免费视频 | www.久久久 | 天天av网| 国产精品av久久久久久久久久 | 欧美极品一区二区 | 中文字幕在线看第二 | 国产精品久久在线 | 久久在线| 中文字幕亚洲一区二区三区 | 久久成人高清视频 | 91大神在线资源观看无广告 | 北条麻妃一区二区三区在线视频 | 欧美99久久精品乱码影视 | 日日日操 | 白浆在线 | 亚洲欧美精品一区 | 欧美激情 一区 | 国产视频2021| 亚洲国产精品一区二区三区 | 欧美精品乱码久久久久久按摩 | 91精品国产91久久综合桃花 | 久草精品视频 | 草草精品| 国产精品久久久久一区二区三区 | 久久精品日产第一区二区三区 | 欧美一区二区在线 | 久久久久久国产免费视网址 | 成人影院在线 | 欧美日韩国产在线 | 欧美国产精品一区二区三区 | 狠狠插狠狠操 | 欧美性生活免费 | 国产羞羞视频在线观看 |