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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機簡單的計時器應用

[復制鏈接]
跳轉到指定樓層
樓主
ID:432487 發(fā)表于 2018-11-24 18:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用的是51單片機, 晶振為11.0592M的, 時間選擇5ms。
這篇博客好像是第一篇單片機博客誒~。
算法:
簡單的計時器應用, 最開始 根據   2^16 - (t - f)/12  計算得到值, 將其轉換為16進制  (注意:單位的改變, 例如晶振要乘上 10e6   時間 要轉換為秒s  乘上 10e-3)
由此可以得到 TH0/TL0的值。
例如:
設計的是5ms, 則  算式為   2^16 - (5 * 10^-3   - 11.0592  * 10^6) / 12;  轉換為16進制  為DC00;  所以 TH0 = 0XDC      __   TL0 = 0X00;
顯示:
拆字什么的 就不說了~~, 反正就是 分和秒 對 10取余 和 整除。
下面函數中的 counter 和 second 分別對應 秒和分。
Hint:
老師說, 最好在     tmp=counter%4; 前  加上 if(changed == 1)執(zhí)行拆字顯示, 然后再將執(zhí)行空語句 如此循環(huán)。  但還是不怎么明白為什么。 好像是說 保護 IO 之類的~~~~
#include<reg52.h>
#define uchar unsigned char
uchar counter=0,tmp,second=0,minute=0, changed = 1;
main()
{   //TMOD=0X21;                            //設置TMOD寄存器
    TMOD=0X01;                          //設置TMOD寄存器
    TH0=0xDc;              //裝初值
    TL0=0x00;
    //TH1=0XFD;
    //TL1=0;
    //TR1=1;
    //SCON=0X50;
    EA=1;       //開 中斷
    ET0=1;
    TR0=1;
    while(1)
    {
         char a[10] = {0xc0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
    //拆字
    //顯示
    tmp=counter%4;
    switch(tmp)
    {
    case 0:{
                P2 = 0x7f;
                P0 = a[second%10];
            }
        break;
    case 1:{
                P2 = 0xbf;
                P0 = a[second/10];
            }
        break;
    case 2: {
                P2 = 0xdf;
                P0 = a[minute%10];
            }
        break;
    case 3: {
                P2 = 0xef;
                P0 = a[minute/10];
            }
        break;
    }
    }

    /*
        if(j==2)
        {
            j=0;
            P2=~P2;
        }
    */
}
void zhongduan()interrupt 1
{
    TH0=0xee;              //裝初值
    TL0=0x00;
    TF0=0;
    TR0=1;
    /*
    i++;
    if(i>=5)
    {
        i=0;   
        //SBUF=j;
        //while(!TI);
        //TI=0;
        j++;
    }
    */
    counter++;
    if(counter==200)
    {
       counter=0;
       second++;
       if(second==60)
       {
          second=0;
          minute++;
       }
     }
}      
---------------------
作者:棺木酥

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日本精品视频 | 欧美一级在线免费观看 | 免费黄网站在线观看 | 国产免费福利在线 | 一区二区三区四区国产 | 色欧美片视频在线观看 | 久久久人成影片一区二区三区 | 久久精品小视频 | 国产精品欧美精品日韩精品 | 亚洲一区视频在线 | 欧美精品一区在线 | 日本三级电影免费 | 国产精品日韩欧美一区二区三区 | 亚洲精品观看 | 成人欧美一区二区三区在线观看 | 天天影视网天天综合色在线播放 | 日韩视频免费看 | 一区二区高清不卡 | 久久综合狠狠综合久久综合88 | 免费在线观看av片 | 欧美二区在线 | 日韩亚洲一区二区 | 婷婷久久综合 | 国产精品69毛片高清亚洲 | 中文字幕av亚洲精品一部二部 | 欧美成人精品欧美一级 | 日韩中文字幕在线观看视频 | 亚洲伊人a| 久久久久久蜜桃一区二区 | 国产精品美女久久久 | 日韩中文字幕视频 | 日日拍夜夜 | 国产成人福利在线观看 | 中文字幕精品一区久久久久 | 日韩精品久久久久久 | 久久夜视频 | 欧美成人精品激情在线观看 | 99精品在线观看 | 国产女人与拘做视频免费 | 久久免费精彩视频 | 日韩中文字幕在线观看 |