從玩具到工業控制--51單片機的跨界傳奇【3】

在科技的浩瀚宇宙中,51 單片機就像一顆獨特的星辰,散發著神秘而迷人的光芒。對于無數電子愛好者而言,點亮 51 單片機上的第一顆 LED 燈,不僅僅是一次簡單的操作,更像是開啟了一扇通往新世界的大門。這小小的 LED 燈,宛如黑暗中的啟明星,承載著我們對電子技術的好奇與憧憬,照亮了我們探索科技未知領域的道路 。在接下來的篇章里,讓我們一同回溯這段充滿挑戰與驚喜的旅程,看看這顆 LED 燈如何點燃了我們心中對技術追求的熊熊烈火。

一,單片機的內部結構和工作原理

在單片機入門階段,我們只需要對其結構有個大概的了解就足夠了,等后期隨著單片機的深入學習,我們再回頭來對其結構進行深入的了解。我在這里也是給大家進行簡單的講解,不會太過深入,防止大家失去學習的信心。如圖所示:

FLASH就相當于硬盤SRAM就相當于內存。對于硬盤和內存的概念我就默認大家熟知了,不懂的朋友們可以自行搜索一下這個視頻?<內存和硬盤的區別>進行了解。前面,咱們講過單片機就是一種集成電路,其實在單片機的內部就是如上圖所示的結構。單片機內核就是CPU處理器我們寫的程序最終被存放在FLASH程序存儲器里面我們創建的變量被存儲在SRAM數據存儲器里面。當單片機開始運行的時候,單片機就會從FLASH程序存儲器里面調取運行指令,這里告訴大家:FLASH程序存儲器是只讀存儲器,在單片機運行的過程中,產生的一切數據不會再放入FLASH里面,而是存放在數據存儲器里面,就是為了防止程序發生錯誤,引起單片機的工作異常CPU會根據指令進行運算,會從數據存儲器里面調用數據。數據存儲器就是CPU用來調取和存放數據,存放中間計算結果的地方SRAM掉電就會丟失數據,所以為了防止這種情況的發生,一般都會配有看門狗來進行監管,當看門狗檢測到電壓低于某一個范圍時,就會立馬讀取SRAM里面的數據進行存儲。然后,CPU把計算的數據再發送給寄存器(GPIO外設),寄存器根據數據再輸出1或0,各個引腳再根據1或0輸出對應的高低電平,來控制外圍設備,讀取外部數據也是如此,通過引腳的高低電平變化,寄存器來進行的1或0的數據存儲,再發給CPU根據指令進行處理我們操作單片機,其實本質上就是操作各個引腳對應的寄存器。大家進行簡單的了解即可。

二,單片機的引腳介紹

我們就以我們要講解的DIP封裝的51單片機來展示其它封裝的單片機會多出來4個引腳,多出來的引腳時P4口引腳,這不影響我們的單片機的講解。如圖所示:

?我們從外觀上可以看到上面,有個半圓的缺口。在所以的單片機里面,半圓缺口左邊對應單片機的第一號引腳,逆時針依次排號。

20號引腳和40號引腳分別為單片機的GND和VCC

51單片機有4組I/O,分別為P0,P1,P2和P3,每組對用8個引腳,也就是說,我們控制這32個引腳來進行外圍設備的控制。大家可以看到有些引腳會有個表示,比如T2/P1.0,帶有‘ / ’表示這個引腳的功能是可以復用的,也就是說這個引腳有兩個功能。沒標識的引腳就是普通的I/O口。

T2,T0,T1這些為定時器或計數器引腳(后面會講解的)。

RXD和TXD為單片機的串口通信引腳,也是我們的程序下載引腳。

INT0和INT1為外部中斷引腳。

XTAL1和XTAL2為單片機的外部晶振引腳。

WR(寫信號)和 RD(讀信號)引腳主要用于外部數據存儲器(如 RAM)和 I/O 接口芯片的讀寫控制。它們是實現單片機與外部設備之間數據傳輸的關鍵信號引腳。

EA 引腳用于控制單片機是訪問內部程序存儲器還是外部程序存儲器。這是 51 單片機程序存儲選擇的關鍵引腳,當 EA 引腳接高電平時,單片機先從內部程序存儲器讀取程序指令。如果程序計數器(PC)的值超過了內部程序存儲器的容量范圍(對于 8051 單片機,內部程序存儲器一般為 4KB),那么它會自動轉向外部程序存儲器讀取剩余的程序指令。當 EA 引腳接低電平時,單片機忽略內部程序存儲器,直接從外部程序存儲器讀取所有的程序指令。這種方式適用于程序代碼量較大,需要外部擴展大容量程序存儲器(如 EPROM、Flash 等)的情況。由于現在我們的單片機都有內部的ROM所以我們不需要讀取外部ROM,所以我們直接接高電平就OK了。

