硬件開發1-51單片機1

一、嵌入式

1、概念:

????????以應用為中心,以計算機技術為基礎,軟硬件可裁剪的專用計算機系統

  • 以應用為中心:
    • 系統設計的起點是 “具體應用場景”,按照應用需求出發
  • 以計算機技術為基礎:????????
    • 硬件技術:嵌入式處理器(如 ARM 芯片)、存儲器、傳感器、執行器
      • 相當于 “系統的身體”,負責數據計算、存儲、與物理世界交互
    • 軟件技術:嵌入式操作系統(如 Linux 嵌入式版、RTOS)、驅動程序、應用程序
      • 相當于 “系統的大腦”,管理硬件資源、執行核心邏輯
    • 軟硬件協同技術 硬件驅動適配、資源調度優化 確保軟硬件高效配合,避免資源浪費
  • 軟硬件可裁剪的專用計算機系統:
    • “可裁剪” 是該系統實現 “高效、低成本、低功耗” 的核心手段,指硬件模塊和軟件功能可根據應用需求 “增刪”,不保留冗余組件
      • 降低成本、降低功耗、縮小體積、提高穩定性
    • 專用計算機系統:該系統是為某一類或某一個特定應用場景設計的 “定制化計算機”,不具備通用計算機的 “多場景兼容能力”

????????以具體應用需求為出發點,依托計算機軟硬件技術,通過裁剪冗余組件,為特定場景(如智能設備、工業控制、汽車電子)打造的‘專機專用、高效精簡’的定制化計算機系統”,其本質是 “用最小的資源(成本、功耗、體積)滿足特定應用的核心需求”,這也是嵌入式系統區別于通用計算機的核心特征

二、51單片機

1、起源與發展

????????基于馮?諾依曼架構,通過執行存儲在內部程序存儲器中的指令,實現對數據的處理和外部設備的控制

????????1980年,由Intel公司MCS-51系列:8051型號單片機(工業控制領域),由MCU轉型到CPU
Atmel(AT89C51)、Philip(P89V51系列單片機,增強型單片機?ISP在線編程)、STC?宏晶半導體(STC89C51???STC89C52??STC89C52RC)

2、相關概念

????????CPU:Central?Processing?Unit(中央處理器)數據運算、指令處理,CPU性能越高,完成指令處理和數據運算的速度越快

MCU:Micro?Ctronller?Unit(微控制器),集成度比較高,將所有功能集成到芯片中(CPU、RAM、ROM、定時器、UART、IO),簡單控制,?成本低

MPU:Micro?Processing?Unit(微處理器),集成度低,只有一塊單獨的CPU,需外接外設、存儲模塊,復雜應用領域,跑Linux操作系統,成本高

GPU:Graphics?Processing?Unit(圖形處理器),圖形處理、圖形渲染(GPU性能越好,圖形顯示的質量越好)

NPU:Neural?Processing?Unit(神經網絡處理器),AI推理、硬件加速,神經網絡處理(卷積運算)->?華為Mate60?達芬奇NPU?AI自動優化照片

FPU:Floating?Point?Unit(浮點數運算單元),完成浮點數的運算和處理(完全遵循IEEE?754),大部分集成在CPU內部

SOC:System?On?Chip(片上系統),集成度比較高,將多個芯片集成到一塊芯片上(存儲芯片、外設芯片)????

3、RAM和ROM? ??

????????外存:主要存放程序、代碼、指令,掉電數據不丟失,讀寫速度慢,價格便宜(移動硬盤?1T?300)

內存:主要存放程序運行過程中的臨時變量、掉電數據丟失,讀寫速度快,價格昂貴(內存條??16G??300)

ROM:Read-Only?Memory,只讀存儲器,存放單片機程序,指令,掉電數據不丟失

RAM:Random??Access?Memory,隨機訪問存儲器,存放臨時變量、臨時數據,掉電數據丟失

4、單片機芯片內部結構:

????????CPU、RAM、ROM、Timer、PWM、IO、中斷、UART

CPU(中央處理器)
單片機的核心運算和控制單元,負責指令的讀取、譯碼和執行,處理算術運算(加、減、乘、除等)和邏輯運算(與、或、非等),并協調內部各模塊的工作。51 單片機的 CPU 為 8 位,一次可處理 8 位二進制數據。

RAM(隨機存取存儲器)
用于臨時存儲程序運行過程中的變量、中間結果和堆棧數據,特點是讀寫速度快,但斷電后數據會丟失。

ROM(只讀存儲器)
用于存儲用戶編寫的程序代碼和固定數據,斷電后數據不會丟失。

