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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2677|回復: 6
收起左側(cè)

這個程序可用在stc15f104e單片機,但104w沒有t1定時器,如何修改?

[復制鏈接]
ID:399179 發(fā)表于 2019-3-21 11:49 | 顯示全部樓層 |閱讀模式
這個可以用在stc15f104e上,但不能用在104w。104w沒有t1定時器,請問怎么改?謝謝!
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit fmq=P3^5;//定義P0.0口為蜂鳴器信號輸出
  5. uint z;          //用來控制音節(jié)
  6. sbit key=P3^3;
  7. sbit led=P3^4;
  8. //uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//對應(yīng)每個單

  9. 調(diào)的計數(shù)初值
  10. uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按鍵值,對應(yīng)

  11. //io:0,1,2,3,4,5,6,7
  12. uint code tab[]= {
  13. 64021,64103,64260,64400,
  14. 64524,64580,64684,64777,
  15. 64820,64898,64698,65030,
  16. 65058,65110,65157,65178};

  17. void zdkg()
  18. {
  19.           if(key==1)
  20.         {
  21.                 P1=0xff;
  22.                 TR1=0;//如果沒有按鍵按下,就關(guān)閉定時器中斷
  23.                 fmq=1;//同時也關(guān)閉蜂鳴器
  24.         }
  25.         else          //否則就進入中斷
  26.         {
  27.                 TR1=1;
  28.         }
  29. }

  30. void main()
  31. {
  32.         EA=1;//開總中斷
  33.         ET1=1;//定時器T1中斷允許
  34.         TMOD=0x10;//使用定時器T1的模式1
  35.         TH1=(65536-500)/256;//定時器T1的高8位重新賦初值
  36.         TL1=(65536-500)%256;//定時器T1的低8位重新賦初值
  37.         P1=0xff;//先關(guān)所有LED燈

  38.         while(1)
  39.         {
  40.                   key =1;
  41.                 led =1;
  42.                    if(key==0)
  43.         {
  44.                 z=tab[0]; //控制音節(jié)
  45.                 led=0;
  46.         }
  47.          
  48.           zdkg();
  49.                   
  50.         }

  51. }

  52. void Time1(void) interrupt 3 using 1//
  53. {        fmq=~fmq; //每進入一次中斷就取反一次,快速的進入退出中斷,就會聽到蜂鳴器發(fā)出的音調(diào)
  54.         TH1=z/256;//定時器T1的高8位重新賦初值
  55.         TL1=z%256;//定時器T1的低8位重新賦初值
  56. }
復制代碼


回復

使用道具 舉報

ID:213173 發(fā)表于 2019-3-21 14:52 | 顯示全部樓層
void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式16位自動重載
        T2L = 0x0C;                        //設(shè)置定時初值
        T2H = 0xFE;                        //設(shè)置定時初值
        AUXR |= 0x10;                //定時器2開始計時
//        AUXR &= 0xef;                //定時器2關(guān)閉計時
        EA=1;                                //開總中斷
        ET1=1;                                //定時器T1中斷允許
}
回復

使用道具 舉報

ID:399179 發(fā)表于 2019-3-21 18:22 來自手機 | 顯示全部樓層
wulin 發(fā)表于 2019-3-21 14:52
void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式16位自動重載

謝謝!看不懂,只會照著抄,呵呵!
回復

使用道具 舉報

ID:213173 發(fā)表于 2021-5-15 20:45 | 顯示全部樓層
快樂眼淚 發(fā)表于 2019-3-21 18:22
謝謝!看不懂,只會照著抄,呵呵!

void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式16位自動重載
        T2L = 0x0C;                        //設(shè)置定時初值
        T2H = 0xFE;                        //設(shè)置定時初值
        AUXR |= 0x10;                //定時器2開始計時
//        AUXR &= 0xef;                //定時器2關(guān)閉計時
        EA=1;                                //開總中斷
        ET2=1;                                //定時器T2中斷允許
}
回復

使用道具 舉報

ID:101869 發(fā)表于 2021-5-15 21:30 來自手機 | 顯示全部樓層
wulin 發(fā)表于 2021-5-15 20:45
void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定 ...

請教老師為什么我用STC15的頭文件 打開T2定時器  ET2=1  會出現(xiàn)編譯錯誤呢
回復

使用道具 舉報

ID:155507 發(fā)表于 2021-5-15 22:05 | 顯示全部樓層
非凡科技 發(fā)表于 2021-5-15 21:30
請教老師為什么我用STC15的頭文件 打開T2定時器  ET2=1  會出現(xiàn)編譯錯誤呢

