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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2950|回復: 18
收起左側

求大佬改改程序,我不會用兩個定時器

[復制鏈接]
ID:318304 發表于 2018-5-10 08:10 來自觸屏版 | 顯示全部樓層 |閱讀模式
時鐘的程序,加上了無源蜂鳴器,就不跑時了,大佬幫忙看看吧。https://share.weiyun.com/5fI6iIr
回復

使用道具 舉報

ID:326568 發表于 2018-5-10 10:01 | 顯示全部樓層
驅動PCB不對
回復

使用道具 舉報

ID:326568 發表于 2018-5-10 10:01 | 顯示全部樓層
蜂鳴器驅動不對
回復

使用道具 舉報

ID:213173 發表于 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)
                {
回復

使用道具 舉報

ID:277550 發表于 2018-5-10 12:27 | 顯示全部樓層
程序是使用時鐘中斷計時的,在播放音樂時計時就不準了。。。。。播放完音樂,重新開啟定時器0
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 15:14 來自觸屏版 | 顯示全部樓層
devcang 發表于 2018-5-10 12:27
程序是使用時鐘中斷計時的,在播放音樂時計時就不準了。。。。。播放完音樂,重新開啟定時器0

說得對,怎樣讓它響音樂的時候正常跑時?該怎么改呢?
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 15:14 來自觸屏版 | 顯示全部樓層
東北許文強 發表于 2018-5-10 10:01
驅動PCB不對

液晶顯示嗎?還是什么
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 15:15 來自觸屏版 | 顯示全部樓層
東北許文強 發表于 2018-5-10 10:01
蜂鳴器驅動不對

蜂鳴器驅動應該可以的,錯誤在哪?
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 15:15 來自觸屏版 | 顯示全部樓層
wulin 發表于 2018-5-10 10:35
對于不可位操作的寄存器可以用邏輯運算符&和|操作位。
void main()
{               

哥,我不大懂,該怎么改呢
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 15:21 來自觸屏版 | 顯示全部樓層
大佬,能不能把正確的程序評論給我,或者QQ發到1994975123上謝謝了。
回復

使用道具 舉報

ID:213173 發表于 2018-5-10 17:01 | 顯示全部樓層
勇士小子 發表于 2018-5-10 15:15
哥,我不大懂,該怎么改呢

定時器初始化設置就按如上示例,你程序中不要操作TMOD,開停定時器只要操作 TR0、TR1就行了。
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 18:34 來自觸屏版 | 顯示全部樓層
wulin 發表于 2018-5-10 17:01
定時器初始化設置就按如上示例,你程序中不要操作TMOD,開停定時器只要操作 TR0、TR1就行了。

哦哦,謝謝,t0要一直開著,響音樂的時候我要開t1,就怕和原來一樣,t1一打開就把t0屏蔽了,我晚上回去測試測試。不行的話在找大佬幫忙。多謝了
回復

使用道具 舉報

ID:318304 發表于 2018-5-10 23:09 | 顯示全部樓層
wulin 發表于 2018-5-10 10:35
對于不可位操作的寄存器可以用邏輯運算符&和|操作位。
void main()
{               

根據你這個改了,還是蜂鳴器響完才加1,定時器不能同步。
回復

使用道具 舉報

ID:213173 發表于 2018-5-11 07:03 | 顯示全部樓層
勇士小子 發表于 2018-5-10 23:09
根據你這個改了,還是蜂鳴器響完才加1,定時器不能同步。

定時器0中斷的優先級高于定時器1中斷,在播放音樂時計時就不準了肯定是程序中定時器0被關閉了。 查查程序中有沒有TR0=0;ET0=0;或除初始化以外對TMOD寄存器的操作。
回復

使用道具 舉報

ID:7485 發表于 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 。你還是自己在琢磨琢磨吧。
回復

使用道具 舉報

ID:277550 發表于 2018-5-12 10:24 | 顯示全部樓層

記時添加時鐘芯片,讓單片機全力干活
回復

使用道具 舉報

ID:318304 發表于 2018-5-12 18:30 來自觸屏版 | 顯示全部樓層
devcang 發表于 2018-5-12 10:24
記時添加時鐘芯片,讓單片機全力干活

我們不能時鐘芯片
回復

使用道具 舉報

ID:318304 發表于 2018-5-12 22:04 來自觸屏版 | 顯示全部樓層
wulin 發表于 2018-5-11 07:03
定時器0中斷的優先級高于定時器1中斷,在播放音樂時計時就不準了肯定是程序中定時器0被關閉了。 查查程序 ...

我查了一下,沒有關的程序,響音樂時候只有對TH1和TL1的變化,感覺像是T1的工作時間太長了吧,無法及時跑到T0,響完一段音樂就執行一次T0,秒加1
回復

使用道具 舉報

ID:318304 發表于 2018-5-13 22:32 來自觸屏版 | 顯示全部樓層
ahshmj 發表于 2018-5-11 08:32
主要是TMOD你沒有弄明白,
“定時器/計數器”工作模式控制寄存器TMOD是一個逐位定義的寄存器,只能使用字 ...

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区四区av | 日韩一级免费大片 | 国产成人99久久亚洲综合精品 | 四虎影院在线观看免费视频 | 91久久精品一区二区二区 | 欧美日韩久久精品 | 天天做日日做 | 国产精品久久久久aaaa九色 | 欧美一级黄色片免费观看 | 91佛爷在线观看 | 亚洲精品一区二区 | 久久久久久免费观看 | 久久综合狠狠综合久久综合88 | 午夜免费网站 | 成人在线黄色 | 欧美韩一区二区 | 精品一区二区三区四区 | 亚洲二区在线 | 欧美日韩久久 | 久久久久久成人 | 国产精品欧美一区喷水 | 四虎午夜剧场 | 国产精品无码久久久久 | 在线一区| 性色在线 | 国产一区二区免费电影 | 操操日 | 亚洲精品18 | 伊人网国产 | 一区二区在线不卡 | 久久久www成人免费精品 | 羞羞的视频在线 | 拍拍无遮挡人做人爱视频免费观看 | 亚洲免费在线视频 | 国产精品3区| 伊人色综合久久天天五月婷 | a在线视频观看 | 亚洲精品视频在线 | 国产一区高清 | 国产亚洲精品久久久优势 | 欧美xxxx性xxxxx高清 |