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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

利用單片機定時器(T0或T1都行)產生定時時鐘 各位大神進來看看好不好?

[復制鏈接]
跳轉到指定樓層
樓主
ID:100391 發表于 2017-8-7 17:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
50黑幣
       利用定時器(T0或T1都行)產生定時時鐘,使用P3口控制八個LED燈。要求產生以下現象: 首先點亮第一個LED,并使其1秒鐘閃爍10次(就是亮50毫秒 滅50毫秒),然后輪到下一個燈閃爍(亮50毫秒 滅50毫秒),依次循環。  PS:其實就是會閃爍的流水燈(第一個燈閃爍之后輪到下一個閃爍,以此類推)。

最佳答案

查看完整內容

//按你的要求,給你寫了一個程序,有詳細注釋,已經過實驗驗證 #include #include #define uint unsigned int //宏定義數據類型uint #define uchar unsigned char //宏定義數據類型uchar uchar Cnt50ms=0; //中斷計時 uchar num=0xfe; //中間變量 bit sign=0; //使能標志 /***********定時器初始化程序****************/ void Timer0Init(void) //50毫秒@12.000MHz { TMOD &= 0xF0; //設置定 ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2017-8-7 17:25 | 只看該作者
//按你的要求,給你寫了一個程序,有詳細注釋,已經過實驗驗證
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int                 //宏定義數據類型uint
#define uchar unsigned char         //宏定義數據類型uchar
uchar Cnt50ms=0;                                        //中斷計時
uchar num=0xfe;                                        //中間變量
bit sign=0;                                                        //使能標志
/***********定時器初始化程序****************/
void Timer0Init(void)                        //50毫秒@12.000MHz
{
        TMOD &= 0xF0;                                        //設置定時器模式
        TMOD |= 0x01;                                        //設置定時器模式
        TL0 = 0xB0;                                                //設置定時初值
        TH0 = 0x3C;                                                //設置定時初值
        TF0 = 0;                                                        //清除TF0標志
        TR0 = 1;                                                        //定時器0開始計時

        EA=1;                                                                //開總中斷
        ET0=1;                                                        //開定時器0中斷       
}
/***************主程序****************/
void main()
{
        Timer0Init();                                        //定時器初始化
        while(1)
        {
                if(sign==0)
                        P3=num;
                else P3=0xff;
        }
}
/**************中斷服務程序*****************/
void timer0() interrupt        1
{
        TL0 = 0xB0;                                                //設置定時初值
        TH0 = 0x3C;                                                //設置定時初值
        Cnt50ms++;                                                //中斷變量Cnt50ms自+1
        sign=~sign;                                                //使能標志取反
        if(Cnt50ms>=20)                                //1秒
        {
                Cnt50ms=0;                                        //清0
                num=_crol_(num,1);                //左移循環一位
        }
}
回復

使用道具 舉報

板凳
ID:100391 發表于 2017-8-7 23:16 | 只看該作者
wulin 發表于 2017-8-7 17:25
//按你的要求,給你寫了一個程序,有詳細注釋,已經過實驗驗證
#include
#include

謝謝大神,我已經用實驗板驗證過你的程序了,是可行的。在這里謝謝你。  另外經過一個下午加一個晚上的時間,我自己居然想出來了怎么寫程序了,一下是我寫的程序:
#include<reg52.h>
#include <intrins.h>
unsigned char i,t,j;
void main()                                 
{
          TMOD=0x10;//設置定時器0位工作模式        1
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%256; //裝初值

          EA=1;//開總中斷
          ET1=1;//開定時器1中斷
          TR1=1;//啟動定時器1
           j=0xfe;                       
                while(1)
                 {                          
                                  if(t==1)
                                {
                                        P2=j;
                                }
                               
                                if(t==2)
                                {
                                        t=0;
                                        P2=0xff;
                                        i++;
                                }
                                 
                                 if(i==10)
                                  {
                                          i=0;
                                           j=_crol_(j,1);

                                  }
                 }                          
}

void waibuzhongduan0() interrupt 3        //中斷函數不需要聲明
{
         TH0=(65536-50000)/256;
         TL0=(65536-50000)%256; //裝初值
         t++;                         
}
回復

使用道具 舉報

地板
ID:123289 發表于 2017-8-8 10:38 | 只看該作者
這樣簡單的程序,自己也不愿意攻一下,建議改學CEO專業。
回復

使用道具 舉報

5#
ID:100391 發表于 2017-8-8 13:22 | 只看該作者
yzwzfyz 發表于 2017-8-8 10:38
這樣簡單的程序,自己也不愿意攻一下,建議改學CEO專業。

我攻了。。。。只是一開始沒有攻克,不過經過一晚的時間,才想出來。
回復

使用道具 舉報

6#
ID:100391 發表于 2017-8-8 14:18 | 只看該作者
不好意思。。。。初值裝錯了,裝到T0的初值去了  現在更改過來了  如下程序

#include<reg52.h>
#include <intrins.h>
unsigned char i,t,j;
void main()                                 
{
          TMOD=0x10;//設置定時器0位工作模式        1
          TH1=(65536-50000)/256;
          TL1=(65536-50000)%256; //裝初值

          EA=1;//開總中斷
          ET1=1;//開定時器1中斷
          TR1=1;//啟動定時器1
           j=0xfe;                       
                while(1)
                 {                          
                                  if(t==1)
                                {
                                        P2=j;
                                }
                                
                                if(t==2)
                                {
                                        t=0;
                                        P2=0xff;
                                        i++;
                                }
                                 
                                 if(i==10)
                                  {
                                          i=0;
                                           j=_crol_(j,1);

                                  }
                 }                          
}

void waibuzhongduan0() interrupt 3        //中斷函數不需要聲明
{
         TH1=(65536-50000)/256;
         TL1=(65536-50000)%256; //裝初值
         t++;                          
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合成人网 | 美女啪啪国产 | 天天操夜夜操 | 日韩av成人在线 | 91精品国产91久久久久久丝袜 | 亚洲一区中文字幕在线观看 | 亚洲专区在线 | 亚洲男人的天堂网站 | 成人在线电影在线观看 | 中文字幕日韩欧美 | 伊人久久国产 | 免费欧美视频 | 久久久久一区 | 国产精品1区2区3区 一区中文字幕 | 国产精品久久久久久久免费观看 | www.亚洲| 国产999精品久久久 精品三级在线观看 | 99热播精品 | 极品销魂美女一区二区 | 国产亚洲一区二区三区 | 91精品国产一区二区三区香蕉 | 岛国午夜 | 麻豆久久久9性大片 | 午夜影院黄 | 一区二区三区在线电影 | 天堂一区二区三区四区 | 国产特级毛片 | 一区二区在线 | 九九在线视频 | av免费在线播放 | 男人的天堂在线视频 | 91一区 | 自拍偷拍一区二区三区 | 成人av网站在线观看 | 久久久久国产 | 福利视频大全 | 成av在线 | 国产成人jvid在线播放 | 密色视频 | 精品视频一区二区 | 国产成人精品一区二区三区在线 |