51單片機入門

来源:https://www.cnblogs.com/left23333/archive/2022/06/06/16347771.html
-Advertisement-
Play Games

基本元器件原理及功能 常用元器件 CAP 電容 RES 電阻 CRYSTAL 晶振 7SEG 數位管 sounder 蜂鳴器 BUTTON LED-BIBY 發光二極體 二極體PN結,P陽極N陰極,電流方向P極流向N極 共陰極高電平亮,共陽極低電平亮 數位管 dp g f e d c b a 0 0 ...


基本元器件原理及功能

常用元器件

CAP 電容
RES 電阻
CRYSTAL 晶振
7SEG 數位管
sounder 蜂鳴器
BUTTON
LED-BIBY

發光二極體

二極體PN結,P陽極N陰極,電流方向P極流向N極
共陰極高電平亮,共陽極低電平亮

數位管

dp  g   f   e   d   c   b   a  
0   0   1   1   1   1   1   1   //0x3F顯示0

共陰com口接地高電平亮,共陽極com口接電,低電平亮

LED數位管的顯示方式

1.靜態顯示
公共端直接接地(共陰極)或接電源(共陽極),每個數位管的段選線對應一組I/O介面,每個數位管一直顯示
2.動態顯示
所有數位管的段選線與一組I/O介面線並聯,公共端由一根I/O線控制,逐個顯示

按鍵

按鍵按下不會立刻改變電平,延時10ms-20ms再獲取電平消除抖動

獨立式按鍵:
每個鍵獨占跟並口線,處理簡單直接判斷並口線

行列鍵盤(矩陣鍵盤):
鍵位分佈在行列交叉點上,占用並口線少,鍵位越多越明顯

行列鍵盤按鍵編碼:
高位為1,低位為0,按鍵按下時高位為0。再將其取反再檢測即可知道是哪一個按鍵

H3  H2  H1  H0  L3  L2  L1  L0
1   1   1   1   0   0   0   0   //0xf0,
1   1   1   0   0   0   0   0   //當位於H0,L0的按鍵按下時,H0變為低電平
0   0   0   0   1   1   1   0   //0xf0取反,按鍵按下時L0變低電平

行和列編碼相加就等於鍵值
鍵值= 0xe0+0x0e;

定時計數器

51單片機有T0、T1兩個定時/計數器,52多一個T2
由加法計數器(16位)、方式寄存器TMOD、控制寄存器TCON和內部匯流排組成

初值X=最大計數值M - 計數值N
計數方式工作時,引腳T0(P3.4)或T1(P3.5)上的輸入脈衝計數

定時/計數器由一下特殊功能寄存器組成:
(T0)TH0, TL0, (T1)TH1, TL1, TMOD, TCON

TMOD  D7   D6   D5   D4  |  D3   D2   D1   D0
(89H) GATE C/T  M1   M0  |  GATE C/T  M1   M0
           定時器1        |     定時器0

M1,  M0  工作方式選擇位  
0    0     方式0, 13位定時/計數器         X=8192-N/(12/fosc)  
0    1     方式1, 16位定時/計數器         X=65536-N/(12/fosc)  
1    0     方式2, 8位自動重置定時/計數器   X=256-N/(12/fosc)  
1    1     方式3, 兩個8位定時/計數器(只有T0有)  

C/T: 定時或計數方式選擇位,1位計數方式,0位定時
GATE:門控位,用於控制定時/計數器的啟動是否受外部中斷請求信號影響

TCON   D7   D6   D5   D4   D3   D2   D1   D0  
(88H)  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0  

TF1 T1的標誌位,當定時/計數器溢出時標誌位置1  
TR1 T1的啟動和停止,1啟動0停止  
TF0,TR0 控制T0,效果同上  
IE1  IT1  IE0  IT0 外部中斷  

串列口控制寄存器SCON

CS-51單片機1個全雙工串列非同步通信介面。發送接收共用SBUF寄存器,串列口控制寄存器SCON,電源控制寄存器PCON

波特率(bps)=一個字元的二進位位數*字元/秒
ex: 每秒傳送200個字元,每個字元1位起始位、8位數據位、1位校驗位和1位停止位。波特率為2200bps

SCON   D7   D6   D5   D4   D3   D2   D1   D0  
98H    SM0  SM1  SM2  REN  TB8  RB8  TI   RI  

SM0, SM1  串口工作方式選擇  
0    0     方式0,移位寄存器方式       波特率 fosc/12  
0    1     方式1,8位非同步通信方式      波特率可變  
1    0     方式2,9位非同步通信方式      fosc/32或fosc/64  
1    1     方式3,9位非同步通信方式      波特率可變  

SM2多設備通信,REN是否允許接收,TB8、RB8在9位非同步通信時用到,TI給0表示允許發送、RI給0表示允許接收

 ex:
 SCON=0x50; //0101 0000

對於方式1和方式3:T1的初值=256-fosc2SMOD/(12波特率*32)

TXD: 發送數據端
RXD: 接收數據端

通信晶振頻率為11.0592MHz

中斷系統

中斷源及中斷請求

