【51單片機入門】點亮數碼管

文章目錄

  • 前言
  • 仿真圖
  • 如何去繪制一個數字
  • 示例代碼
    • 選擇某個數碼管
    • 顯示某個數字
  • 示例代碼
  • 總結


前言

在嵌入式系統的世界中,單片機扮演著至關重要的角色。51單片機,作為最早的微控制器之一,至今仍被廣泛應用在各種設備中。本文將介紹如何使用51單片機點亮數碼管,這是每個學習單片機的初學者都必須掌握的基本技能。我們將通過實際的操作步驟,讓你了解如何編程控制單片機,以驅動數碼管顯示數字或字符。


仿真圖

搜索7seg即可,MPX+數字,其中數字為數碼管的個數,CA為共陽,CC為共陰,我們這里使用共陽
在這里插入圖片描述
電路圖:
在這里插入圖片描述

如何去繪制一個數字

下面就是單個數碼管的圖片,我們輸入對應的高低電平給對應的led就可以點亮對應的led
在這里插入圖片描述

在共陽數碼管中,你需要輸入0給led,即可點亮他
共陰就是反一下。

示例代碼

選擇某個數碼管

共陽數碼管當該引腳為高電平時,即選中了他,比如1輸入高電平,就可以操作顯示0這個數碼管了
在這里插入圖片描述

void Choose(unsigned char index)
{P1 = 0;P1 = (1 << index);
}

顯示某個數字

unsigned char num[6] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};void show(unsigned char digit)
{P2 = num[digit]; // ????????????P2??
}

這段代碼是用來驅動數碼管顯示數字的。首先,我們來看看這個數組num

unsigned char num[6] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};

這個數組存儲了6個16進制數,每個數對應一個數字(0到5)在數碼管上的顯示方式。這些數是通過設置數碼管的各個段(一般為7段或8段)的亮滅來顯示對應的數字。

然后,我們看看show函數:

void show(unsigned char digit)
{P2 = num[digit];
}

這個函數接收一個數字(0到5),然后將這個數字對應的數碼管顯示方式(也就是num數組中對應的那個數)賦值給P2。在這里,P2是一個端口,它連接著數碼管。通過改變P2的值,我們就可以改變數碼管的顯示。

所以,這段代碼之所以能點亮數碼管,是因為它通過改變連接數碼管的端口P2的值,來改變數碼管的顯示。

如果你想添加新的字符,可以看這張圖,1為開,0為關,寫出對應的二進制,然后轉換為16進制,放到num中即可
在這里插入圖片描述

示例代碼

#include <regx52.h>typedef unsigned char u8;unsigned char num[10] = {0xC0, // ?? 00Xf9, // ?? 10Xa4, // ?? 20Xb0, // ?? 30X99, // ?? 40X92, // ?? 5
};void delay(unsigned int ms) {unsigned int i, j;for(i = ms; i > 0; i--)for(j = 120; j > 0; j--);
}void Choose(unsigned char index)
{P1 = 0;P1 = (1 << index);
}// ???????
void show(unsigned char digit)
{P2 = num[digit]; // ????????????P2??
}char ix = 0;void main()
{P0 = 0;Choose(1); // ????????show(1); // ????1while(1){Choose(ix);show(ix);ix++;ix%=6;delay(10);}
}

總結

通過本文的學習,我們了解了如何使用51單片機來點亮數碼管。這個過程雖然看似簡單,但它涵蓋了許多重要的概念,如I/O編程,寄存器操作,以及時序控制等。掌握了這些,你就已經邁出了成為一名嵌入式系統工程師的第一步。希望你能繼續探索51單片機的更多功能,并將其應用到更復雜的項目中去。記住,每個偉大的發明都始于簡單的想法,而最重要的是你已經開始了這個旅程。祝你學習愉快!

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

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

相關文章

幾種linux開機自啟腳本的方法

幾種linux開機自啟腳本的方法 1. 腳本添加到init.d目錄中2. 創建服務service&#xff08;推薦&#xff09;3. /etc/profile & /etc/profile.d&#xff08;不推薦&#xff09;4. /etc/rc.local 本文以啟動jenkins節點為例&#xff0c;需要持久連接&#xff0c;實現開機自啟 …

