02 51單片機之LED閃爍

文章目錄

  • 1、單片機
    • 1-1、簡介
    • 1-2、應用場景
  • 2、51單片機
    • 2-1、背景
    • 2-2、主要品牌及其產品
    • 2-3、基本組成
    • 2-4、命名規則
  • 3、單片機內部結構
    • 3-1、單片機內部結構圖
    • 3-2、單片機內部結構
    • 3-3、單片機內部管腳圖
    • 3-4、單片機最小系統
    • 3-5、開發板介紹
  • 4、點亮LED
    • 4-1、新建工程
      • 4-1-1、創建工程文件
      • 4-1-2、選擇芯片型號
      • 4-1-3、啟動文件
      • 4-1-4、Main
    • 4-2、LED介紹
    • 4-3、LED模塊
    • 4-3、Code
    • 4-4、Download Code
  • 5、LED Flash
    • 5-1、新建工程
    • 5-2、創建延時函數
    • 5-3、Download code
    • 5-4、實驗表現
  • 6、流水燈
    • 6-1、新建工程
  • 6-2、C51數據類型
  • 6-3、Plus版本
  • 參考資料


1、單片機

1-1、簡介

單片機(Single-Chip Microcomputer)是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。

單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇

1-2、應用場景

單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。從二十世紀九十年代開始,單片機技術就已經發展起來,隨著時代的進步與科技的發展,目前該技術的實踐應用日漸成熟,單片機被廣泛應用于各個領域。現如今,人們越來越重視單片機在智能電子技術方面的開發和應用,單片機的發展進入到新的時期,無論是自動測量還是智能儀表的實踐,都能看到單片機技術的身影。當前工業發展進程中,電子行業屬于新興產業,工業生產中人們將電子信息技術成功運用,讓電子信息技術與單片機技術相融合,有效提高了單片機應用效果。作為計算機技術中的一個分支,單片機技術在電子產品領域的應用,豐富了電子產品的功能,也為智能化電子設備的開發和應用提供了新的出路,實現了智能化電子設備的創新與發展。

單片機也被稱為單片微控器,屬于一種集成式電路芯片。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據采集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。 由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。簡單地說,單片機就是一塊芯片,這塊芯片組成了一個系統,通過集成電路技術的應用,將數據運算與處理能力集成到芯片中,實現對數據的高速化處理。


2、51單片機

2-1、背景

51單片機泛指兼容英特爾8051指令系統的8位單片機統稱,技術源自Intel 1980年代推出的8051內核,廣泛應用于家電控制、汽車電子、工業測控及通信設備領域,也是國內高校單片機教學的主要硬件平臺。典型型號包括ATMEL的89C51、89S51及STC公司的增強型89C52(本文使用改系列單片機)等,主流廠商涵蓋Atmel、STC、Philips等。該系列采用哈佛架構,集成8位CPU、Flash程序存儲器、RAM數據存儲器及定時器/中斷系統。新型號如89S51支持33MHz工作頻率與ISP在線編程,內置雙工UART、看門狗定時器及改進型加密算法,全系保持向下兼容特性。硬件層面配備40引腳PDIP封裝,包含4組準雙向I/O端口,支持寬電壓供電(3.3V-5.5V)及外部晶振電路配置。開發工具鏈涵蓋Keil集成環境與STC-ISP燒錄軟件。


2-2、主要品牌及其產品

  1. Intel(英特爾):80C31、80C51、87C51,80C32、80C52、87C52等;
  2. Atmel(艾特梅爾):89C51、89C52、89C2051,89S51(RC),89S52(RC)等;
  3. Philips(飛利浦)、華邦、Dallas(達拉斯)、Siemens(西門子)等公司的許多產品;
  4. STC(宏晶):STC89C51、STC90C51、STC11系列、STC15系列、STC8系列等。

2-3、基本組成

8051單片機通常至少具備以下功能和外設:

  • 8位CPU
  • 數據存儲器(RAM:Random Access Memory,512字節(512Byte),類似于電腦的內存條)
  • 程序存儲器(ROM:Read Only Memory,8K字節(8KB) Flash,類似于電腦的硬盤)
  • 4組8位共32個輸入輸出口
  • 5至6個中斷源,分2個優先級
  • 全雙工串行口
  • 工作頻率:最大40MHz(本開發板使用)