Timer(定時器 / 計數器)
兼具定時和計數功能:

????????定時模式:通過內部時鐘脈沖計數,實現精確延時(如毫秒級、秒級定時),用于控制 LED 閃爍頻率、周期性采樣等。

????????計數模式:對外部輸入引腳的脈沖信號計數,可用于測量頻率、統計脈沖個數等。
51 單片機通常包含 2 個 16 位定時器 / 計數器(T0、T1),增強型可能增加更多。

PWM(脈沖寬度調制)
部分單片機集成 PWM 模塊(或可通過定時器模擬),通過輸出占空比可調的方波信號,實現對外部設備的無級調速或調壓(如控制電機轉速、LED 亮度)。占空比越大,輸出平均電壓越高。

IO(輸入 / 輸出端口)
單片機與外部設備交互的接口,通常為并行端口(如 51 單片機的 P0~P3 口),可配置為輸入或輸出模式:

????????輸出:通過控制引腳電平(高電平 / 低電平)驅動 LED、繼電器等。

????????輸入:讀取外部信號(如按鍵狀態、傳感器數據)。
部分 IO 口還可復用為其他功能(如串口、定時器引腳)。

中斷系統
用于響應外部或內部緊急事件的機制,可暫停當前程序,優先執行中斷服務程序,處理完畢后返回原程序。常見中斷源包括:外部引腳觸發(如按鍵中斷)、定時器溢出、串口數據收發等。51 單片機支持 5 個中斷源(基礎型號),增強型可擴展更多。

?UART(通用異步收發傳輸器)
用于串行通信的接口,通過一根發送線(TXD)和一根接收線(RXD)實現單片機與其他設備(如電腦、傳感器、另一塊單片機)的異步數據傳輸,無需時鐘線同步,廣泛應用于數據監控、指令交互等場景

5、原理圖

? ? ? ? HC6800-MS原理圖

MCU單片機芯片:

????????STC89C52RC、DIP40?封裝:雙列直插式,40個引腳,劃分成4組(端口?寄存器?unsigned?char?P2;)

????????網絡編號:在實際電路中的一個編號,避免物理連線,相同網絡的編號的引腳在實際電路中是彼此互通

????????LED模塊:

????????發光二極管:具有單向導通性,分為共陽極和共陰極二極管

????????共陽極發光二極管的特性:

????????將所有發光二極管的陽極接到電源正極(VCC),陰極接到單片機的引腳。此時發光二級管陽極會輸出高電平(VCC?5V),如果發光二級陰極輸出一個低電平(0V),?陽極和陰極之間會形成一個正向的電壓差,滿足發光二極管的單向導通性,所以電流就會從陽極流向陰極,發光二級就被點亮

6、位運算

1、|:將二進制中的對應位的bit進行比較,如果有一個bit為1,結果為1;如果都為0,結果為0;
應用場景:指定位置1
unsigned?char?t?=?0x64;

將bit0和bit7置1:
t?|=?(1?<<?0)?|?(1?<<?7);

2、?&:將二進制中的對應位的bit進行比較,如果全為1,結果為1;如果有一個0,結果為0;

應用場景:指定位清0
unsigned?char?t?=?0xFF;

將bit?0?和?bit7?清0:?
t?&=?~(1?<<?0);
t?&=?~?(1?<<?7);

7、單片機程序創建、編寫、編譯、下載流程:

(1)安裝Keil4軟件
(2)點擊"Project"??->?"New?Project"??->?選擇路徑?(為工程起一個名字)
(3)選擇單片機芯片型號:Atmel->AT89C51,點擊"否",不拷貝啟動代碼
(4)向Group中添加C語言文件:??點擊左上方text按鈕,ctrl?+?S將文件保存到工程對應的目錄(為文件起一個名字,如?main.c),雙擊左側Grpup,點擊Add?將文件加入到對應的Group下
(5)編寫單片機程序:
#include?<reg51.h>,?加入51單片機頭文件
需要加入while(1)避免程序跑飛
(6)編譯單片機程序:
點擊"Target?Options"按鈕,點擊"Output"選項中的"Create?HEX?FILE"選項,生成hex文件
點擊左上方"Build"編譯單片機工程
會在對應目錄下生成xxx.hex十六進制文件
(7)下載單片機程序:
打開ISP軟件,連接串口線
選擇單片機芯片型號:STC89C52/C51/C52RC

8、發光二極管分類及其特點

????????按發光顏色:單色(紅 / 綠 / 藍等,波長單一、成本低,作指示燈)、白光(混光或熒光粉實現,可調色,用于照明)、全彩(RGB 組成,可變色,供舞臺 / 屏顯);