1.外部中斷 ~INT0 和 ~INT1
外部引腳P3.2和P3.3輸入,兩種觸發方式:電平觸發及邊沿觸發。由特殊功能寄存器TCON管理

TCON   D7   D6   D5   D4   D3   D2   D1   D0
(88H)  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0  

IT0(IT1): 外部中斷0(或1)觸發方式控制位,0電平觸發方式,1邊沿觸發方式  
IE0(IE1):外部中斷請求標誌位

ex:
邊沿觸發方式時,當機器周期採樣P3.2(P3.3)引腳為高電平,下一個周期為低電平,IE0(IE1)置1,向cpu請求中斷,cpu相應後硬體自動清0
電平觸發方式時,若引腳為高電平,IE0(IE1)清0,低電平置1,cpu響應後不能由硬體自動清0。為避免多次中斷情況,只有在中斷服務程式返回前使引腳為高電平,通常外接電路實現

2.定時/計數器T0和T1中斷
當定時計數器溢出時,硬體置TF0(TF1)為1,cpu響應中斷後硬體自動清0

3.串口中斷
串列口發送標誌位TI和接收標誌位RI,任意一個為1,都請求中斷,由軟體清0

中斷允許與中斷屏蔽

IE     D7   D6   D5   D4   D3   D2   D1   D0

(A8H) EA ET2 ES ET1 EX1 ET0 EX0

EA: 中斷允許控制位。0屏蔽,1開放(下同)
ET2:定時/計數器T2溢出中斷允許位(c52)
ES:串列口中斷允許位
ET1:T1溢出中斷允許位
EX1: 外部中斷INT1中斷允許位
ET0:T0
EX0: INT0

中斷優先權控制

IP     D7   D6   D5   D4   D3   D2   D1   D0

(B8H) PT2 PS PT1 PX1 PT0 PX0

PT2:定時/計數器T2溢出中斷優先順序控制位(c52),1高優先順序,0低優先順序(下同)
PS:串列口中斷優先順序控制位
PT1:T1
PX1: 外部中斷INT1
PT0:T0
PX0: INT0

當優先順序相同,預設優先順序(由高到低)

外部中斷0,入口編號0
定時/計數器0,1
外部中斷1,2
定時計數器1,3
串列口,4
定時/計數器2,5

中斷過程中不能被同級或低優先順序中斷,低優先順序可能被高優先順序中斷

指令位RETI或訪問IE、IP的指令時,不會響應中斷

51單片機與DAC的介面

D/A轉換器是把輸入的數字量轉換為與之成正比的模擬量的器件,輸入數字量,輸出模擬量
如輸入的數字量為D, 輸出的模擬量為V0, 則有:
V0=D*VREF
其中:VREF為基準電壓, D為二進位轉換為十進位的數


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用戶 在系統里,用戶是一個核心概念。它代表了一個人的唯一身份標識,除了與角色、團隊、組織架構等有關,甚至還會影響到在同一個界面不同的用戶操作流程與顯示內容都會發生變化,再複雜一點的話,或許在同一個系統內的一個用戶進入到不同產品後的身份也會變化 用戶與角色 用戶可以擁有一個或多個角色,讓角色作為許可權組 ...
  • 當服務端啟動後,但是telnet其監聽的埠卻失敗了。或者當服務端運行了一段時間後,突然其監聽的埠telnet不通了。當類似這樣情況出現時,要如何排查問題所在了? ...
  • 以下代碼實現自定義Button,繼承WinForm的Button,新增了邊框、圓角設置的相關屬性。 public class ZhmButton : Button { private int borderSize = 0; // 邊框 private Color borderColor = Colo ...
  • Linux軟體軟體安裝命令 sudo apt-get update//更新源,檢查更新 sudo apt-get upgrade; sudo apt-get dist-upgrade sudo apt-get install//從源中安裝軟體 sudo apt-get remove 刪除包 gnom ...
  • 為什麼要使用Vite 在瀏覽器中提供ES模塊之前,開發人員沒有以模塊化方式編寫JavaScript的本機機制。這就是為什麼我們都很熟悉“捆綁”的概念:使用工具來抓取、處理和連接源模塊到可以在瀏覽器中運行的文件中。 隨著時間的推移,我們看到了webpack、Rollup和Parcel等工具,它們極大地 ...
  • 英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BULL SA. Written by [email protected] Portions Cop ...
  • 一 、通過雲開發平臺快速創建初始化應用 1.創建相關應用模版請參考鏈接:基於Vue的極簡生成器 — Vuepress 2.完成創建後就可以在github中查看到新增的vuepress倉庫 二 、 本地編寫 Vue文檔風格的技術文檔/博客 1.將應用模版克隆到本地 首先假定你已經安裝了Git、node ...
  • 本文參考書:操作系統真像還原、電腦組成原理(微課版) 所謂記憶體管理包含: 物理記憶體 虛擬地址空間 以上就是記憶體管理中所要管理的資源。那麼記憶體管理的第一步就應該是整理出這兩種資源。 物理記憶體要分為兩部分: ①內核記憶體 ②用戶記憶體 在內核態下也經常會有一些記憶體申請,比如申請個pcb、頁表等等。內核態和 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...