2-4、命名規則

在這里插入圖片描述

Figure1. 89C52RC 40I-PDIP40

在這里插入圖片描述

Figure2. STC89C52RC/RD+系列單片機命名規則

STC89C52系列區分90C版本及HD版本,如何識別90C版及HID版:通過查詢單片機表面文字最下面一行最后幾個字母,最后幾個字母為90C,則該單片機為90C版本(本開發板使用);最后幾個字母為HD,則該單片機為HD版本。


3、單片機內部結構

3-1、單片機內部結構圖

STC89C52系列單片機是STC推出的新一代高速/低功耗/超引強抗干擾/超低價的單片機,指令代碼完全兼容傳統8051單片機,12時鐘每機器周期和66時鐘每機器周期可以任意選擇。在KeilC開發環境中,選擇Intel8052編譯,頭文件包含<reg51.h>即可
在這里插入圖片描述

Figure3. STC89C52RC單片機內部結構圖

功能清單如下所示:

  1. 增強型8051單片機,6時鐘每機器周期和12時鐘每機器周期可任意選擇,指令代碼完全兼容傳統8051。
  2. 工作電壓:
    STC89C52系列工作電壓:5.5V-3.8V(5V單片機)。
    STC89LE52系列工作電壓:3.6V-2.4V(3V單片機)。
  3. 工作頻率范圍:0 ~ 35MHz,相當于普通8051的0 ~ 70MIHz,實際工作頻率可達42MHz
  4. 片內Flash程序存儲器:4K/8K/12K/14K/16K/32K/40K/48K/56K/62K字節
  5. 片上集成1280字節或512字節RAM
  6. 通用I/0口(35/39個),復位后為:P1/P2/P3/P4是準雙向口/更弱上拉(普通8051傳統I/O口);P0口是開漏輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。
  7. ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器可通過串口(RxD/P3.0.TxD/P3.1)直接下載用戶程序,數和沙即可完成一片
  8. EEPROM功能
  9. 看門狗
  10. 內部集成MAX810專用復位電路,外部晶體20M以下時,可省外部復位電路,復位腳可直接接地。
  11. 共3個16位定時器/計數器,其中定時器0還可以當成2個8位定時器使用
  12. 4路外部中斷,下降沿中斷或低電平觸發中斷,Power Down模式可由外部中斷低電平觸發中斷方式喚醒。
  13. 通用異步串行口(UART),還可用定時器軟件實現多個UART。
  14. 工作溫度范圍:-40 ~ +85°C(工業級)/0~75°C(商業級)
  15. 封裝:LQFP-44,PDIP-40,PLCC-44,PQFP-44。強烈推薦選擇擇LQFP-44貼片封裝

3-2、單片機內部結構

STC89C52系列單片機的內部結構框圖如所示。STC89C52單片機中包含中央處理器(CPU)、程序存儲器(Flash)、數據存儲器(SRAM)、定時/計數器、UART串口、I/O接口、EEPROM、看門狗等模塊。STC89C52系列單片機幾乎包含了數據采集和控制中所需的所有單元模塊,可稱得上一個片上系統。
在這里插入圖片描述

Figure4. STC89C52RC單片機內部結構框圖

3-3、單片機內部管腳圖

在這里插入圖片描述

Figure5. STC89C52系列90C版本的管腳圖

3-4、單片機最小系統

在這里插入圖片描述

Figure6. STC89C52系列單片機最小應用系統

  1. 復位電路:電容充電時相當于短路,通過C1直接鏈接RST引腳,隨著C1不斷充電,之后C1就會斷路,RST連接GND,從而達到上電復位的效果。
  2. 對于最小系統而言,給單片機供電后,連接晶振電路即可運行起來,為了保證產品的穩定性,需要集成復位電路或晶振電路。

3-5、開發板介紹

在這里插入圖片描述

Figure7. STC89C52系列單片機開發板

在這里插入圖片描述

Figure8. STC89C52系列單片機開發板原理圖

4、點亮LED

4-1、新建工程

4-1-1、創建工程文件

在這里插入圖片描述

Figure9. 創建工程文件

4-1-2、選擇芯片型號

在這里插入圖片描述

Figure10. 選擇芯片型號


4-1-3、啟動文件