ALE 引腳主要用于在訪問外部存儲器時,鎖存低 8 位地址信號。在 51 單片機訪問外部存儲器(包括數據存儲器和程序存儲器)的過程中,地址總線是分時復用的,它既用于傳輸地址信息又用于傳輸數據信息。當單片機訪問外部存儲器時,P0 口會先輸出低 8 位地址信息,此時 ALE 引腳會輸出一個正脈沖。這個正脈沖可以被外部的地址鎖存器(如 74LS373)用來鎖存 P0 口輸出的低 8 位地址,使得地址信息在數據傳輸階段能夠保持穩定。現在,單片機內部都自帶豐富的RAM,不再需要擴展RAM,所以這個引腳用處不大。

PSEN 引腳是程序存儲器讀選通信號,用于控制對外部程序存儲器的讀取操作。它是單片機從外部程序存儲器讀取指令時的關鍵控制信號。當單片機從外部程序存儲器讀取指令時,PSEN 引腳會輸出一個低電平脈沖。這個低電平信號用于選通外部程序存儲器,使其將存儲的程序指令輸出到數據總線上,然后單片機就可以從數據總線上讀取這些指令并執行。

P0口比較特殊,它要接上拉電阻才能驅動,至于什么是上拉電阻? 它是怎樣的電路? 我們都會在數碼管那個章節講到的。

總結:以上引腳大家先做了解就足夠了,后面學習到的時候,我都會進行詳細的講解的。

三,最小系統單片機的電路介紹

最小的單片機系統是由電源,主控芯片,晶振電路和復位電路組成的。先給大家看電路圖:

?復位電路的作用:

  • 系統初始化
    • 復位電路的主要作用是使單片機內部的各個寄存器和電路恢復到初始狀態。當單片機復位時,程序計數器(PC)被清零,這意味著單片機從程序存儲器的起始地址(對于 51 單片機來說,一般是 0000H)開始執行程序。同時,其他特殊功能寄存器(SFR),如累加器 A、寄存器 B、PSW(程序狀態字)等也會被初始化為固定的值。
    • 例如,PSW 寄存器在復位后被設置為 00H,這使得單片機進入初始的工作狀態,如默認選擇工作寄存器組 0。這種初始化功能確保了每次單片機上電或者手動復位后,系統都能以一個確定的、一致的狀態開始運行,就像將系統進行了一次 “歸零” 操作。
  • 解決程序異常情況
    • 比如,在一個工業控制環境中,周圍可能存在較強的電磁干擾。當干擾導致單片機程序出錯時,按下復位按鈕,復位電路就能讓單片機重新啟動,避免了設備長時間故障,保障了系統的可靠性和穩定性。
    • 在單片機運行過程中,可能會由于干擾、程序錯誤或者其他突發情況導致系統出現異常。例如,程序進入了死循環,或者數據被錯誤地修改,導致系統無法正常工作。此時,復位電路可以通過外部復位信號(如手動復位按鍵)使單片機重新復位,恢復到正常的工作狀態。

晶振電路的作用:

  • 提供時鐘信號
    • 晶振電路為單片機提供了穩定的時鐘信號。51 單片機內部的各種操作,如指令執行、數據傳輸、定時器 / 計數器工作等,都需要時鐘信號來進行同步。時鐘信號就像是單片機的 “心跳”,它決定了單片機的工作速度和時序。
    • 例如,51 單片機的一個機器周期是由 12 個時鐘周期組成的。晶振頻率的高低直接影響了單片機的機器周期時間。如果晶振頻率為 12MHz,那么一個機器周期就是 1 微秒()。這種精確的時鐘信號使得單片機能夠按照設計好的時序和速度來執行程序指令。
  • 保證系統時序穩定
    • 單片機在與外部設備通信或者進行內部模塊之間的協同工作時,需要嚴格的時序控制。晶振電路提供的穩定時鐘信號是保證這些時序的基礎。
    • 例如,在使用 51 單片機的定時器 / 計數器功能時,定時器的計數頻率是由晶振頻率經過內部時鐘分頻電路得到的。如果晶振頻率不穩定,定時器的定時精度就會受到影響,進而導致與定時器相關的功能(如定時采樣、定時控制等)出現錯誤。穩定的晶振電路可以確保這些功能的準確性和可靠性。

四,成為“點燈大師”