js或ts中對象如何循環遍歷獲取名字和值

數組循環有多種方法&#xff0c;但是對象循環還是會遇到一些問題 分開獲取key或value let names{name:kaka,age:12}獲取key值代碼&#xff1a; Object.keys(names).forEach(name>{console.log(name) })結果&#xff1a; 獲取value值代碼&#xff1a; Object.values(name…

多地高溫持續“熱力”爆表 約克VRF中央空調帶你清涼舒爽一夏

“出門5分鐘&#xff0c;流汗2小時”,夏季高溫天氣&#xff0c;怎一個“熱”字了得&#xff1f;6月以來&#xff0c;我國多地迎來高溫“炙烤”&#xff0c;全國出現40℃以上高溫的范圍持續增加&#xff0c;隨著中央氣象臺高溫預警持續拉響&#xff0c;人們都很納悶&#xff1a;…

谷歌瀏覽器報錯ERR_UNSAFF_PORT原因分析

部署了個測試靜態頁&#xff0c;用了10080端口。curl訪問沒問題&#xff0c;chrome瀏覽器訪問報錯 ERR_UNSAFF_PORT 查了一下&#xff0c;google對于部分端口在客戶端是直接攔截的。請求都不會到服務器 定義在這里 谷歌官網源碼&#xff1a;chromium.googlesource.com git…

Android 大話binder通信

戳藍字“牛曉偉”關注我哦&#xff01; 用心堅持輸出易讀、有趣、有深度、高質量、體系化的技術文章 由于 Android 大話binder通信(上) 和 Android 大話binder通信(下) 分為兩篇閱讀體驗不好&#xff0c;顧合并為一篇。 本文摘要 用故事的方式把binder通信的整個過程都描述…

【408考點之數據結構】棧:定義、特點、基本操作與應用

棧&#xff1a;定義、特點、基本操作與應用 棧是一種重要的線性數據結構&#xff0c;廣泛應用于計算機科學和編程中。本文將介紹棧的定義、特點、基本操作以及常見應用。 棧的定義 棧&#xff08;Stack&#xff09;是一種特殊的線性表&#xff0c;只允許在表的一端進行插入和…

TFMath Caculator:一個簡單的Java AWT計算器

目錄 背景&#xff1a; 代碼展示: 代碼解析: 輸出結果: 總結: 背景&#xff1a; 使用Java AWT(Abstract Window Toolkit)庫創建的簡單計算器應用-TFMath Calculator。這個計算器允許用戶輸入兩個數字&#xff0c;點擊號按鈕后&#xff0c;計算器會計算這兩個數字的和&…

在文件末尾添加以下行來添加CRAN鏡像(適合你的Ubuntu版本,例如focal):添加的是ubuntu16.04版本

ChatGPT 如果你的Ubuntu版本是16.04&#xff08;Xenial Xerus&#xff09;&#xff0c;則應該使用適合該版本的CRAN鏡像。下面是具體的步驟&#xff1a; 在Ubuntu 16.04上更新R到較新版本 添加CRAN鏡像&#xff1a; 打開終端并編輯APT源列表文件&#xff1a; bash 復制代碼 …

計算機網絡之OSI七層體系結構

目錄 1.物理層 1.1物理層組成 1.2物理層功能 1.3物理層服務 1.4物理層標準 1.5物理層接口 2.數據鏈路層 2.1基于物理層的問題 2.2數據鏈路層功能 2.3數據鏈路層服務 2.4數據鏈路層協議 3.網絡層 3.1基于DL層的問題 3.2網絡層功能 3.3網絡層服務 3.4網絡層協議 …

Django 靚號管理系統:實現登錄功能

本文將詳細介紹如何在 Django 靚號管理系統中實現登錄功能,包括用戶認證、驗證碼生成、以及中間件的使用。我們將逐步展示所有相關代碼,并附帶詳細注釋。 1. 項目結構 首先,讓我們看一下項目的基本結構: number ├── manage.py ├── monaco.ttf ├── number │ …

Linux下的SSH詳解及Ubuntu教程

