欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)點(diǎn)亮小燈的問(wèn)題,幾行代碼,實(shí)在想不通怎么執(zhí)行的 [打印本頁(yè)]

作者: 如是便是    時(shí)間: 2019-6-4 23:01
標(biāo)題: 單片機(jī)點(diǎn)亮小燈的問(wèn)題,幾行代碼,實(shí)在想不通怎么執(zhí)行的
那個(gè)大佬幫忙看一下,目前剛接觸單片機(jī),圖片里面的程序哪里有問(wèn)題啊,就幾行代碼,我實(shí)在想不通啊。目的就是想通過(guò)定時(shí)計(jì)數(shù)器,用軟件查詢的方式,間隔50ms,實(shí)現(xiàn)一個(gè)小燈的亮滅

E2{MGRX0~RI7~FHR1ZK`AZA.png (37.64 KB, 下載次數(shù): 56)

程序代碼

程序代碼

作者: 如是便是    時(shí)間: 2019-6-4 23:10
程序下載運(yùn)行后小燈一直亮著
作者: yzwzfyz    時(shí)間: 2019-6-5 08:08
關(guān)鍵是你未弄清楚:定時(shí)計(jì)數(shù)器是如何工作的。
自己再仔細(xì)閱讀定時(shí)器章節(jié),特別是TF0是干什么用的?

作者: m182892    時(shí)間: 2019-6-5 08:34
一看你應(yīng)該是從匯編過(guò)來(lái)的。
作者: xuyaqi    時(shí)間: 2019-6-5 08:51
間隔50ms小燈亮滅人眼是無(wú)法辨別的。
作者: wulin    時(shí)間: 2019-6-5 08:52
TMOD |= 0x01;
作者: xianfajushi    時(shí)間: 2019-6-5 08:54
首先直接看到的GOTO語(yǔ)句形成的循環(huán)此舉實(shí)屬頭上安頭!因?yàn)橐呀?jīng)寫在了無(wú)限循環(huán)中,假如寫在無(wú)限循環(huán)外,那用GOTO構(gòu)成循環(huán)是需要的.
作者: xianfajushi    時(shí)間: 2019-6-5 09:16
計(jì)算機(jī)系統(tǒng)都是順序執(zhí)行的,自上而下逐句執(zhí)行指令.
TF0=1為溢出即計(jì)滿標(biāo)記,置0重新開(kāi)始計(jì)數(shù),那么整個(gè)程序順序讀起來(lái)設(shè)計(jì)意圖就很明確了.
作者: xianfajushi    時(shí)間: 2019-6-5 09:30
另外一個(gè)6樓說(shuō)的對(duì)是01不是10
作者: xianfajushi    時(shí)間: 2019-6-5 09:33
問(wèn)題3用取反運(yùn)算符 led=!led;
作者: 笨笨兔    時(shí)間: 2019-6-5 09:37
你如果以前是用匯編編程,現(xiàn)在改為C編程,首先需要自己改變思維模式,比較難啊。
作者: 如是便是    時(shí)間: 2019-6-5 09:44
yzwzfyz 發(fā)表于 2019-6-5 08:08
關(guān)鍵是你未弄清楚:定時(shí)計(jì)數(shù)器是如何工作的。
自己再仔細(xì)閱讀定時(shí)器章節(jié),特別是TF0是干什么用的?

好的,我再仔細(xì)學(xué)學(xué),謝謝大佬指點(diǎn)
作者: 如是便是    時(shí)間: 2019-6-5 09:45
m182892 發(fā)表于 2019-6-5 08:34
一看你應(yīng)該是從匯編過(guò)來(lái)的。

是的,感覺(jué)學(xué)學(xué)匯編,學(xué)一些基礎(chǔ)東西,更方便理解吧【笑哭】
作者: 如是便是    時(shí)間: 2019-6-5 09:46
xuyaqi 發(fā)表于 2019-6-5 08:51
間隔50ms小燈亮滅人眼是無(wú)法辨別的。

好的,謝謝大佬,我再看看,改改
作者: ZGJ20170905    時(shí)間: 2019-6-5 10:06
1.沒(méi)看到你的定時(shí)器中斷函數(shù)
2.小燈閃爍50ms人眼分辨不出來(lái)(看起來(lái)就是一直亮),先實(shí)現(xiàn)200ms閃爍
3.搞清楚定時(shí)器的原理,就是你設(shè)置一個(gè)值,單片機(jī)會(huì)從0加到你設(shè)的那個(gè)值,然后清零,重新開(kāi)始計(jì)數(shù)(簡(jiǎn)單,數(shù)據(jù)手冊(cè)有)
作者: 陳潤(rùn)源home    時(shí)間: 2019-6-5 11:18
大哥,中斷的處理函數(shù)都沒(méi)有
作者: 如是便是    時(shí)間: 2019-6-5 13:26
謝謝各位大佬的回答,感謝,感謝
作者: cjm82    時(shí)間: 2019-6-5 14:25
漏了將ET0和EA置1吧,有很多軟件都可以直接生成配置中斷的函數(shù).填入?yún)?shù)即可自動(dòng)生成,根本沒(méi)必要自己去記.
作者: lele5211314    時(shí)間: 2019-6-5 17:54
建議臃腫,你這樣寫程序不是很規(guī)范
作者: xianfajushi    時(shí)間: 2019-6-5 21:15
看一下運(yùn)行輸出波形就知道



作者: xianfajushi    時(shí)間: 2019-6-5 21:18
  1. #include "reg52.h"
  2. sbit LED=P1^0;
  3. void ZhongDuanSheZhi()
  4. {
  5.         TH0+=0X4c;/*定時(shí)器賦初值,11.0592Mz定時(shí)50ms觸發(fā)中斷,自動(dòng)補(bǔ)償方式*/
  6.         TL0+=0X00;
  7.         TMOD=0X01;
  8.         TR0=1;
  9. }
  10. void main()
  11. {
  12.         ZhongDuanSheZhi();
  13.         while(1)
  14.         {
  15.                 if(TF0){TF0=0;LED=!LED;ZhongDuanSheZhi();}
  16.         }
  17. }
復(fù)制代碼

運(yùn)行看上圖
作者: 47okey    時(shí)間: 2019-6-5 23:05
1.TMOD=0x01 //16位定時(shí)器
2.閃爍時(shí)間太短,改成TMOD=0x01后,10次LED求反一次
3.樓主用的是查詢方法,而不是中斷方法,所以所說(shuō)的看不到中斷函數(shù)很正常。

。。。
while(1)
        {
                loop:if(TF0==1)
                {
                        //led=~led;
                        TH0=0x3c;
                        TL0=0xb0;
                        TF0=0;
                        i++;
                        if(i==10)
                        {
                                i=0;
                                led=!led;
                        }

                }
               
                        else
。。。
作者: suc.雀翎    時(shí)間: 2019-6-6 00:55
首先看主函數(shù),調(diào)用定時(shí)器函數(shù),賦初值50ms,隨后判斷是否定時(shí)結(jié)束,若是,則點(diǎn)亮燈(因?yàn)檩敵龈唠娖,燈就可以亮?表示高電平,0表示低電平,進(jìn)行取反操作即可實(shí)現(xiàn)燈的亮滅)
作者: 幻劍心    時(shí)間: 2019-6-6 01:42
TMOD |= 0x10;0x10 是:選擇定時(shí)器1(不是定時(shí)器0)的16位定時(shí)器模式,TH0和TL0都是定時(shí)器0的寄存器。TR0=1是啟動(dòng)定時(shí)器0(T0)。如果要用定時(shí)器1,那么TH0,TL0改為TH1,TL1,TR0改為TR0,TF0改為TF1。
如果要用定時(shí)器0,那么就要把TMOD|=0x01;。
一個(gè)建議,如果再整個(gè)程序中沒(méi)用到另一個(gè)定時(shí)器,那么建議直接TMOD=0x01;這樣避免某些原因把定時(shí)器/計(jì)數(shù)器的工作方式改成其它的工作方式。比如變成計(jì)數(shù)器模式。
作者: xing1954    時(shí)間: 2019-6-6 04:34
各顯神通。
作者: aking991    時(shí)間: 2019-6-6 08:47
50ms間隔時(shí)間人眼觀察不出燈的變化,用示波器才能觀測(cè)到,建議先把延長(zhǎng)200ms以上先看其是否有變化就知道了
作者: lxbeiming    時(shí)間: 2019-6-6 08:55
定時(shí)器原理你要看下,模式1,需要中斷服務(wù)程序的,你中斷服務(wù)程序都沒(méi)有,在主程序中賦初值了
作者: csaa157    時(shí)間: 2019-6-6 09:26
定時(shí)計(jì)數(shù)器我搞了半天也沒(méi)搞明白
作者: xianfajushi    時(shí)間: 2019-6-6 10:21

看LED燈閃爍一次就是100毫秒即50亮+50滅


作者: 如是便是    時(shí)間: 2019-6-6 14:35
47okey 發(fā)表于 2019-6-5 23:05
1.TMOD=0x01 //16位定時(shí)器
2.閃爍時(shí)間太短,改成TMOD=0x01后,10次LED求反一次
3.樓主用的是查詢方法, ...

謝謝你的代碼,參照修改了一下,效果實(shí)現(xiàn)了,可能我才學(xué),表述的大家有的可能沒(méi)太明白【笑哭】
作者: 如是便是    時(shí)間: 2019-6-6 14:38
xianfajushi 發(fā)表于 2019-6-5 21:18
運(yùn)行看上圖

謝謝你的回答,現(xiàn)在我還是一個(gè)菜鳥(niǎo),你那個(gè)仿真界面,看的我有點(diǎn)懵逼【笑哭】,向?qū)又鲗W(xué)習(xí)
作者: 如是便是    時(shí)間: 2019-6-6 14:40
aking991 發(fā)表于 2019-6-6 08:47
50ms間隔時(shí)間人眼觀察不出燈的變化,用示波器才能觀測(cè)到,建議先把延長(zhǎng)200ms以上先看其是否有變化就知道了

是的,大家熱情的回答,我才知道,是間隔時(shí)間太短了,肉眼根本看不出來(lái)變化
作者: 如是便是    時(shí)間: 2019-6-6 14:42
xianfajushi 發(fā)表于 2019-6-6 10:21
看LED燈閃爍一次就是100毫秒即50亮+50滅

仿真能看得見(jiàn)變化嗎??我實(shí)際運(yùn)行的時(shí)候,50ms間隔太短了,肉眼看不出來(lái)變化,小燈就一直亮著的
作者: xxllll    時(shí)間: 2019-6-6 14:48
TMOD=0x01 //16位定時(shí)器
作者: xianfajushi    時(shí)間: 2019-6-6 15:57
仿真能看到閃爍,上的圖是比較慢了點(diǎn),電腦越用越慢,在另一臺(tái)電腦上閃爍就快點(diǎn),也是能看到的,所謂人眼暫留特性值在60赫茲以上人眼就無(wú)法分辨,60赫茲以下就會(huì)感覺(jué)閃爍,可以計(jì)算50/1000=0.05,1/0.05=20赫茲,是人眼可以看到的。
作者: xianfajushi    時(shí)間: 2019-6-6 16:02
看到2次亮的間隔應(yīng)該100毫秒轉(zhuǎn)為頻率100/1000=。1;1/。1=10赫茲,因此是可以看到的,你在實(shí)際板上看到一直亮是因?yàn)橹板e(cuò)誤造成的,按我的代碼你再試看是否看到閃爍了?
作者: 大壞蛋997    時(shí)間: 2019-6-6 16:39
定時(shí)器TFO多看看,這個(gè)地方弄錯(cuò)了
作者: 早學(xué)早輕松還ZB    時(shí)間: 2019-6-6 17:51
D定時(shí)器哪里的問(wèn)題,在看下定時(shí)器的用法吧
作者: 智能新風(fēng)向    時(shí)間: 2019-6-6 18:12
相互借鑒,條條大路通羅馬
作者: 47okey    時(shí)間: 2019-6-6 18:35
大壞蛋997 發(fā)表于 2019-6-6 16:39
定時(shí)器TFO多看看,這個(gè)地方弄錯(cuò)了

樓主TF0用得沒(méi)錯(cuò)。
作者: 三感    時(shí)間: 2019-6-6 21:32
還有總開(kāi)關(guān)EA=1;定時(shí)器開(kāi)關(guān)ET0=1;
作者: lwh999995    時(shí)間: 2019-6-6 22:39
TMOD|=0x10; 是定時(shí)器1

ok.JPG (77.97 KB, 下載次數(shù): 125)

TMOD = 0x01 就對(duì)了

TMOD = 0x01 就對(duì)了

作者: somesun    時(shí)間: 2019-6-7 16:57
TMOD=0x01
作者: s1gm    時(shí)間: 2019-6-8 11:07
lwh999995 發(fā)表于 2019-6-6 22:39
TMOD|=0x10; 是定時(shí)器1

我上小學(xué)時(shí)老師就是這樣批改作業(yè)的!認(rèn)真仔細(xì)!有評(píng)語(yǔ)!
作者: sdghbdf    時(shí)間: 2019-6-8 13:35
學(xué)下基礎(chǔ),再看看吧




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