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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:399179 發表于 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;          //用來控制音節
  6. sbit key=P3^3;
  7. sbit led=P3^4;
  8. //uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//對應每個單

  9. 調的計數初值
  10. uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按鍵值,對應

  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;//如果沒有按鍵按下,就關閉定時器中斷
  23.                 fmq=1;//同時也關閉蜂鳴器
  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;//先關所有LED燈

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

  51. }

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


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

使用道具 舉報

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

使用道具 舉報

板凳
ID:399179 發表于 2019-3-21 18:22 來自觸屏版 | 只看該作者
wulin 發表于 2019-3-21 14:52
void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定時器時鐘12T模式16位自動重載

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

使用道具 舉報

地板
ID:213173 發表于 2021-5-15 20:45 | 只看該作者
快樂眼淚 發表于 2019-3-21 18:22
謝謝!看不懂,只會照著抄,呵呵!

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

使用道具 舉報

5#
ID:101869 發表于 2021-5-15 21:30 來自觸屏版 | 只看該作者
wulin 發表于 2021-5-15 20:45
void Timer2Init()                //500微秒@12.000MHz
{
        AUXR &= 0xFB;                //定 ...

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

使用道具 舉報

6#
ID:155507 發表于 2021-5-15 22:05 | 只看該作者
非凡科技 發表于 2021-5-15 21:30
請教老師為什么我用STC15的頭文件 打開T2定時器  ET2=1  會出現編譯錯誤呢

改成這樣


  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;          //用來控制音節
  12. sbit key=P3^3;
  13. sbit led=P3^4;
  14. //uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//對應每個單調的計數初值
  15. uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按鍵值,對應

  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;                   //若需要手動清除中斷標志,可先關閉中斷,此時系統會自動清除內部的中斷標志

  28.                 //TR1=0;//如果沒有按鍵按下,就關閉定時器中斷
  29.                 fmq=1;//同時也關閉蜂鳴器
  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;//先關所有LED燈

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

  65. }

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

復制代碼
回復

使用道具 舉報

7#
ID:399179 發表于 2021-10-6 09:14 來自觸屏版 | 只看該作者
angmall 發表于 2021-5-15 22:05
改成這樣

萬分感謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频一二三区 | 国产一级一片免费播放 | 男人av网 | 黄视频免费观看 | 国产亚洲精品久久久久久豆腐 | 亚洲欧美中文字幕 | 日日夜夜精品视频 | 亚洲日本欧美日韩高观看 | www.青青草 | 视频一区二区三区在线观看 | 性一交一乱一透一a级 | 成人在线视频网 | 亚洲黄色片免费观看 | 亚洲一区二区三区在线播放 | 久久69精品久久久久久久电影好 | 中文字幕不卡 | 成人h电影在线观看 | 精品无码久久久久久久动漫 | 综合自拍| 欧美国产精品一区二区三区 | 国产精品爱久久久久久久 | 国产精华一区 | 亚洲天堂中文字幕 | 亚洲欧美视频一区 | 亚洲一区二区日韩 | 国产成人精品一区二区三区在线 | 国产一区二区三区久久久久久久久 | 中文字幕精品一区二区三区精品 | 欧美在线观看一区二区 | 在线成人| 久久精品成人 | 中文字幕在线人 | 成人小视频在线免费观看 | 免费xxxx大片国产在线 | 亚洲三区视频 | 精品久久久久久久 | 精品国产伦一区二区三区观看体验 | 欧美最猛黑人xxxx黑人 | a久久久久久| 天堂色区| 久久久免费精品 |