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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8606|回復: 1
收起左側

51單片機定時/計數器使用方法

[復制鏈接]
ID:103513 發表于 2016-1-17 04:20 | 顯示全部樓層 |閱讀模式
定時/計數器的使用方法:
1、根據要求選擇方式,確定方式控制字,寫入方式控制寄存器TMOD。
2、根據要求計算定時/計數器的計數值,再由計數值求得初值,寫入初值寄存器TH0/TH1和TL0/TL1。
3、根據需要開放定時/計數器中斷(后面需要編寫中斷服務程序)。
4、設置定時/計數器控制寄存器TCON的值,啟動定時/計數器開始工作。
5、等待定時/計數器時間到,到則執行中斷服務程序;如用查詢處理則編寫查詢程序判斷溢出標志,溢出標志等于1,則進行相應處理。

/******************************************************************************************/
/*                                                                                                                                                                                  */
/*                采用定時/計數器設計的60分鐘倒計時程序,實現60分鐘倒計時。利用4位數碼管顯示分、秒。*/
/*        數碼管每秒更新一次,秒表由59倒計時到00,則分鐘減1。                                                                     */
/*                                                                                        */
/******************************************************************************************/


#include <REG51.h>
#define uint unsigned int
#define uchar unsigned char
#define LED P2 // 數碼管段選
// 數碼管位選
sbit WE1 = P0^0;
sbit WE2 = P0^1;
sbit WE3 = P0^2;
sbit WE4 = P0^3;


uint min = 59;
uint sec = 59;
uint i;


uchar num_table[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // 0~9十六進制代碼。


void display(); // 數碼管顯示程序
void delay(uint x); // 延時程序


void main() {
        TMOD = 0x01;// 使用方式1
        TH0 = 0xD8;// 初值寄存器高8位
        TL0 = 0xF0;// 初值寄存器低8位
        EA = 1;// 允許中斷請求總控制
        ET0 = 1;// 定時/計數器T0溢出中斷允許
        TR0 = 1;// 定時/計數器T0的啟動位
        i = 0;
        while (1)
        {
                 display();
        }
}


void time0_int(void) interrupt 1 {// 中斷服務程序
        TH0 = 0xD8;
        TL0 = 0xF0;
        i++;
        if (i == 100) {
                 sec--;
                i = 0;
                if (sec == 0) {
                        sec = 59;
                        min--;
                        if (min == 0) min = 59;
                }
        }
}


void display() {
        uint min_s = min/10;
        uint min_g = min%10;
        uint sec_s = sec/10;
        uint sec_g = sec%10;


        WE1 = 1;
        LED = num_table[min_s];
        delay(1);
        WE1 = 0;
        WE2 = 1;
        LED = ~(~num_table[min_g]|0x80); // 顯示時后添加一個小數點
        delay(1);
        WE2 = 0;
        WE3 = 1;
        LED = num_table[sec_s];
        delay(1);
        WE3 = 0;
        WE4 = 1;
        LED = num_table[sec_g];
        delay(1);
        WE4 = 0;
}


void delay(uint x) {
        uint i;
        while (x-- != 0)
        {
                for (i = 0; i < 300; i++);
        }
}



回復

使用道具 舉報

ID:230250 發表于 2018-1-17 20:01 | 顯示全部樓層
  TH0 = 0xD8;// 初值寄存器高8位         TL0 = 0xF0;// 初值寄存器低8位這段代碼中為什么 TH0 = 0xD8 , TL0 = 0xF0
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人久久伊人 | 操亚洲 | 午夜免费精品视频 | 国产欧美日韩一区二区三区在线 | 亚洲成人一二三 | 中文字幕91 | 久久一二 | 欧美成人aaa级毛片在线视频 | 日韩视频免费 | 一区二区日韩精品 | 日日爱av| 成人网av | 亚洲免费在线 | 亚洲精品99| 日韩成人 | 久久久久久女 | 免费av观看 | 久草网站 | 国产精品久久a | 天天躁日日躁aaaa视频 | 国产一区二区影院 | 国产精品视频500部 a久久 | 国产偷久久一级精品60部 | 中文字幕在线电影观看 | 欧美日韩a | 日本又色又爽又黄又高潮 | 久久久免费电影 | 天天在线操 | 亚洲综合电影 | 狠狠夜夜 | 区一区二在线观看 | 91福利影院 | 91青娱乐在线 | 色噜噜亚洲男人的天堂 | 天天欧美 | 国产亚洲人成a在线v网站 | 99热在线免费 | 日韩免费毛片 | 五月天激情综合网 | 国产一区 | 精品久久久一区 |