女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用單片機設計記時器的資料概述

Wildesbeast ? 來源:單片機教程網 ? 作者:單片機教程網 ? 2020-05-16 12:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.實驗任務

用AT89S51單片機的定時/計數器T0產生一秒的定時時間,作為秒計數時間,當一秒產生時,秒計數加1,秒計數到60時,自動從0開始。下面我就開始介紹如何制作這款單片機記時器,硬件電路如下圖所示

2.電路原理

圖4.15.1

3.系統板上硬件連線

(1. 把“單片機系統”區域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態數碼顯示模塊”區域中的任一個a-h端口上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。

(2. 把“單片機系統”區域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“四路靜態數碼顯示模塊”區域中的任一個a-h端口上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。

4.程序設計內容

AT89S51單片機的內部16位定時/計數器是一個可編程定時/計數器,它既可以工作在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設置特殊功能寄存器TMOD,即可完成。定時/計數器何時工作也是通過軟件來設定TCON特殊功能寄存器來完成的。

現在我們選擇16位定時工作方式,對于T0來說,最大定時也只有65536us,即65.536ms,無法達到我們所需要的1秒的定時,因此,我們必須通過軟件來處理這個問題,假設我們取T0的最大定時為50ms,即要定時1秒需要經過20次的50ms的定時。對于這20次我們就可以采用軟件的方法來統計了。

因此,我們設定TMOD=00000001B,即TMOD=01H

下面我們要給T0定時/計數器的TH0,TL0裝入預置初值,通過下面的公式可以計算出

TH0=(216-50000)/256

TL0=(216-50000)MOD256

當T0在工作的時候,我們如何得知50ms的定時時間已到,這回我們通過檢測TCON特殊功能寄存器中的TF0標志位,如果TF0=1表示定時時間已到。

5.程序框圖

圖4.15.2

6.匯編源程序(查詢法)

SECOND EQU 30H

TCOUNT EQU 31H

ORG 00H

START: MOV SECOND,#00H

MOV TCOUNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

SETB TR0

DISP: MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

WAIT: JNB TF0,WAIT

CLR TF0

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

INC TCOUNT

MOV A,TCOUNT

CJNE A,#20,NEXT

MOV TCOUNT,#00H

INC SECOND

MOV A,SECOND

CJNE A,#60,NEX

MOV SECOND,#00H

NEX: LJMP DISP

NEXT: LJMP WAIT

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

7. C語言源程序(查詢法)

#include 《AT89X51.H》

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char tcount;

void main(void)

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

tcount=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

while(1)

{

if(TF0==1)

{

tcount++;

if(tcount==20)

{

tcount=0;

second++;

if(second==60)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second];

}

TF0=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

}

}

}

1. 匯編源程序(中斷法)

SECOND EQU 30H

TCOUNT EQU 31H

ORG 00H

LJMP START

ORG 0BH

LJMP INT0X

START: MOV SECOND,#00H

MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

MOV TCOUNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

SETB TR0

SETB ET0

SETB EA

SJMP $

INT0X:

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

INC TCOUNT

MOV A,TCOUNT

CJNE A,#20,NEXT

MOV TCOUNT,#00H

INC SECOND

MOV A,SECOND

CJNE A,#60,NEX

MOV SECOND,#00H

NEX: MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

NEXT: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

2. C語言源程序(中斷法)

#include 《AT89X51.H》

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char tcount;

void main(void)

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

ET0=1;

EA=1;

tcount=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

while(1);

}

void t0(void) interrupt 1 using 0