????????按結構:直插(引腳外露、簡單,作設備指示燈)、貼片(小體積、散熱好,主流用)、功率型(高亮度、帶散熱,作強光照明)、COB(發光勻,供面板燈);

????????共性:節能、長壽、環保,高溫易衰減需散熱。

二、練習

1、點燈

2、呼吸燈

main.c

led.c

led.h

delay.c

delay.h

3、數碼管顯示

實現從0—9999的刷新顯示

計算數字分別亮起來的對應的16進制的值

eg:顯示數字 0

亮起來的分別是:a、b、c、d、e、f、

對應的二進制是:0011 1111

對應的十六進制:0x3F

其他數字依次如此

main.c

digital.c

digital.h

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

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

相關文章

Redis核心數據類型解析——string篇

Redis的常見數據類型Redis 提供了 5 種數據結構&#xff0c;理解每種數據結構的特點對于 Redis 開發運維?常重要&#xff0c;同時掌握每 種數據結構的常?命令&#xff0c;會在使? Redis 的時候做到游刃有余。預備在正式介紹 5 種數據結構之前&#xff0c;了解?下 Redis 的?…

爬蟲逆向--Day20Day21--扣JS逆向練習【案例4:深證信服務平臺】

一、案例【深證信數據服務平臺】案例地址鏈接&#xff1a;https://webapi.cninfo.com.cn/#/marketDataDate案例爬取鏈接&#xff1a;https://webapi.cninfo.com.cn/api/sysapi/p_sysapi10071.1、入口定位當進行入口定位時&#xff0c;我們首先需要進行查看響應、載荷、請求頭是…

ExcelJS實現導入轉換HTML展示(附源碼可直接使用)

目錄 簡介 開始實踐 難點 文件示例 效果預覽 具體實現 安裝 完整代碼 總結 簡介 在日常工作中&#xff0c;我們可能會遇到需要上傳并展示 Excel 文件的需求&#xff0c;實現文件內容的在線預覽。 這里給大家接收一個組件庫exceljs&#xff0c;這個組件庫進過實踐發現…

ECDH和數字簽名

文章目錄一、核心區別&#xff1a;目的完全不同二、協同工作關系&#xff1a;缺一不可的安全組合三、技術結合點&#xff1a;都基于ECC(橢圓曲線密碼學)ECDH&#xff08;橢圓曲線迪菲-赫爾曼密鑰交換&#xff09;和數字簽名&#xff08;如ECDSA&#xff0c;橢圓曲線數字簽名算法…

withCredentials(簡單說:帶不帶憑證)

一、withCredentials是什么&#xff1f;withCredentials 是瀏覽器 XMLHttpRequest 或 Fetch API&#xff08;以及 axios 等基于它們的庫&#xff09;中的一個配置項&#xff0c;作用是控制跨域請求時是否攜帶 Cookie、HTTP 認證信息等憑證。用更通俗的方式解釋&#xff1a;二、…

window系統使用命令行來安裝OpenSSH服務器或客戶端

可以通過 PowerShell 命令行來安裝&#xff0c;這種方式更直接可靠&#xff1a;以管理員身份打開 PowerShell&#xff1a; 按下 Win S 搜索 “PowerShell”右鍵點擊 “Windows PowerShell”&#xff0c;選擇"以管理員身份運行"安裝 OpenSSH 客戶端&#xff1a; Add-…

vim中常見操作及命令

在 Vim 中為所有行的行首添加相同字符&#xff0c;可以使用以下方法&#xff1a; 方法1&#xff1a;使用 :%s 替換命令&#xff08;推薦&#xff09; vim :%s/^/要添加的字符/ 例如要在所有行首添加 #&#xff1a;vim :%s/^/#/ 方法2&#xff1a;使用塊選擇模式&#xff08;可視…

開發使用mybatis是用混合模式還是全注解模式

在使用 MyBatis 開發項目時&#xff0c;Mapper 接口是為數據庫操作提供最直觀的方法&#xff0c;但在實現方式上&#xff0c;我們有兩種選擇&#xff1a;全注解模式和混合模式。那么&#xff0c;他們有什么區別&#xff0c;應該如何選擇&#xff1f;我們一起來討論一下。一、全…

WS2812燈帶效果設計器上位機

軟件使用方法介紹&#xff1a;bilibili地址 【免寫單片機代碼WS2812燈帶效果設計軟件-嗶哩嗶哩】 https://b23.tv/xFhxMGm

Docker 容器(二)

