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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

怎么用單片機用定時器控制數碼管的顯示?

  [復制鏈接]
回帖獎勵 1 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 3 次
跳轉到指定樓層
樓主
ID:452212 發表于 2018-12-24 18:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想實現數碼管與定時器結合,依次顯示數字并切換顯示速度,現在遇到的問題是不會用定時器控制晶體管的顯示,希望大神幫忙。

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

使用道具 舉報

沙發
ID:454000 發表于 2018-12-25 03:23 | 只看該作者
拿去吧,這有定時器不同時間的應用!用數組給定時器值
#include<reg51.h>
#define uchar unsigned char
#define uchar unsigned char
#define uint unsigned int
unsigned int i=0;  f=0;
unsigned char mm[ ] = {0x04,0xf5,0x56,0xef,0x14,0xb1,0xc7,0x98,0xe2,0x25,0xd4,0x02,0x11,0xa8,0xb7,0x03};
sbit led=P1^0;
void main()
{
        TMOD=0x01;               //T0工作在方式1下,16位定時功能
    TH0=f;  //定時器T1的高8位賦初值
    TL0=f;  //定時器T1的高8位賦初值
        TF0=0;                        //清除TF0標志位
        TR0=1;                        //啟動T0
        while(1)
        {
                if(TF0==1)                //判斷T0溢出標志位是否為1
                {         
                        TF0=0;
                    i++;
         if(i==16)

                   f=mm[i];

                        TH0=f;  //定時器T1的高8位賦初值
            TL0=f;  //定時器T1的高8位賦初值
               
                        led=~led;
                        i=0;
         }
        }}
       

評分

參與人數 3黑幣 +30 收起 理由
還有誰? + 15
jinsheng7533967 + 10 回帖助人的獎勵!
lx駕 + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:449525 發表于 2018-12-25 14:36 | 只看該作者
stc的那個isp下載器里面有詳細的設置和介紹,去官網上下載。對理解單片機也快。
回復

使用道具 舉報

地板
ID:452212 發表于 2018-12-25 15:52 來自手機 | 只看該作者
shuisheng 發表于 2018-12-25 03:23
拿去吧,這有定時器不同時間的應用!用數組給定時器值
#include
#define uchar unsigned char

謝謝啦
回復

使用道具 舉報

5#
ID:134430 發表于 2018-12-25 21:19 | 只看該作者
uchar TimeForSEG;
回復

使用道具 舉報

6#
ID:451718 發表于 2018-12-25 21:33 | 只看該作者
如果你剛接觸單片機,在了解中斷之前去學定時器,這是一個好思路。  但是不建議你通過看程序去體會, 還是要找一本不是太老,并且又通俗的教程仔細研讀,光看程序,往往會走彎路。  http://www.zg4o1577.cn/bbs/dpj-26246-1.html
這個教程里面,關于定時器講得很透徹,不像高校的教材,照本宣科,看得人滿頭霧水。
一樓的程序也不錯,很單純的講解了定時器的用法。但是定時器的附初值的方式,很可能會誤導人的。
回復

使用道具 舉報

7#
ID:134430 發表于 2018-12-25 21:45 | 只看該作者
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{
    TMOD=0x01;      //定時器0工作方式
    TH0=oxfc;         //   ims定時,(晶振12M)
    TL0=0x18;

    if(TimeForSEG>=xx)     //xx:需要控制數碼管的時間
    {
        TimeForSEG=0;       //清0,為下次計時
         Wei=0;                 //打開數碼管位控制(低電平啟動)
    }
}

vod TimeCount() interrupt 1     //中斷程序
{
    TH)=0xfc;                         //定時器重裝初值
    TL)=0x18
    TimeForSEG++;                 //計時;ims+1
}

我一般是如上寫程序的,這樣做有一個好處,更改時間方便,如果要控制多個元件,只要增加TimeForXX就行。
回復

使用道具 舉報

8#
ID:454949 發表于 2018-12-25 22:22 | 只看該作者
樓主可以嘗試用lcd1602  挺方便的
回復

使用道具 舉報

9#
ID:371527 發表于 2018-12-26 07:25 | 只看該作者
定時器設置為2ms,對數碼管定時掃描顯示
回復

使用道具 舉報

10#
ID:452212 發表于 2018-12-26 15:50 | 只看該作者
wh8010jky 發表于 2018-12-25 21:45
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{

謝謝啦
回復

使用道具 舉報

11#
ID:452212 發表于 2018-12-27 16:42 | 只看該作者
wh8010jky 發表于 2018-12-25 21:45
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{

想問一下可以隨意得更改時間嗎?還是只能+1?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av在线天堂 | 亚洲精品2区 | 成人深夜福利 | 密色视频 | 99久久精品免费看国产免费软件 | 夜夜av | 91久久国产综合久久 | 精品久久一区二区 | 美女黄色在线观看 | www.亚洲一区二区 | 欧美v在线观看 | 日韩一区二区在线免费观看 | 最近中文字幕在线视频1 | 国产情品 | 日本电影免费完整观看 | 蜜月va乱码一区二区三区 | 亚洲国产欧美一区 | 日韩精品在线看 | k8久久久一区二区三区 | 日韩在线一区二区 | 国产高清一区二区三区 | 国产精品爱久久久久久久 | 久久国产亚洲 | 欧美一区二区黄 | 国产免费观看久久黄av片涩av | 日日夜夜天天综合 | 欧美 日韩 在线播放 | 91精品在线看 | 欧美日韩一二区 | 国产乱码精品一品二品 | 久久一区二区三区四区 | 精品国产一区二区三区久久久蜜月 | 瑟瑟激情 | av大片 | 国产成人精品综合 | 亚洲日日夜夜 | a在线观看免费 | 日韩一区二区三区在线观看 | www.se91| 国产精品免费视频一区 | 四虎影院在线免费观看 |