{

tcount++;

if(tcount==20)

{

tcount=0;

second++;

if(second==60)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second];

}

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44991

    瀏覽量

    650389
  • 計數器
    +關注

    關注

    32

    文章

    2291

    瀏覽量

    96403
  • 定時器
    +關注

    關注

    23

    文章

    3298

    瀏覽量

    118902
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AT89C51 單片機中文資料

    電子發燒友網站提供《AT89C51 單片機中文資料.pdf》資料免費下載
    發表于 06-24 15:29 ?0次下載

    51+單片機TCP-IP+協議棧ZLIP源碼

    概述 單片機上網技術,是當前的一個熱門技術。單片機上網技術中的一個重要部分是在單片上實現 TCP/IP 協議棧。現在可獲得的 TCP/IP 源代碼一般并不為 51
    發表于 04-22 15:11

    STC單片機聲卡PCB和源碼資料

    STC單片機聲卡PCB和源碼資料
    發表于 04-03 11:14 ?0次下載

    STM32單片機無人機設

    小型無人機設
    發表于 03-10 17:50 ?23次下載

    32位單片機相關資料和解決方案參考指南

    電子發燒友網站提供《32位單片機相關資料和解決方案參考指南.pdf》資料免費下載
    發表于 01-21 14:00 ?0次下載
    32位<b class='flag-5'>單片機</b>相關<b class='flag-5'>資料</b>和解決方案參考指南

    一個基于Cortex的單片機專為USB耳機設備設計的USBCodec芯片

    USBCodec芯片 - CJC6811A是一款基于Cortex的單片機,專為USB耳機設備而設計。它集成了一個32位的RISC CPU和16KB的SRAM、USB、UART、IIC、音頻編解碼、GPIO、定時
    的頭像 發表于 01-15 09:41 ?573次閱讀
    一個基于Cortex的<b class='flag-5'>單片機</b>專為USB耳<b class='flag-5'>機設</b>備設計的USBCodec芯片

    用ADS1256結合飛思卡爾的單片機設計一個數據采集系統,為什么采用SPI通信時得到的總是一個固定的數?

    我準備用ADS1256結合飛思卡爾的單片機設計一個數據采集系統,但是不知道為什么采用SPI通信時,得到的總是一個固定的數。
    發表于 01-02 06:02

    51單片機溫度報警

    電子發燒友網站提供《51單片機溫度報警.zip》資料免費下載
    發表于 12-30 14:16 ?3次下載

    昂寶單片機相關資料

    昂寶單片機相關資料
    發表于 11-25 14:50 ?0次下載

    8位單片機為何不會被高端單片機取代?

    的功能集和更低的時鐘速度。 通常,8位單片機設計為在比高端單片機更低的時鐘頻率下工作,從而降低功耗。它們的內部存儲、外設和通信接口通常也具有較低的功耗要求。 此外,許多8位單片機設
    發表于 09-24 16:51

    用MSP430FR235x單片機設計雙射線煙霧探測模擬前端

    電子發燒友網站提供《用MSP430FR235x單片機設計雙射線煙霧探測模擬前端.pdf》資料免費下載
    發表于 09-14 10:53 ?0次下載
    用MSP430FR235x<b class='flag-5'>單片機設</b>計雙射線煙霧探測<b class='flag-5'>器</b>模擬前端

    stm32單片機用什么軟件編程

    STM32單片機是一種廣泛應用于嵌入式系統領域的微控制,具有高性能、低功耗、豐富的外設接口等特點。要對STM32單片機進行編程,需要選擇合適的軟件工具。 概述 STM32
    的頭像 發表于 09-02 10:16 ?3473次閱讀

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    單片機燒錄原理 單片機燒錄是指將編寫好的程序代碼通過一定的方式傳輸到單片機的存儲中,使其能夠按照程序的指令運行。這個過程通常需要使用燒錄
    的頭像 發表于 09-02 09:54 ?1082次閱讀

    stm32單片機引腳介紹及功能

    STM32系列單片機是STMicroelectronics(意法半導體)推出的一款基于ARM Cortex-M內核的32位微控制。STM32單片機具有高性能、低功耗、豐富的外設和靈活的引腳配置等
    的頭像 發表于 09-02 09:38 ?1.3w次閱讀

    簡述單片機定時的工作原理

    單片機定時的工作原理是一個復雜而精細的過程,它涉及到單片機內部的多個組件和機制。
    的頭像 發表于 08-19 18:20 ?3133次閱讀