講解了那么多的單片機的基礎知識了,也該進行實操了。今天,咱們就來點亮人生中的第一顆LED燈。在點燈之前,咱先認識一下LED電路。

大家知道,我們能控制單片機的引腳輸出高低電平 ,給引腳為邏輯1,它就會輸出高電平,給0就會輸出低電平。上圖的LED燈是共陽極的,它的正極都接在一起,8顆LED燈分別與單片機的P1口接在一起,每一個引腳對應一顆LED燈。當我們給0時,就會輸出低電平,LED就會正向的導通,LED就會亮,反之就滅。我們使用的時STC國產宏晶提供的芯片安裝包,接下來我教大家怎么安裝STC提供的芯片安裝包,我們需要先下載好stc-isp燒錄軟件,這個文件我放在文章頂部了,各位可以自行下載。進行如下操作:

OK各位,接下來進行代碼演示:

#include <STC89C5xRC.H>
void main()
{P10=0;      //STC的頭文件里面,我們可以直接進行I/O的操作
}

進行頭文件的展示:?

?各位至于Keil5怎么使用,怎么下載我就不再這多講了,大家可以自行搜索相關視頻。接下里看實驗現象:

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

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

相關文章

boss直聘 __zp_stoken__ 逆向分析

聲明: 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 有相關問題請第一時間頭像私信聯系我刪…

【日志篇】(7.6) ? 01. 在macOS下刷新FortiAnalyzer固件 ? FortiAnalyzer 日志分析

【簡介】FortiAnalyzer 是 Fortinet Security Fabric 安全架構的基礎&#xff0c;提供集中日志記錄和分析&#xff0c;以及端到端可見性。因此&#xff0c;分析師可以更有效地管理安全狀態&#xff0c;將安全流程自動化&#xff0c;并快速響應威脅。具有分析和自動化功能的集成…

Linux 內核自旋鎖spinlock(一)

文章目錄 前言一、自旋鎖1.1 簡介1.2 API1.2.1 spin_lock/spin_unlock1.2.2 spin_lock_irq/spin_unlock_irq1.2.3 spin_lock_irqsave/spin_unlock_irqstore1.2.4 spin_lock_bh/spin_unlock_bh1.2.5 補充 二、自選鎖原理三、自旋鎖在內核的使用3.1 struct file3.2 struct dentry…

【太古新篇,智馭未來】 SFA系統成功上線

經過雙方團隊的不懈努力與緊密合作&#xff0c;eBest成功幫助香港太古可樂完成了SFA系統的全面上線&#xff01; 太古可樂&#xff0c;作為飲料行業的佼佼者&#xff0c;一直以來以其卓越的品質和深入人心的品牌形象深受消費者喜愛。然而&#xff0c;在快速變化的市場環境中&am…

Web安全|滲透測試|網絡安全

基礎入門(P1-P5) p1概念名詞 1.1域名 什么是域名&#xff1f; 域名&#xff1a;是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱&#xff0c;用于在數據傳輸時對計算機的定位標識&#xff08;有時也指地理位置&#xff09;。 什么是二級域名多級域名…

陳萍的設計創新:Kevlin Nexus榮獲倫敦設計獎,展示品牌設計的國際化與持續創新

近日,陳萍憑借其創新設計作品 Kevlin Nexus,成功斬獲 2024 倫敦設計獎。該獎項旨在表彰全球范圍內的優秀設計作品,表彰設計界最完美、最前沿的成就。倫敦設計獎是全球最具權威性和影響力的設計獎項之一,其評選標準以高水準的專業性和嚴格性著稱。作為全球設計界的頂級榮譽,倫敦…

qml DirectionalBlur詳解

1、概述 DirectionalBlur是QML&#xff08;Qt Modeling Language&#xff09;中用于創建方向模糊效果的一種圖形效果類型。它通過對源圖像的像素進行模糊處理&#xff0c;產生一種源項目朝著模糊方向移動的感知印象。這種模糊效果被應用到每個像素的兩側&#xff0c;因此設置方…

【Linux】【Vim】vim編輯器的用法

一、vim簡介 Vim是一款功能強大且高度可定制的文本編輯器&#xff0c;廣泛應用于Linux 和 Unix系統中。 它不僅繼承了vi編輯器的所有特性&#xff0c;還增加了許多新的功能&#xff0c;如語法高亮、代碼折疊、多級撤銷等。 Vim有三種主要的工作模式&#xff1a; 命令模式&am…

構建優雅、高效的 Nodejs 命令行工具 - Archons

目錄 項目簡介安裝基本用法樣例創建一個簡單的命令行工具使用archons上下文創建進度條 最后 項目地址: https://github.com/noctisynth/archons Bug反饋或功能請求&#xff1a;https://github.com/noctisynth/archons/issues 項目簡介 Archons意思是“執政官”&#xff0c;我使…

