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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...