Docker四、Docker容器數據卷1.數據卷的主要特點2.卷的共享與繼承&#xff08;1&#xff09;卷的共享&#xff08;Sharing&#xff09;(2) 卷的繼承&#xff08;Inheritance&#xff09;3.數據卷運行實例五、Dockerfile1.Dockerfile2. 創建一個名為 myubuntu的自定義鏡像第 1 步…

PCB基礎細節--工藝篇

pcb基礎細節&#xff08;工藝篇&#xff09; 1. 孔與焊盤2. PCB各層之間的作用3. 阻抗匹配 3.1. 什么是傳輸線&#xff1f;我們只看特性阻抗&#xff0c;時延以后再說。 在畫原理圖時&#xff0c;我們把電阻&#xff0c;電容&#xff0c;電感是抽象成一個點了。兩邊加一個電壓&…

信創服務器總死機原因及解決辦法

哈嘍&#xff0c;你好啊&#xff0c;我是雷工&#xff01;最近有個項目使用信創的服務器&#xff0c;總是出現死機的情況&#xff0c;聯系廠家檢查了一下&#xff0c;說是沐創網卡固件較低造成的&#xff0c;讓移除網卡或升級固件嘗試一下。記得5月份按廠家的說法處理過一臺&am…

03_網關ip和端口映射(路由器轉發)操作和原理

網關ip和端口映射&#xff08;路由器轉發&#xff09;操作和原理IP 與端口映射配置全指南&#xff1a;2 種方案搞定外網訪問內網一、先搞懂&#xff1a;為什么需要 IP 與端口映射&#xff1f;二、方案一&#xff1a;路由器端口映射&#xff08;適合有公網 IP&#xff0c;長期穩…

「數據獲取」《安徽建設統計年鑒》(2002-2007)(2004、2006缺失)(獲取方式看綁定的資源)

01、數據簡介《安徽建設統計年鑒》是一部全方位反映安徽省建設事業發展變遷的重要統計資料著作。該書系統收集并精心整理了 2006 年度安徽省城鄉建設領域的核心統計數據&#xff0c;涵蓋城鄉建設固定資產投資、建筑業發展態勢、城鎮建設推進情況等多個關鍵方面&#xff0c;為政…

Python/JS/Go/Java同步學習(第一篇)格式化/隱藏參數一鍋端 四語言輸出流參數宇宙(附源碼/截圖/參數表/避坑指南/老板沉默術)

&#x1f91d; 免罵聲明&#xff1a; 本文四語言輸出流參數經本蜀黎實戰整理&#xff0c;旨在提供快速參考指南&#x1f4dd;因各語言版本迭代及不同系統環境差異&#xff0c;偶爾可能出現整理不全面之處&#xff0c;實屬正常?歡迎理性交流補充&#xff0c;噴子勿噴——畢竟你…

人工智能助力流感疫苗選擇:MIT 團隊推出 VaxSeer 系統

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

使用 qmake 生成 Makefile,Makefile 轉換為 Qt 的 .pro 文件

使用 qmake 生成 Makefile 的完整指南 qmake 是 Qt 提供的構建工具&#xff0c;用于從 .pro 項目文件生成 Makefile。以下是詳細的使用方法&#xff1a; 基本使用方法 1. 從 .pro 文件生成 Makefile bash qmake -o Makefile your_project.pro2. 直接運行 qmake&#xff08;自動…

利用DeepSeek編寫驗證xlsx格式文件中是否啟用sharedStrings.xml對讀寫效率影響python程序

讓他分別用100*10000個單元格有100、1000、10000個不同的1-200字符長的大寫英文字母字符串測試. 一開始DeepSeek沒有找到啟用sharedStrings.xml的寫xlsx模塊&#xff0c;我自己找了pyxlsbwriter的例子告訴他才改好的。 import os import time import random import string impo…

【C++框架#2】gflags 和 gtest 安裝使用

spdlog 安裝和使用 1. 概述 介紹&#xff1a;spdlog 是一個高性能、超快速、零配置的 C 日志庫&#xff0c;它旨在提供簡潔的 API 和豐富的功能&#xff0c;同時保持高性能的日志記錄。它支持多種輸出目標、格式化選項、線程安全以及異步日志記錄。 github 鏈接&#xff1a;htt…

平衡掌控者-游戲數值戰斗設計

一、有效生命值1、計算公式有效生命生命值/&#xff08;1-傷害減免率&#xff09;/&#xff08;1-閃避率&#xff09;2、前搖和后搖對數值來說&#xff0c;戰斗由兩大模塊組成&#xff0c;一個是戰斗公式生效前的戰斗攻擊流程&#xff0c;一個是戰斗公式與自身流程。比如說&…