在這里插入圖片描述

Figure11. 啟動文件

4-1-4、Main

在這里插入圖片描述

Figure12. Main

4-2、LED介紹

在這里插入圖片描述

Figure13. LED

4-3、LED模塊

在這里插入圖片描述

Figure14. LED電路模塊

4-3、Code

在這里插入圖片描述

Figure15. LED Code

#include <REGX52.H>void main()
{/* Light Up LED0 */P2 = 0xFE; 
}

4-4、Download Code

在這里插入圖片描述

Figure16. LED Code download

在這里插入圖片描述

Figure17. Light one LED

5、LED Flash

5-1、新建工程

在這里插入圖片描述

Figure18. 創建工程文件

5-2、創建延時函數

在這里插入圖片描述

Figure19. 創建延時函數

5-3、Download code

在這里插入圖片描述

Figure20. Download code

#include <REGX52.H>
#include <INTRINS.H>void Delay500ms()		//@12.000MHz
{unsigned char i, j, k;_nop_();i = 4;j = 205;k = 187;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){/* 1. Light Up one Led. */P2 = 0xFE;/* 2. Delay 500ms. */Delay500ms();/* 3. Light Down one Led. */P2 = 0xFF;/* 4. Delay 500ms. */Delay500ms();}
}

5-4、實驗表現

LED Flash


6、流水燈

6-1、新建工程

在這里插入圖片描述

Figure21. 創建工程文件

#include <REGX52.H>
#include <INTRINS.H>void Delay500ms()		//@12.000MHz
{unsigned char i, j, k;_nop_();i = 4;j = 205;k = 187;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){/* 1. Light Up one Led P0. */P2 = 0xFE;/* 2. Delay 500ms. */Delay500ms();/* 3. Light Up one Led P1. */P2 = 0xFD;/* 4. Delay 500ms. */Delay500ms();/* 5. Light Up one Led P2. */P2 = 0xFB;/* 6. Delay 500ms. */Delay500ms();/* 7. Light Up one Led P3. */P2 = 0xF7;/* 8. Delay 500ms. */Delay500ms();/* 9. Light Up one Led P4. */P2 = 0xEF;/* 10. Delay 500ms. */Delay500ms();/* 11. Light Up one Led P5. */P2 = 0xDF;/* 12. Delay 500ms. */Delay500ms();/* 13. Light Up one Led P6. */P2 = 0xBF;/* 14. Delay 500ms. */Delay500ms();/* 15. Light Up one Led P7. */P2 = 0x7F;/* 16. Delay 500ms. */Delay500ms();}
}

6-2、C51數據類型

在這里插入圖片描述

Figure22. C51數據類型

6-3、Plus版本

在這里插入圖片描述

Figure23. Plus版本

#include <REGX52.H>
#include <INTRINS.H>void Delay1ms(unsigned int xms)		//@12.000MHz
{unsigned char i, j;while(xms){_nop_();i = 2;j = 239;do{while (--i);} while (--j);xms--;}
}void main()
{while(1){/* 1. Light Up one Led P0. */P2 = 0xFE;/* 2. Delay 500ms. */Delay1ms(500);/* 3. Light Up one Led P1. */P2 = 0xFD;/* 4. Delay 500ms. */Delay1ms(500);/* 5. Light Up one Led P2. */P2 = 0xFB;/* 6. Delay 500ms. */Delay1ms(500);/* 7. Light Up one Led P3. */P2 = 0xF7;/* 8. Delay 500ms. */Delay1ms(500);/* 9. Light Up one Led P4. */P2 = 0xEF;/* 10. Delay 500ms. */Delay1ms(500);/* 11. Light Up one Led P5. */P2 = 0xDF;/* 12. Delay 500ms. */Delay1ms(500);/* 13. Light Up one Led P6. */P2 = 0xBF;/* 14. Delay 500ms. */Delay1ms(500);/* 15. Light Up one Led P7. */P2 = 0x7F;/* 16. Delay 500ms. */Delay1ms(500);}
}

參考資料

  1. 單片機
  2. STC: 1T 8051 單片機創新者, ISP/IAP 技術創新者,中華有為:除了勝利,我們已無路可走
  3. 8051 microcontroller FAQ
  4. 51單片機入門教程-2020版 程序全程純手打 從零開始入門

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

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

