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

標(biāo)題: 請(qǐng)教:這個(gè)程序下載后,小燈為什么常亮,不閃爍 [打印本頁(yè)]

作者: 深海鯨變    時(shí)間: 2014-8-19 14:16
標(biāo)題: 請(qǐng)教:這個(gè)程序下載后,小燈為什么常亮,不閃爍
#include<reg52.h>

sbit enled=P1^4;
sbit led = P0^0;

void main()
{
    unsigned char cnt = 0;
    enled = 0;
    TMOD = 0X01;
    TH0 = 0XB8;
    TL0 = 0X00;
    TR0 = 1;

    while(1)
        {
        if(TF0 == 1)
        TF0 = 0;
        TH0 = 0XB8;
        TL0 = 0X00;

          cnt++;
         if(cnt >= 50)
         {

             cnt = 0;
             led = ~led;
         }
         
         }
   
   
   
}

作者: admin    時(shí)間: 2014-8-19 15:13
應(yīng)該是定時(shí)器沒(méi)有設(shè)置好 我等下拿到板子上看看
作者: admin    時(shí)間: 2014-8-19 20:13
有下面這幾種原因?qū)е?nbsp; 燈會(huì)常亮
1是 定時(shí)器沒(méi)有工作
2是 閃爍的速度太快 導(dǎo)致你看不到閃爍
作者: admin    時(shí)間: 2014-8-19 20:14
************************************************/
#include<reg51.h>

sbit P14=P1^4;
sbit P07=P0^7;
sbit P26=P2^6;


volatile int i;       //聲明一個(gè)變量為可能意外變化的量(相對(duì)于const而言)用語(yǔ)中斷程序

void main()

{
P26=1;  //防止數(shù)碼管干擾
P0=0x00;
P26=0;
P0=0xff;

P14=0; //開(kāi)led使能

P07=0;                    //先將P20位的LED點(diǎn)亮

TMOD=0x01;        //設(shè)置定時(shí)器T0工作在模式1

TH0=0xb1; TL0=0xe0;      //裝T0的計(jì)數(shù)初值,12MHz,20ms計(jì)時(shí)

EA=1;                     //開(kāi)啟總中斷允許位

ET0=1;                   //開(kāi)啟T0定時(shí)器

TR0=1;                   //開(kāi)啟T0定時(shí)器中斷允許位

while(1);          //循環(huán)等待中斷發(fā)生

}

void time0(void) interrupt 1 //中斷程序?qū)懛?br />
{ TH0=0xb1; TL0=0xe0;       //重裝T0的計(jì)數(shù)初值

i++; if(i==25)     //計(jì)數(shù)到25次(即0.5秒)

{

   i=0; //i清零

   P07=~P07;    //取反LED端口,

}

}
作者: 深海鯨變    時(shí)間: 2014-8-19 22:25
多謝老大指點(diǎn)。謝謝你的代碼
作者: heise    時(shí)間: 2014-8-19 23:21
樓主 調(diào)試結(jié)果怎么樣?
作者: 深海鯨變    時(shí)間: 2014-8-20 14:23
我的程序還是不行,看程序貌似沒(méi)什么問(wèn)題,難道是片子問(wèn)題,定時(shí)器有問(wèn)題?沒(méi)搞清楚。老大用的是中斷寫(xiě)法,我正在學(xué)習(xí)定時(shí)器,所以用這種寫(xiě)法試試
作者: 深海鯨變    時(shí)間: 2014-8-20 22:29
已經(jīng)找到原因了。調(diào)試成功,在 if(TF0 == 1)下面,少寫(xiě)了一組大括號(hào),找了一天,很U傷。

通過(guò)的代碼是這樣的

#include<reg52.h>

sbit enled=P1^4;
sbit led = P0^0;

void main()
{
    unsigned char cnt = 0;
    enled = 0;
    TMOD = 0X01;
    TH0 = 0XB8;
    TL0 = 0X00;
    TR0 = 1;

    while(1)
        {
        if (TF0 == 1)
        {
        TF0 = 0;
        TH0 = 0XB8;
        TL0 = 0X00;

          cnt++;
         if(cnt >= 50)
         {

             cnt = 0;
             led = ~led;
         }
         
         }
   }
   
   
}
作者: hkccd    時(shí)間: 2014-8-21 04:09
原來(lái)如此
作者: a110    時(shí)間: 2014-8-21 22:30
看來(lái)一些程序連一個(gè)括號(hào)都不能忽視啊!樓主的經(jīng)驗(yàn)值得我們學(xué)習(xí)
作者: 深海鯨變    時(shí)間: 2014-8-21 22:53
恩,好像是while下面如果不加大括號(hào),程序就反復(fù)執(zhí)行下面的第一句程序,反復(fù)執(zhí)行這一句,不會(huì)再向后執(zhí)行了。
多謝各位關(guān)注我的問(wèn)題。致敬!!
作者: 深海鯨變    時(shí)間: 2014-8-23 22:30
還有一個(gè)疑問(wèn),請(qǐng)教!!!