前言 SSH&#xff08;Secure Shell&#xff09;是一種用于計算機之間安全通信的協議&#xff0c;廣泛應用于遠程登錄、系統管理和文件傳輸等場景。本文將詳細介紹SSH在Linux系統&#xff08;特別是Ubuntu&#xff09;下的使用&#xff0c;包括安裝、配置、密鑰管理和常見應用&…

怎么加快音頻播放速度?加快音頻播放器的四種方法介紹

怎么加快音頻播放速度&#xff1f;許多音樂愛好者對各種類型的歌曲充滿了熱情&#xff0c;這些歌曲節奏輕快或者緩慢不一&#xff0c;但通常默認的播放速度都是一倍速。有時候&#xff0c;一些旋律悠揚的曲子可能聽起來有些慢&#xff0c;這時候一些朋友可能想要嘗試加快節奏&a…

easyquotation獲取港股的bug

easyquotation&#xff1a;實時股票數據獲取 easyquotation庫&#xff0c;是一個非常好用的實時股票數據獲取庫&#xff0c;可以實時獲取新浪、騰訊的免費股票行情&#xff0c;集思路的分級基金行情 安裝 項目地址&#xff1a;https://github.com/shidenggui/easyquotation.…

鴻蒙開發 之 健康App案例

1.項目介紹 該項目是記錄用戶日常飲食情況&#xff0c;以及針對不同食物攝入營養不同會有對應的營養攝入情況和日常運動消耗情況&#xff0c;用戶可以自己添加食品以及對應的熱量。 1.1登陸頁 1.2飲食統計頁 1.3 食物列表頁 2.登陸頁 2.1自定義彈框 import preferences from oh…

IP地址查詢和代理服務器:雙重保護隱私

隨著網絡應用的日益普及&#xff0c;我們的個人信息和數據安全面臨前所未有的挑戰。在此背景下&#xff0c;IP地址查詢和代理服務器成為保護個人隱私和網絡安全的兩大關鍵工具。本文將從IP地址查詢的原理和應用出發&#xff0c;深入剖析代理服務器在網絡隱私保護中的作用&#…

掌握批處理的高級技巧:使用正則表達式

掌握批處理的高級技巧&#xff1a;使用正則表達式 在Windows批處理腳本編寫中&#xff0c;正則表達式是一個強大的工具&#xff0c;它可以幫助我們進行復雜的字符串匹配和處理。雖然批處理腳本本身并不直接支持正則表達式&#xff0c;但我們可以通過一些技巧和外部工具來實現正…

AI視頻教程下載-數據分析中的提示工程:Python、Pandas、ChatGPT

Prompt Engineering for Data Analysis Python, Pandas, ChatGPT ChatGPT與Python&#xff1a;無需編程。借助ChatGPT、Python、Pandas及提示工程進行數據分析與數據可視化 "利用Python、Pandas和ChatGPT進行數據分析的提示工程"是一門開創性的課程&#xff0c;它通…

SpringBoot(二)SpringBoot多環境配置

Spring框架常用注解簡單介紹 SpringMVC常用注解簡單介紹 SpringBoot&#xff08;一&#xff09;創建一個簡單的SpringBoot工程 SpringBoot&#xff08;二&#xff09;SpringBoot多環境配置 SpringBoot&#xff08;三&#xff09;SpringBoot整合MyBatis SpringBoot&#xff08;四…

vue-advanced-chat 聊天控件的使用

測試代碼&#xff1a;https://github.com/robinfoxnan/vue-advanced-chat-test0 控件源碼&#xff1a;https://github.com/advanced-chat/vue-advanced-chat 先上個效果圖&#xff1a; 這個控件就是專門為聊天而設計的&#xff0c;但是也有一些不足&#xff1a; 1&#xf…

【層序遍歷】個人練習-Leetcode-102. Binary Tree Level Order Traversal

題目鏈接&#xff1a;https://leetcode.cn/problems/binary-tree-level-order-traversal/description/ 題目大意&#xff1a;給一棵樹的根&#xff0c;要求以vector<vector<int>>形式給出層序遍歷結果。 思路&#xff1a;層序遍歷并不難&#xff0c;tricky的點在…