51單片機學習之旅——定時器

打開軟件

1與其它等于其它,0與其它等于0

1或其它等于1,0或其它等于其它

TMOD=TMOD&0xF0;//0xF0=1111 0000進行與操作,高四位保持,低四位清零,高四位定時器1,低四位定時器0

TMOD=TMOD|0x01;//0x01=0000 0001進行或操作,高四位保持,低四位置0001

只配置了定時器0為16位定時器/計數器模式,不影響定時器1的配置TF0=0;//初始狀態TF0置0,只有當溢出時,單片機硬件自動置TF0為1,響應中斷時,硬件又自動置TF0為0

TR0=1;//配置定時器0時GATE已配置為0,TR0=1允許計時

TH0=(65535-1000)/256;

TL0=(65535-1000)%256;

定時器算配置好了,接下來配置中斷,給CPU信號說,來!到點兒了!先別忙那個了,干這個!

ET0=1;

EA=1;

PT0=0;

綜上,定時器0初始化函數代碼為:

之所以多1是因為65535是從0開始計數,如果從1開始計數,則是1到65536,而我們設置初始值,相當于從1開始計數而不是0,所以TL0=(65536-1000)%256,TH0=(65536-1000)/256

12MHz定時器時鐘為12T所以1T就是1MHz

void Timer0_Init()//定時器0初始化函數12MHz下配置的12T
{TMOD&=0xF0;//高四位保持,低四位清零,a=a&b簡寫為a&=bTMOD|=0x01;//高四位保持,低四位0001TL0=0X18;//低四位(65536-1000)%256設置1毫秒定時器TH0=0XFC;//高四位(65536-1000)/256設置1毫秒定時器TF0=0;//TF0初始化,溢出為1,平時為0TR0=1;//允許定時器開始計數//打開中斷ET0=1;EA=1;//設置優先級PT0=0;
}

定時器中斷配置好了,接下來是中斷后要干事情了,需要中斷函數

void Timer0_Routine() interrupt 1
{static unsigned int T0Count;//用于定時比65536微秒更長的時間比如1秒,設置一個變量TL0=0x18;//每次進入中斷函數后,初始化函數里的初始值會自動清0,如果不想下次從0開始計數則需要TH0=0xFC;//重新給TL0和TH0賦值T0Count++;//每進一次中斷是1毫秒,累加到T0Count中if(T0Count==1000)//1秒等于1000毫秒{T0Count=0;//先初始化清零//下來寫想要干的事兒,點燈等等}
}

不懂static可以跳轉到這里,希望可以幫助到你節約時間?

?51單片機學習之旅——C語言小知識-CSDN博客

下來把定時器0做模塊化

跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客?跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客下來做按鍵模塊化

?跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客?跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客同理是delay模塊化,?跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客??跳轉到這個鏈接:51單片機學習之旅——模塊化編程集_51單片機模版編程-CSDN博客下面是main.c文件內容:

#include <REGX52.H>
#include "timer0.h"
#include "key.h"
#include <INTRINS.H>//函數庫中有連續左移,右移函數unsigned char keynumber=0,ledmode=0;void main()
{P2=0xFE;//先讓最低位亮一個燈Timer0Init();//定時器0中斷初始化while(1){keynumber=key();//讀取按鍵if(keynumber)//按鍵1控制led燈的模式,0模式循環左移,1模式循環右移{if(keynumber==1){ledmode++;if(ledmode>=2){ledmode=0;}}}}
}void Timer0_Routine() interrupt 1{static unsigned int T0Count;TL0=0x18;TH0=0xFC;T0Count++;if(T0Count>=500){T0Count=0;if(ledmode==0){P2=_crol_(P2,1);//_crol_(待移項,需要左移left的位數),最高位與最低位相連成環,一直移}if(ledmode==1){P2=_cror_(P2,1);//_cror_(待移項,需要右移right的位數)}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70670.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

內容中臺重構智能服務:人工智能技術驅動精準決策

內容概要 現代企業數字化轉型進程中&#xff0c;內容中臺與人工智能技術的深度融合正在重構智能服務的基礎架構。通過整合自然語言處理、知識圖譜構建與深度學習算法三大技術模塊&#xff0c;該架構實現了從數據采集到決策輸出的全鏈路智能化。在數據層&#xff0c;系統可對接…

【redis】redis內存管理,過期策略與淘汰策略

一&#xff1a;Redis 的過期刪除策略及處理流程如下&#xff1a; 1. 過期刪除策略 Redis 通過以下兩種策略刪除過期鍵&#xff1a; 1.1 惰性刪除 觸發時機&#xff1a;當客戶端訪問某個鍵時&#xff0c;Redis 會檢查該鍵是否過期。執行流程&#xff1a; 客戶端請求訪問鍵。…

tp6上傳文件大小超過了最大值+驗證文件上傳大小和格式函數

問題&#xff1a; 最近用tp6的文件上傳方法上傳文件時報文件過大錯誤。如下所示&#xff1a; $file $this->request->file(file);{"code": 1,"msg": "上傳文件大小超過了最大值&#xff01;","data": {"code": 1,&q…

Kreuzberg:本地OCR+多格式解析!Kreuzberg如何用Python暴力提取30+文檔格式?程序員看完直呼內行!

嗨&#xff0c;大家好&#xff0c;我是小華同學&#xff0c;關注我們獲得“最新、最全、最優質”開源項目和高效工作學習方法 我們經常需要從各種不同類型的文檔中提取文本內容&#xff0c;無論是辦公文檔、圖像還是PDF文件。而Kreuzberg這個Python庫的出現&#xff0c;為我們提…

Windows程序設計29:對話框之間的數據傳遞

文章目錄 前言一、父子對話框之間的數據傳遞1.父窗口獲取子窗口數據2.子窗口獲取父窗口數據 二、類外函數調用窗口的操作1.全局變量方式2.參數傳遞方式 總結 前言 Windows程序設計29&#xff1a;對話框之間的數據傳遞。 在Windows程序設計28&#xff1a;MFC模態與非模態對話框…

【C語言】第八期——指針

目錄 1 初始指針 2 獲取變量的地址 3 定義指針變量、取地址、取值 3.1 定義指針變量 3.2 取地址、取值 4 對指針變量進行讀寫操作 5 指針變量作為函數參數 6 數組與指針 6.1 指針元素指向數組 6.2 指針加減運算&#xff08;了解&#xff09; 6.2.1 指針加減具體數字…

為 Power Automate 注冊 Adobe PDF Services

前言 最近&#xff0c;再測試如何將HTML轉換成PDF&#xff0c;然后發現Adobe有一個免費的操作可以用&#xff0c;好開心&#xff0c;趕緊注冊一下。 正文 1.先注冊一個賬號&#xff0c;然后登錄到Adobe Developer 注冊鏈接&#xff1a;https://www.adobe.com/go/getstarted_pow…

BY組態:工業自動化的未來,觸手可及

1. BY組態軟件的核心優勢 簡單易用&#xff1a;圖形化界面&#xff0c;降低學習成本&#xff0c;快速上手。 高效靈活&#xff1a;支持多種設備協議&#xff0c;兼容性強&#xff0c;適用于多種行業。 實時監控&#xff1a;提供實時數據采集與可視化&#xff0c;助力高效決策…

有哪些開源大數據處理項目使用了大模型

以下是一些使用了大模型的開源大數據處理項目&#xff1a; 1. **RedPajama**&#xff1a;這是一個開源項目&#xff0c;使用了LLM大語言模型數據處理組件&#xff0c;對GitHub代碼數據進行清洗和處理。具體流程包括數據清洗、過濾低質量樣本、識別和刪除重復樣本等步驟。 2. …

網絡安全之攻防筆記--通用安全漏洞SQL注入sqlmapOraclemongodbDB2

通用安全漏洞SQL注入&sqlmap&Oracle&mongodb&DB2 數據庫類型 ACCESS 特性 沒數據庫用戶 沒數據庫權限 沒數據庫查詢參數 沒有高權限注入說法 暴力猜解&#xff0c;借助字典得到數據 注入方式 聯合注入 偏移注入 表名列名猜解不到 偏移注入 MySQL 低權限 常…

【信息系統項目管理師-案例真題】2022下半年案例分析答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題一(24分)【問題1】(6分)【問題2】(10分)【問題3】(8分)試題二(26分)【問題1】(8分)【問題2】(8分)【問題3】(4分)【問題4】(6分)試題三(25分)【問題1】(12分)【問題2】(7分)【問題…

正點原子[第三期]Arm(iMX6U)Linux系統移植和根文件系統構建-5.3 xxx_defconfig過程

前言&#xff1a; 本文是根據嗶哩嗶哩網站上“arm(iMX6U)Linux系統移植和根文件系統構鍵篇”視頻的學習筆記&#xff0c;在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。 引用&#xff1a; …

C++初階——簡單實現list

目錄 1、前言 2、List.h 3、Test.cpp 1、前言 1. 簡單實現std::list&#xff0c;重點&#xff1a;迭代器&#xff0c;模板類&#xff0c;運算符重載。 2. 并不是&#xff0c;所有的類&#xff0c;都需要深拷貝&#xff0c;像迭代器類模板&#xff0c;只是用別的類的資源&am…

conda環境中運行“python --version“所得的版本與環境中的python版本不一致----deepseek并非全能

conda環境中運行python —version所得python版本與conda環境中的python版本不一致------deepseek并非全能 問題 conda環境中運行python —version所得python版本與conda環境中的python版本不一致 我所做的探索 1 網頁搜索 2 求助于DeepSeek 可以用四個字來形容deepseek給出…

HarmonyOS學習第5天: Hello World的誕生之旅

鴻蒙初印象&#xff1a;開啟探索之門 在操作系統的廣袤天地中&#xff0c;HarmonyOS&#xff08;鴻蒙系統&#xff09;宛如一顆冉冉升起的新星&#xff0c;自誕生起便備受矚目。它由華為傾力打造&#xff0c;是一款基于微內核的全場景分布式操作系統&#xff0c;以其獨特的技術…

centos9安裝k8s集群

以下是基于CentOS Stream 9的Kubernetes 1.28.2完整安裝流程&#xff08;containerd版&#xff09;&#xff1a; 一、系統初始化&#xff08;所有節點執行&#xff09; # 關閉防火墻 systemctl disable --now firewalld# 關閉SELinux sed -i "s/SELINUXenforcing/SELINU…

CIG容器重量級監控系統

1.介紹 CAdvisorinfluxDBGranfana docker 原生命令 監控docker容器狀態 docker stats 2.CAdvicsor 3.InfluxDB 4.Granafana 5.搭建 volumes:grafana_data: services:influxdb:image: tutum/influxdbrestart: alwaysenvironment:- PRE_CREATE_DBcadvisorports:- "8083…

REACT學習DAY02(恨連接不上服務器)

受控表單綁定 概念&#xff1a;使用React組件的狀態&#xff08;useState&#xff09;控制表單的狀態 1. 準備一個React狀態值 const [value,setValue] useState() 2. 通過value屬性綁定狀態&#xff0c;通過onChange屬性綁定狀態同步的函數 <input type"text&quo…

python——GUI圖形用戶界面編程

GUI簡介 我們前面實現的都是基于控制臺的程序&#xff0c;程序和用戶的交互通過控制臺來完成 本章&#xff0c;我們來學習GUI圖形用戶界面編程&#xff0c;我們可以通過python提供的豐富的組件&#xff0c;快速的視線使用圖形界面和用戶交互 GUI變成類似于“搭積木”&#x…

DeepSeek 助力 Vue 開發:打造絲滑的單選按鈕(Radio Button)

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 Deep…