還是這段程序,我寫(xiě)的時(shí)候小燈閃爍定時(shí)1s,但結(jié)果卻是一秒鐘能閃爍3次吧,實(shí)在不知道這是為什么?請(qǐng)大家不吝賜教!!謝。
作者: hujia    時(shí)間: 2014-8-23 23:37
深海鯨變 發(fā)表于 2014-8-23 22:30
還有一個(gè)疑問(wèn),請(qǐng)教!!!

還是這段程序,我寫(xiě)的時(shí)候小燈閃爍定時(shí)1s,但結(jié)果卻是一秒鐘能閃爍3次吧,實(shí) ...

  if(cnt >= 50),把50改小一些即可,,比如17
作者: hujia    時(shí)間: 2014-8-23 23:40
深海鯨變 發(fā)表于 2014-8-21 22:53
恩,好像是while下面如果不加大括號(hào),程序就反復(fù)執(zhí)行下面的第一句程序,反復(fù)執(zhí)行這一句,不會(huì)再向后執(zhí)行了 ...

是的,,大括號(hào)里面的語(yǔ)句塊,是作為一個(gè)整體執(zhí)行的,while下面的循環(huán)體如果超過(guò)一句一定得用大括號(hào)
作者: 深海鯨變    時(shí)間: 2014-8-24 08:51
本帖最后由 深海鯨變 于 2014-8-24 08:52 編輯
hujia 發(fā)表于 2014-8-23 23:37
if(cnt >= 50),把50改小一些即可,,比如17

為什么會(huì)是改少?我我設(shè)置的定時(shí)器是20ms,50個(gè)周期,正好是1s。難道是我的算法有問(wèn)題?17是隨便舉的例子嗎?為什么是17?
作者: hujia    時(shí)間: 2014-8-24 11:37
說(shuō)反了應(yīng)該是改大三倍,,要改為150
作者: hujia    時(shí)間: 2014-8-24 11:38
先試試看看行嗎
作者: 深海鯨變    時(shí)間: 2014-8-25 23:28
如果改大,當(dāng)然可以了,但是我的時(shí)間是計(jì)算出來(lái)的啊,晶振是11.0592M的。為什么實(shí)際的和計(jì)算的不一致啊?
作者: NB沒(méi)B    時(shí)間: 2014-8-28 17:26
a110 發(fā)表于 2014-8-21 22:30
看來(lái)一些程序連一個(gè)括號(hào)都不能忽視啊!樓主的經(jīng)驗(yàn)值得我們學(xué)習(xí)

我又一次寫(xiě)貪吃蛇 for()循環(huán)后面直接加了;導(dǎo)致無(wú)法進(jìn)入循環(huán) 我找了半個(gè)小時(shí)才找到
作者: 深海鯨變    時(shí)間: 2014-8-29 23:09
哪位大俠能幫我解答一下我的問(wèn)題,想精確延時(shí),否則用for語(yǔ)句就可以實(shí)現(xiàn)閃爍,想在想精確控制小燈閃爍時(shí)間




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 伊人精品在线 | 中文字幕精品视频 | 国产露脸国语对白在线 | 亚洲视频不卡 | 色屁屁在线观看 | 久久久www成人免费无遮挡大片 | 精品人伦一区二区三区蜜桃网站 | 国产91网址 | 亚洲精品视频在线看 | 国产成人精品一区二区三区四区 | 91精品国产91久久久久久吃药 | 国产精品无码专区在线观看 | 中文字幕1区 | 精品一区二区三区免费视频 | 久久久久国产精品免费免费搜索 | www.日韩免费 | 日韩综合网 | 久久久久久久一区 | 久久久综合久久 | 婷婷久久五月天 | 国产一区二区三区在线 | 91伊人 | 一区二区高清在线观看 | 精品99久久久久久 | www.久久久久久久久 | 亚洲国产一区在线 | 国产一级网站 | 精品久久伊人 | 99久久中文字幕三级久久日本 | 91人人看 | 伊人免费在线观看高清 | 亚洲欧美在线一区 | 日韩毛片在线观看 | 久久九 | 91黄在线观看 | 久久久久国色av免费观看性色 | 99re在线视频| 91影库| 本地毛片 | 日韩免费在线 | 久久久久网站 |