怎么投稿各大媒體網站?如何快速辨別一家媒體是否適合自己?

在做軟文營銷時&#xff0c;除去在官號和子賬號上投稿外&#xff0c;怎么投稿各大媒體網站是困擾中小企業主的一大難題。沒有多余賬號、運營成本太高&#xff0c;讓不少想做全平臺推廣的朋友止步于此。為了解決這些問題&#xff0c;今天就讓小編來分享一下&#xff0c;怎么在各…

MES設備日志采集工具

永久免費: <下載> <使用說明> 用途 定時全量或增量采集工控機,電腦文件或日志. 優勢 開箱即用: 解壓直接運行.不需額外下載.管理設備: 后臺統一管理客戶端.無人值守: 客戶端自啟動,自更新.穩定安全: 架構簡單,兼容性好,通過授權控制訪問. 架構 技術架構: Asp…

rhel7.9利用有網絡環境打包ansible

RHEL7.9激活(可省略) # 注冊 subscription-manager register --usernameyour_username --passwordyour_password --auto-attach # 查看訂閱狀態 subscription-manager list # 將 “enabled1” 改為 “enabled0” vi /etc/yum/pluginconf.d/subscription-manager.conf 配置阿…

Formality:參考設計/實現設計以及頂層設計

相關閱讀 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482??? Formality存在兩個重要的概念&#xff1a;參考設計/實現設計和頂層設計&#xff0c;本文就將對此進行詳細闡述。參考設計/實現設計是中兩個重要的全局概念&am…

網絡安全中攻擊溯源有哪些方法?

目前網絡攻擊已經成為常見的安全威脅之一&#xff0c;其造成的危害和損失都是不可估量的&#xff0c;因此網絡攻擊受到了高度重視。而當我們遭遇網絡攻擊時&#xff0c;攻擊溯源是一項非常重要的工作&#xff0c;可以幫助我們迅速發現并應對各類網絡攻擊行為&#xff0c;那么網…

國產編輯器EverEdit - 復制為RTF

1 復制為RTF 1.1 應用背景 在寫產品手冊或者其他文檔時&#xff0c;可能會用到要將產品代碼以樣例的形式放到文檔中&#xff0c;一般的文本編輯器拷貝粘貼到Word中也就是普通文本&#xff0c;沒有語法著色&#xff0c;這樣感觀上不是太好&#xff0c;為了讓讀者的感觀更好一點…

【設計模式-結構型】裝飾器模式

一、什么是裝飾器模式 裝飾器模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;它的核心思想是在不改變原有對象結構的情況下&#xff0c;動態地給對象增加一些功能&#xff0c;從而達到擴展功能的目的。舉個例子&#xff0c;今天在家媽媽給蒸饅…

redux 結合 @reduxjs/toolkit 的使用

1&#xff0c;使用步驟 使用React Toolkit 創建 counterStore&#xff08;store目錄下&#xff09; --> 為React注入store&#xff08;src下面的index&#xff09; --> React組件使用store中的數據&#xff08;組件&#xff09; 2&#xff0c;例如下面有一個簡單加減的…

動態規劃【打家劫舍】

今天和大家分享一下動態規劃當中的打家劫舍題目&#xff0c;希望在大家刷題的時候提供一些思路 打家劫舍1&#xff1a; 題目鏈接&#xff1a; 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 題目描述&#xff1a; 你是一個專業的小偷&#xff0c;計劃偷竊沿街的房屋…

KVM創建ubuntu20.04虛機,部署K8S,再克隆出二份,做為Worker節點加入集群,通過Helm創建2個Pod,讓它們之間通過域名互訪

KVM創建ubuntu20.04虛機,部署K8S,再克隆出二份,做為Worker節點加入集群,通過Helm創建2個Pod,讓它們之間通過域名互訪 一.背景二.操作步驟1.安裝KVMA.在BIOS中開啟VT-dB.修改grub,開啟iommu在/etc/default/grub 中 GRUB_CMDLINE_LINUX行 添加 intel_iommuon iommupt重新創建引導…

【機器學習實戰入門項目】使用Python創建自己的表情符號

深度學習項目入門——讓你更接近數據科學的夢想 表情符號或頭像是表示非語言暗示的方式。這些暗示已成為在線聊天、產品評論、品牌情感等的重要組成部分。這也促使數據科學領域越來越多的研究致力于表情驅動的故事講述。 隨著計算機視覺和深度學習的進步&#xff0c;現在可以…