亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 求大佬改改程序,我不會用兩個定時器 [打印本頁]

作者: 勇士小子    時間: 2018-5-10 08:10
標題: 求大佬改改程序,我不會用兩個定時器
時鐘的程序,加上了無源蜂鳴器,就不跑時了,大佬幫忙看看吧。https://share.weiyun.com/5fI6iIr
作者: 東北許文強    時間: 2018-5-10 10:01
驅動PCB不對
作者: 東北許文強    時間: 2018-5-10 10:01
蜂鳴器驅動不對
作者: wulin    時間: 2018-5-10 10:35
對于不可位操作的寄存器可以用邏輯運算符&和|操作位。
void main()
{               
//        TMOD = 0x11;        //同時設置T0和T1為模式1
        TMOD |= 0x01;        //設置T0為模式1
        TH0  = 0xFC;  //為T0賦初值0xFC67,定時1ms
        TL0  = 0x67;
        TMOD |= 0x10;        //設置T1為模式1
        TH1 = T0RH;
        TL1 = T0RL;

        TR0  = 1;     //開T0
//        TR1  = 1;     //需要時在程序中開T1
        EA=1;        //開總中斷
        ET0  = 1;     //開T0中斷
        ET1 = 1;     //開T1中斷

        InitLcd1602();
        while (1)
        {  
//                TMOD = 0x01;
                if(biaozhi==1)
                {
作者: devcang    時間: 2018-5-10 12:27
程序是使用時鐘中斷計時的,在播放音樂時計時就不準了。。。。。播放完音樂,重新開啟定時器0
作者: 勇士小子    時間: 2018-5-10 15:14
devcang 發表于 2018-5-10 12:27
程序是使用時鐘中斷計時的,在播放音樂時計時就不準了。。。。。播放完音樂,重新開啟定時器0

說得對,怎樣讓它響音樂的時候正常跑時?該怎么改呢?
作者: 勇士小子    時間: 2018-5-10 15:14
東北許文強 發表于 2018-5-10 10:01
驅動PCB不對

液晶顯示嗎?還是什么
作者: 勇士小子    時間: 2018-5-10 15:15
東北許文強 發表于 2018-5-10 10:01
蜂鳴器驅動不對

蜂鳴器驅動應該可以的,錯誤在哪?
作者: 勇士小子    時間: 2018-5-10 15:15
wulin 發表于 2018-5-10 10:35
對于不可位操作的寄存器可以用邏輯運算符&和|操作位。
void main()
{               

哥,我不大懂,該怎么改呢
作者: 勇士小子    時間: 2018-5-10 15:21
大佬,能不能把正確的程序評論給我,或者QQ發到1994975123上謝謝了。
作者: wulin    時間: 2018-5-10 17:01
勇士小子 發表于 2018-5-10 15:15
哥,我不大懂,該怎么改呢

定時器初始化設置就按如上示例,你程序中不要操作TMOD,開停定時器只要操作 TR0、TR1就行了。
作者: 勇士小子    時間: 2018-5-10 18:34
wulin 發表于 2018-5-10 17:01
定時器初始化設置就按如上示例,你程序中不要操作TMOD,開停定時器只要操作 TR0、TR1就行了。

哦哦,謝謝,t0要一直開著,響音樂的時候我要開t1,就怕和原來一樣,t1一打開就把t0屏蔽了,我晚上回去測試測試。不行的話在找大佬幫忙。多謝了
作者: 勇士小子    時間: 2018-5-10 23:09
wulin 發表于 2018-5-10 10:35
對于不可位操作的寄存器可以用邏輯運算符&和|操作位。
void main()
{               

根據你這個改了,還是蜂鳴器響完才加1,定時器不能同步。
作者: wulin    時間: 2018-5-11 07:03
勇士小子 發表于 2018-5-10 23:09
根據你這個改了,還是蜂鳴器響完才加1,定時器不能同步。

定時器0中斷的優先級高于定時器1中斷,在播放音樂時計時就不準了肯定是程序中定時器0被關閉了。 查查程序中有沒有TR0=0;ET0=0;或除初始化以外對TMOD寄存器的操作。
作者: ahshmj    時間: 2018-5-11 08:32
主要是TMOD你沒有弄明白,
“定時器/計數器”工作模式控制寄存器TMOD是一個逐位定義的寄存器,只能使用字節尋址,不可以位尋址。
低四位用來定義定時器/計數器T0,高四位用來定義定時器/計數器T1。
由于“只能使用字節尋址,不可以位尋址”,所以你需要先把“需要啟動其功能的位”設置成“1”,不需要的設置成“0”,然后將這8位的二進制值轉換成16進制,寫入程序。例如:TMOD = 0x11 就是TMOD = 00010001,寫成16進制就是TMOD = 0x11   如果想設置成T1為16位計數器,T0設置成16位定時器,就是TMOD = 01010001,寫成16進制就是 TMOD = 0x51 。你還是自己在琢磨琢磨吧。
作者: devcang    時間: 2018-5-12 10:24

記時添加時鐘芯片,讓單片機全力干活
作者: 勇士小子    時間: 2018-5-12 18:30
devcang 發表于 2018-5-12 10:24
記時添加時鐘芯片,讓單片機全力干活

我們不能時鐘芯片
作者: 勇士小子    時間: 2018-5-12 22:04
wulin 發表于 2018-5-11 07:03
定時器0中斷的優先級高于定時器1中斷,在播放音樂時計時就不準了肯定是程序中定時器0被關閉了。 查查程序 ...

我查了一下,沒有關的程序,響音樂時候只有對TH1和TL1的變化,感覺像是T1的工作時間太長了吧,無法及時跑到T0,響完一段音樂就執行一次T0,秒加1
作者: 勇士小子    時間: 2018-5-13 22:32
ahshmj 發表于 2018-5-11 08:32
主要是TMOD你沒有弄明白,
“定時器/計數器”工作模式控制寄存器TMOD是一個逐位定義的寄存器,只能使用字 ...

是不是這個問題啊,可以同時工作,但不能同時中斷。一個定時器中斷結束后另一個才能進入。當設定工作模式(有TMOD寄存器設置)后當TRx=1時就開始工作了,當ETx=1時,溢出時就申請中斷。如果EA=1,那么就可以進入中斷了。




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1