相關文章

Typecho博客集成算術驗證碼防御垃圾評論實戰指南

文章目錄 Typecho實現算術驗證碼防御機器人垃圾評論的完整方案 背景與問題分析 技術方案設計 系統架構 技術選型 核心實現步驟 1. 創建驗證碼生成函數 2. 修改評論表單模板 3. 添加AJAX刷新功能 4. 創建驗證碼刷新接口 5. 添加評論提交驗證 安全增強措施 1. 防止暴力破解 2. 增…

clonezilla 導出自動化恢復iso

clonezilla 下載及U盤工具下載 clonezilla rufus U盤寫入工具ventoy U盤工具downloaddownloaddownload clonezilla 備份&#xff0c;連貫上一篇文章參考 Choose Clonezilla live (VGA 800x600) Wait for it to complete Language selection Keyboard Settings Select Mode …

深度學習模型開發部署全流程:以YOLOv11目標檢測任務為例

深度學習模型開發部署全流程&#xff1a;以YOLOv11目標檢測任務為例 深度學習模型從開發到部署的完整流程包含需求分析、數據準備、模型訓練、模型優化、模型測試和部署運行六大核心環節。YOLOv11作為新一代目標檢測模型&#xff0c;不僅延續了YOLO系列的高效實時性能&#xff…

單片機(STM32-串口通信)

一、串口通信基礎概念串口通信&#xff08;Serial Communication&#xff09;是一種在計算機和外部設備之間進行數據傳輸的通信方式。它通過串行方式逐位傳輸數據&#xff0c;是最基本和常用的通信接口之一。主要特點1. 串行傳輸(1)數據按位順序傳輸&#xff0c;一次只能傳輸一…

Redis學習其三(訂閱發布,主從復制,哨兵模式)

文章目錄9.Redis訂閱與發布9.1發布訂閱命令9.2示例10.Redis主從復制10.1概念10.2環境配置10.3集群搭建&#xff08;一主二從配置&#xff09;10.4使用規則&原理11.哨兵模式11.1基本概念11.2工作原理11.3使用案例12.緩存穿透,雪崩&#xff08;待拓展&#xff09;12.1緩存穿透…

跨平臺 App 如何無痛遷移到鴻蒙系統?全流程實戰+Demo 教程

摘要 目前&#xff0c;隨著 HarmonyOS&#xff08;鴻蒙系統&#xff09;的快速發展&#xff0c;越來越多開發者和企業希望將已有的 Android、Flutter、React Native 等跨平臺應用遷移到鴻蒙生態中。鴻蒙不僅具備分布式能力、原生性能和統一的開發范式&#xff0c;還提供了豐富的…

智慧后廚檢測算法構建智能廚房防護網

智慧后廚檢測&#xff1a;構建安全潔凈廚房的智能解決方案背景&#xff1a;傳統后廚管理的痛點與智慧化需求餐飲行業后廚管理長期面臨操作規范難落實、安全隱患難察覺、衛生狀況難追溯等痛點。傳統人工巡檢效率低、覆蓋面有限&#xff0c;難以實現24小時無死角監管。例如&#…

LatentSync: 一鍵自動生成對嘴型的視頻

LatentSync是什么 字節跳動與北京交通大學聯合推出了全新的唇形同步框架 LatentSync&#xff0c;它基于音頻驅動的潛在擴散模型&#xff0c;跳過了傳統的3D建模或2D特征點提取&#xff0c;直接生成自然逼真的說話視頻。 LatentSync借助Stable Diffusion強大的圖像生成能力&am…

在斷網情況下,網線直接連接 Windows 筆記本和 Ubuntu 服務器進行數據傳輸

在斷網情況下&#xff0c;通過網線直接連接 Windows 筆記本 和 Ubuntu 服務器上的容器 進行數據傳輸&#xff0c;可以按照以下步驟操作&#xff1a;1. 物理連接 使用網線直連&#xff1a;用一根 普通網線&#xff08;直通線&#xff09; 連接 Windows 筆記本和 Ubuntu 服務器的…

機器學習17-Mamba

深度學習之 Mamba 學習筆記 一、Mamba 的背景與意義 在深度學習領域&#xff0c;序列建模是一項核心任務&#xff0c;像自然語言處理、語音識別和視頻分析等領域&#xff0c;都要求模型能有效捕捉長序列里的依賴關系。之前&#xff0c;Transformer 憑借強大的注意力機制成為序列…

