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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教:這個程序下載后,小燈為什么常亮,不閃爍

[復制鏈接]
跳轉到指定樓層
樓主
ID:65222 發表于 2014-8-19 14:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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;
         }
         
         }
   
   
   
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2014-8-19 15:13 | 只看該作者
應該是定時器沒有設置好 我等下拿到板子上看看
回復

使用道具 舉報

板凳
ID:1 發表于 2014-8-19 20:13 | 只看該作者
有下面這幾種原因導致  燈會常亮
1是 定時器沒有工作
2是 閃爍的速度太快 導致你看不到閃爍
回復

使用道具 舉報

地板
ID:1 發表于 2014-8-19 20:14 | 只看該作者
************************************************/
#include<reg51.h>

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


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

void main()

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

P14=0; //開led使能

P07=0;                    //先將P20位的LED點亮

TMOD=0x01;        //設置定時器T0工作在模式1

TH0=0xb1; TL0=0xe0;      //裝T0的計數初值,12MHz,20ms計時

EA=1;                     //開啟總中斷允許位

ET0=1;                   //開啟T0定時器

TR0=1;                   //開啟T0定時器中斷允許位

while(1);          //循環等待中斷發生

}

void time0(void) interrupt 1 //中斷程序寫法

{ TH0=0xb1; TL0=0xe0;       //重裝T0的計數初值

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

{

   i=0; //i清零

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

}

}
回復

使用道具 舉報

5#
ID:65222 發表于 2014-8-19 22:25 | 只看該作者
多謝老大指點。謝謝你的代碼
回復

使用道具 舉報

6#
ID:60266 發表于 2014-8-19 23:21 | 只看該作者
樓主 調試結果怎么樣?
回復

使用道具 舉報

7#
ID:65222 發表于 2014-8-20 14:23 | 只看該作者
我的程序還是不行,看程序貌似沒什么問題,難道是片子問題,定時器有問題?沒搞清楚。老大用的是中斷寫法,我正在學習定時器,所以用這種寫法試試
回復

使用道具 舉報

8#
ID:65222 發表于 2014-8-20 22:29 | 只看該作者
已經找到原因了。調試成功,在 if(TF0 == 1)下面,少寫了一組大括號,找了一天,很U傷。

通過的代碼是這樣的

#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;
         }
         
         }
   }
   
   
}
回復

使用道具 舉報

9#
ID:2318 發表于 2014-8-21 04:09 來自手機 | 只看該作者
原來如此
回復

使用道具 舉報

10#
ID:44262 發表于 2014-8-21 22:30 來自手機 | 只看該作者
看來一些程序連一個括號都不能忽視啊!樓主的經驗值得我們學習
回復

使用道具 舉報

11#
ID:65222 發表于 2014-8-21 22:53 | 只看該作者
恩,好像是while下面如果不加大括號,程序就反復執行下面的第一句程序,反復執行這一句,不會再向后執行了。
多謝各位關注我的問題。致敬!!
回復

使用道具 舉報

12#
ID:65222 發表于 2014-8-23 22:30 | 只看該作者
還有一個疑問,請教。。

還是這段程序,我寫的時候小燈閃爍定時1s,但結果卻是一秒鐘能閃爍3次吧,實在不知道這是為什么?請大家不吝賜教!!謝。
回復

使用道具 舉報

13#
ID:26188 發表于 2014-8-23 23:37 來自手機 | 只看該作者
深海鯨變 發表于 2014-8-23 22:30
還有一個疑問,請教!!!

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

  if(cnt >= 50),把50改小一些即可,,比如17
回復

使用道具 舉報

14#
ID:26188 發表于 2014-8-23 23:40 來自手機 | 只看該作者
深海鯨變 發表于 2014-8-21 22:53
恩,好像是while下面如果不加大括號,程序就反復執行下面的第一句程序,反復執行這一句,不會再向后執行了 ...

是的,,大括號里面的語句塊,是作為一個整體執行的,while下面的循環體如果超過一句一定得用大括號
回復

使用道具 舉報

15#
ID:65222 發表于 2014-8-24 08:51 | 只看該作者
本帖最后由 深海鯨變 于 2014-8-24 08:52 編輯
hujia 發表于 2014-8-23 23:37
if(cnt >= 50),把50改小一些即可,,比如17

為什么會是改少?我我設置的定時器是20ms,50個周期,正好是1s。難道是我的算法有問題?17是隨便舉的例子嗎?為什么是17?
回復

使用道具 舉報

16#
ID:26188 發表于 2014-8-24 11:37 來自手機 | 只看該作者
說反了應該是改大三倍,,要改為150
回復

使用道具 舉報

17#
ID:26188 發表于 2014-8-24 11:38 來自手機 | 只看該作者
先試試看看行嗎
回復

使用道具 舉報

18#
ID:65222 發表于 2014-8-25 23:28 | 只看該作者
如果改大,當然可以了,但是我的時間是計算出來的啊,晶振是11.0592M的。為什么實際的和計算的不一致?
回復

使用道具 舉報

19#
ID:63839 發表于 2014-8-28 17:26 | 只看該作者
a110 發表于 2014-8-21 22:30
看來一些程序連一個括號都不能忽視啊!樓主的經驗值得我們學習

我又一次寫貪吃蛇 for()循環后面直接加了;導致無法進入循環 我找了半個小時才找到
回復

使用道具 舉報

20#
ID:65222 發表于 2014-8-29 23:09 | 只看該作者
哪位大俠能幫我解答一下我的問題,想精確延時,否則用for語句就可以實現閃爍,想在想精確控制小燈閃爍時間
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美中文字幕在线 | 国产高清在线精品一区二区三区 | 欧美一级免费看 | 午夜天堂精品久久久久 | 国产区精品在线观看 | 日本成人毛片 | 亚洲一区二区三区国产 | 美女国产精品 | 亚洲精品自在在线观看 | 91国自视频 | 欧美日韩综合精品 | 精品亚洲一区二区三区 | 久久久国产一区 | 亚洲毛片在线观看 | 欧美一级二级在线观看 | 亚洲在线高清 | 国产欧美二区 | 亚洲午夜精品久久久久久app | 欧美日韩亚洲视频 | 亚洲精品电影网在线观看 | 中文字幕在线第二页 | 黄色精品 | 1级黄色大片 | 色久伊人 | 欧美日韩综合一区 | 美女福利网站 | 中文字幕1区2区3区 日韩在线视频免费观看 | a级片在线观看 | 亚洲瑟瑟| 欧美中文一区 | 在线日韩 | 亚洲国产精选 | 日韩视频精品在线 | 日日操夜夜操视频 | 在线视频一区二区三区 | 欧美日韩综合精品 | 欧美日韩成人 | 久久国产精品视频 | 久久精品成人 | 国产成人精品一区二区 | 亚洲国产精品久久久久婷婷老年 |