改成這樣


  1. #include <reg52.h>
  2. #define uint  unsigned int
  3. #define uchar unsigned char
  4. sfr P1M1 = 0x91;
  5. sfr P1M0 = 0x92;

  6. sfr IE2       = 0xaf;               //中斷使能寄存器2
  7. sfr AUXR      = 0x8e;               //輔助寄存器
  8. sfr T2H       = 0xD6;               //定時器2高8位
  9. sfr T2L       = 0xD7;               //定時器2低8位


  10. sbit fmq=P3^5; //定義P0.0口為蜂鳴器信號輸出
  11. uint z;          //用來控制音節(jié)
  12. sbit key=P3^3;
  13. sbit led=P3^4;
  14. //uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//對應(yīng)每個單調(diào)的計數(shù)初值
  15. uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按鍵值,對應(yīng)

  16. //io:0,1,2,3,4,5,6,7
  17. uint code tab[]= {
  18.         64021,64103,64260,64400,
  19.         64524,64580,64684,64777,
  20.         64820,64898,64698,65030,
  21.         65058,65110,65157,65178};

  22. void zdkg()
  23. {
  24.         if(key==1)
  25.         {
  26.                 P1=0xff;
  27.                 IE2 &= ~0x04;                   //若需要手動清除中斷標志,可先關(guān)閉中斷,此時系統(tǒng)會自動清除內(nèi)部的中斷標志

  28.                 //TR1=0;//如果沒有按鍵按下,就關(guān)閉定時器中斷
  29.                 fmq=1;//同時也關(guān)閉蜂鳴器
  30.         }
  31.         else          //否則就進入中斷
  32.         {
  33.                 //TR1=1;
  34.             IE2 |= 0x04;                    //然后再開中斷即可
  35.         }
  36. }

  37. void main()
  38. {
  39.         P1M0 = 0x00;
  40.     P1M1 = 0x00;
  41.        
  42.         EA=1;//開總中斷
  43.         //ET1=1;//定時器T1中斷允許
  44.     //AUXR |= 0x04;                   //定時器2為1T模式
  45.     AUXR &= ~0x04;                  //定時器2為12T模式

  46.         IE2 |= 0x04;                    //開定時器2中斷
  47.         //TMOD=0x10;//使用定時器T1的模式1

  48.         T2H=(65536-500)/256;//定時器T1的高8位重新賦初值
  49.         T2L=(65536-500)%256;//定時器T1的低8位重新賦初值
  50.         AUXR |= 0x10;                   //定時器2開始計時
  51.         P1=0xff;//先關(guān)所有LED燈

  52.         while(1)
  53.         {
  54.                 key =1;
  55.                 led =1;
  56.                 if(key==0)
  57.                 {
  58.                         z=tab[0]; //控制音節(jié)
  59.                         led=0;
  60.                 }
  61.                
  62.                 zdkg();
  63.                
  64.         }

  65. }

  66. void Time2(void) interrupt 12 using 1//
  67. {
  68.         fmq=~fmq; //每進入一次中斷就取反一次,快速的進入退出中斷,就會聽到蜂鳴器發(fā)出的音調(diào)
  69.         T2H=z/256;//定時器T2的高8位重新賦初值
  70.         T2L=z%256;//定時器T2的低8位重新賦初值
  71. }

復制代碼
回復

使用道具 舉報

ID:399179 發(fā)表于 2021-10-6 09:14 來自手機 | 顯示全部樓層
angmall 發(fā)表于 2021-5-15 22:05
改成這樣

萬分感謝!
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品久久 | 国产 欧美 日韩 一区 | 色综合成人网 | 日韩www视频 | 亚洲第一中文字幕 | 91超碰在线 | av网站在线免费观看 | 九九久久精品 | 日韩一区二区在线视频 | 久久久久亚洲 | 成人av一区二区亚洲精 | 九一在线观看 | 2021天天躁夜夜看 | 国产视频观看 | 男人的天堂亚洲 | 国产在线a视频 | 欧美aaaaaa| 久久国产免费看 | 亚洲精品中文字幕 | 免费一区二区 | 午夜免费观看体验区 | h视频在线观看免费 | 亚洲精品一区二区三区蜜桃久 | 在线一区视频 | 日本一区二区三区精品视频 | 久久伊人一区 | 精品国产乱码久久久久久蜜臀 | 久久精品成人 | 午夜视频免费在线观看 | 日本午夜精品 | 国产视频一区二区 | 亚洲综合大片69999 | 欧美黑人激情 | 国产在线精品一区二区三区 | 颜色网站在线观看 | 无码一区二区三区视频 | 丁香五月缴情综合网 | av网站免费在线观看 | 久久久久久国产免费视网址 | 天堂网中文 | 中文字幕国产视频 |