Java實現word、pdf轉html保留格式

一、word轉html 依賴&#xff1a; <properties><poi.version>5.2.3</poi.version><xhtml.version>2.0.4</xhtml.version> </properties><!--word轉html--> <dependency><groupId>org.apache.poi</groupId><a…

基于51單片機和16X16點陣屏、矩陣按鍵的小游戲《俄羅斯方塊》

目錄系列文章目錄前言一、效果展示二、原理分析三、各模塊代碼1、16X16點陣屏&#xff08;MAX7219驅動&#xff09;2、矩陣按鍵3、定時器0四、主函數總結系列文章目錄 前言 《俄羅斯方塊》&#xff0c;一款經典的、懷舊的小游戲&#xff0c;單片機入門必寫程序。 有兩個版本&…

Stable Diffusion Windows本地部署超詳細教程(手動+自動+整合包三種方式)

Stable Diffusion Windows 本地部署超詳細教程 (手動 自動 整合包三種方式) 一、引言 我們可以通過官方網站 Stability AI&#xff0c;以及 Dream Studio、Replicate、Playground AI 、Baseten 等網站在線體驗 Stable Diffusion 的巨大威力。相比于集成在網絡平臺的 SD 或者…

sqli-labs靶場通關筆記:第29-31關 HTTP參數污染

第29關 HTTP參數污染本關設置了web應用防火墻&#xff08;WAF&#xff09;&#xff0c;利用白名單保護機制來檢測和攔截惡意請求。看本關源代碼。<?php //including the Mysql connect parameters. include("../sql-connections/sql-connect.php"); //disable er…

Vuex 基本概念

參照官網整理總結vuex語法。 計劃日期&#xff1a; Vuex基礎部分&#xff1a;2022年2月20日——2022年2月28日 Vuex源碼相關實踐&#xff1a;待定 Vuex拓展&#xff1a;待定 寫完后&#xff0c;會發到倉庫地址&#xff1a;待定 Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模…

深入理解Linux文件操作:stdin/stdout/stderr與C語言文件函數全解析

目錄 一、stdin、stdout 和 stderr 詳解 二、文件打開方式 三、C語言文件操作函數詳解 1、文件操作概述 2、文件操作函數分類表 1. 文件打開與關閉 2. 字符讀寫函數 3. 字符串讀寫函數 4. 格式化讀寫函數 5. 二進制讀寫函數 6. 文件定位函數 7. 文件狀態與錯誤檢測…

【自用】JavaSE--集合框架(一)--Collection集合體系

概述之前學的ArrayList就是集合的一種&#xff0c;是一種容器&#xff0c;可以往里面存東西&#xff0c;大小可變Collection集合體系Collection的常用方法以后Collection體系的集合都可以用下圖的方法注意toArray方法的數組類型是Object&#xff0c;這樣就可以接收任意類型的數…

電腦視頻常用幾種接口

傳輸信號類型 DP&#xff08;DisplayPort&#xff09;主要用于傳輸數字視頻和音頻信號&#xff0c;支持高分辨率和高刷新率。HDMI&#xff08;High-Definition Multimedia Interface&#xff09;同樣傳輸數字音視頻信號&#xff0c;但更偏向消費電子領域&#xff0c;如電視、游…

CherryStudio+playwright-mcp-server實現AI自動化

目錄 1、CherryStudio安裝與配置 1.1什么是CherryStudio 1.2安裝 1.3配置 2、playwright-mcp-server的安裝與配置 3、執行測試與結果 1、CherryStudio安裝與配置 1.1什么是CherryStudio Cherry Studio 是一款集多模型對話、知識庫管理、AI 繪畫、翻譯等功能于一體的全能 …

深入了解 find_element 方法:Web 自動化定位元素的核心?

在 Web 自動化測試領域&#xff0c;元素定位是實現各類操作的基礎&#xff0c;而find_element方法正是 Selenium 等自動化工具中用于定位單個元素的核心方法。掌握它的使用技巧&#xff0c;能讓我們更精準、高效地操控網頁元素&#xff0c;為自動化測試腳本的編寫打下堅實基礎。…