藍橋杯51單片機

這是我備考省賽的時候總結的錯誤點和創新點

那個時候是用來提醒自己的,現在分享給你們看^_^

一考點


二注意點

  • 記得初始化Y4,Y5,Y6,Y7(所學)→STC15系列頭文件概括
  • 注意在主函數中,重新定義跟隨模式(要不然亂七八糟)→初始化進化,鎖存器開后關閉
  • 注意初始化的內容,若多次使用,可變為一個函數
  • 操作led,數碼管,蜂鳴器時,要打開hc573鎖存器使能端打開,才能控制,后注意關閉
  • 操作矩陣鍵盤和NE555的時候記得注意跳線帽
  • 延時函數只有在led和獨立按鍵延時時使用
  • 延時函數缺點:單獨進行且死板(類似拖堂);定時器:定時與計數可以同時進行(類似下課),靈活
  • 乘除取余注意:%10取數字最后一位數(一個0);/10取最后一個數字之前的數字(一個0)
  • 軟件模擬:魔法棒-DEBUG-左側所有√打上-點擊DEBUG-點擊L1添加邏輯分析-運行
  • 賽點資源包閱讀:底層文件的引腳(運行代碼,找到未定義的引腳)+原理圖自己編寫+頭文件引用;頭文件自己編寫;新版onewire.h不需要自己再將t*12
  • Ds1302的問題,write()read()函數的存放位置

三歷年考題本人錯誤點

  • 數碼管的數字要顯示0,不需要再用三目運算符特意強調(ds1302實時時鐘)
  • 燈的點亮是0,所以寫LED函數是的時候是temp&=~0x01<<pos
  • 定時器時間太短,1ms最好
  • Ds1302的數碼管不用特別顯示0
  • Ds1302read 寫進要運行的代碼即數碼管顯示上面
  • 按鍵消抖時間小于十毫秒display_dly<10ms(放在開頭)
  • 數碼管顯示smg_dly<300LED顯示,數據采集,collect_dly<500
  • 如果要用到定時器中斷,就打開stc的選項,(比如測頻率的就是定時器0計數不打開,定時器1計時打開)
  • Ds18b20是溫度傳感器,需要加入時間750ms確保溫度的正確讀出,數值比較大,所以用int類型,先讀低八位,再讀高八位,后整合十六位,再確定小數點(幾位數字)
  • 用矩陣鍵盤的時候,注意大括號的else if** && **)內容與一開始賦值1的對應
  • Ds1302每次數值改變,記得重新寫入
  • 獨立按鍵是BTN模式,矩陣鍵盤是KBD模式
  • AT24C02中數值改變,每次都要重新讀取
  • Ds1302中,sbit的地址是連續的P21,P23,P17
  • 矩陣鍵盤賦值,用數組進行存儲,下標進行++

  • 有函數名基本相同,需要改變自定義函數名

  • 函數定義有一個參數,而使用的時候,未加

  • 當用矩陣鍵盤輸入數據(數組存放),在數碼管顯示出來,并要求數碼管高位熄滅或者三目運算符

    • 注意區間

    • 溫度測量 temp*0.0625 23?? temp*0.625236
    • 超聲波測距離,可以直接先用SPI波特率計算,再加putchar()函數即可
    • 若用按鍵決定發射串口,再按鍵位置置一個標志位,再collect()函數內printf(),注意printf發射數據的格式
    • 串口通信,先確定TXRX的引腳位置,再用延時函數確定12us的延時,再確定5個周期的發射超聲波,在讀取超聲波函數內,先CMOD=0,定時初始值位0,在CR=1開始計時接收到的超聲波時間while(!CF && RX);CR=0
    • 取模不可以是浮點數
    • 若要PCF8591顯示光敏電阻或者電位器的倆位小數(三位數),
    • light/RB2=read0x01/0x03/51.0*100

    • 編程的時候若出現一堆錯誤,查看第一行,是否是中文標點符號輸入
    • 若有界面的切換

    不重復觸發,說明上一個數值必須與其相反

    新的時間,放到索引1

    二維數組,轉換每一個數組時間的位置

    • 設定主界面與觸發界面倆個有關聯的定義maincode,maincode=0,主界面,maincode=1,觸發界面
    • 界面之間有防止重復觸發的可能性,定義一個標志位workflag,在定時器里面
    • 歷史查詢界面共有三個,采用二維數組,并且改變觸發時間的位置,進行準換改變

    1.用數組下標來決定索引值

    2.時間不可能顯示24小時,以此來決定二維數組的初始狀態

    3.以每一位二維數組的開頭做標志位,Time_set[0,1,2][0]=0x24都未采集到數據

    采集到數據,用循環來展現全部SMG[2,3,4,5,6,7]index與索引相對應

    • PCF8591同時讀取光敏和電位器電壓,需將倆個地址互換即可
    • 判斷字符串是否相等 strcmp(BUF,“open”)==0字符串相等#include "string.h"
    • 當一個界面有倆個參數需要按鍵進行改變,設置一個標志位,在按鍵控制函數里,進行編寫

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

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

    相關文章

    【2025/07/23】GitHub 今日熱門項目

    GitHub 今日熱門項目 &#x1f680; 每日精選優質開源項目 | 發現優質開源項目&#xff0c;跟上技術發展趨勢 &#x1f4cb; 報告概覽 &#x1f4ca; 統計項&#x1f4c8; 數值&#x1f4dd; 說明&#x1f4c5; 報告日期2025-07-23 (周三)GitHub Trending 每日快照&#x1f55…

    【生成式AI導論 2024】第12講:淺談檢定大型語言模型能力的各種方式 學習記錄

    跟標準答案做對比看是否正確 選擇題是不是正確 MMLU massive multitask Language Understanding MT-bench 使用語言模型來評分 還有其他任務的對比,也有特別刁鉆的問題 閱讀長文的能力 grep kamradt 大海撈針

    嵌入式 Qt 開發:實現開機 Logo 和無操作自動鎖屏

    在嵌入式設備開發中&#xff0c;為設備添加開機 Logo 和無操作自動鎖屏功能是提升用戶體驗的重要環節。本文將詳細介紹如何在 Qt 嵌入式項目中實現這兩個功能。我們將使用 Qt 5/6 和 Linux 環境&#xff0c;確保代碼的可移植性和通用性。項目結構為了實現這兩個功能&#xff0c…

    【AI智能體】Dify 開發與集成MCP服務實戰操作詳解

    目錄 一、前言 二、Dify 介紹 2.1 Dify是什么 2.2 MCP 介紹 2.2.1 什么是MCP 2.2.2 MCP核心特性 2.3 Dify中開發與使用MCP介紹 2.3.1 MCP Server開發與使用 2.4 dify 開發MCP Server優勢 三、Dify開發與集成MCP操作過程 3.1 Dify MCP 插件說明 3.2 安裝mcp-server插…

    django filter按兩個屬性 去重

    在Django中&#xff0c;如果你想基于兩個屬性去重&#xff0c;可以使用distinct()方法并結合annotate()和Count()來實現。這種方法通常用在查詢集中&#xff0c;尤其是在你需要統計基于某些字段的唯一值時。 示例 假設你有一個Person模型&#xff0c;它有兩個字段&#xff1a;f…

    PHP高級進階:突破編程邊界,開啟技術新征程

    目錄一、PHP 高級函數的深度剖析1.1 回調函數的高級應用1.2 遞歸函數的優化技巧二、面向對象編程的深化2.1 抽象類與接口的實際運用2.2 設計模式在 PHP 中的實現三、PHP 與數據庫交互的高級技術3.1 數據庫連接池的使用3.2 事務處理與數據一致性四、性能優化與調試4.1 代碼性能分…

    cx_Freeze python 打包詳解

    優點&#xff1a;有時比 PyInstaller 更好處理外部 .pyd做法&#xff1a;安裝 cx_Freezeshpip install cx_Freeze新建 setup.py&#xff1a;pythonfrom cx_Freeze import setup, Executablebuild_exe_options {"packages": ["apscheduler.triggers.interval&qu…

    Java字符串不可變性:從安全哲學到性能藝術的完美平衡

    目錄 引言 一、什么是String的不可變性&#xff1f; 二、解剖String的“防彈衣”&#xff1a;底層實現機制 1. final的三重防御體系 2. 方法實現的精妙設計 3. 構造函數的防御性編程 三、為什么String必須不可變&#xff1f;設計哲學的五大支柱 1. 字符串常量池&#x…

    多服務器批量發布軟件

    當需要同時發布程序到多個服務器的時候&#xff0c;常規是通過jekins了但是喜歡了手動檔&#xff0c;直接寫了個簡單批量發布軟件&#xff0c;程序編譯發布后&#xff0c;直接加載配置&#xff0c;選擇對應的服務器&#xff0c;直接電機發布即可&#xff0c;基本可以媲美jekins…

    基于.Net Core開源的庫存訂單管理系統

    今天給大家推薦一套開源的庫存訂單管理系統。 項目簡介 該項目是基于Asp.Net Core Mvc開發的庫存訂單管理系統&#xff0c;主要實現模塊有倉庫、產品、供應商、客戶、采購訂單、銷售訂單、發貨、收貨等等&#xff0c;該項目是單體架構&#xff0c;技術棧也不是最新的&#xf…

    Django學習之旅--第13課:Django模型關系進階與查詢優化實戰

    在Django開發中&#xff0c;模型關系設計與查詢性能直接決定了系統的擴展性和效率。當業務場景從簡單的數據存儲升級為復雜的關聯分析&#xff08;如訂單統計、用戶行為分析&#xff09;時&#xff0c;基礎的模型關系和查詢方式已無法滿足需求。本節課將深入講解模型關系的高級…

    簡單理解現代Web應用架構:從簡單到企業級

    在開發Web應用程序時&#xff0c;理解如何構建一個既安全又高效的系統至關重要。本文將通過介紹從簡單的三層架構到復雜的企業級架構的演變過程&#xff0c;幫助您更好地理解這些概念。1. 基礎架構&#xff1a;React Node.js MySQL前端&#xff08;React&#xff09;&#xf…

    修改 Lucide-React 圖標樣式的方法

    修改 Lucide-React 圖標樣式的方法 使用 lucide-react 時&#xff0c;你可以通過多種方式修改圖標的樣式。以下是幾種常用的方法&#xff1a; 1. 通過 className 屬性 import { Home } from lucide-react;function MyComponent() {return <Home className"text-blue-50…

    神經架構搜索革命:從動態搜索到高性能LLM的蛻變之路

    本文將揭示如何通過神經架構搜索技術&#xff08;NAS&#xff09;自動發現最優網絡結構&#xff0c;并將搜索結果轉化為新一代高性能大型語言模型的核心技術。我們的實驗證明&#xff0c;該方法在同等計算資源下可實現80%的性能飛躍&#xff01;第一部分&#xff1a;神經架構搜…

    【LeetCode 熱題 100】78. 子集——(解法三)位運算

    Problem: 78. 子集 題目&#xff1a;給你一個整數數組 nums &#xff0c;數組中的元素 互不相同 。返回該數組所有可能的子集&#xff08;冪集&#xff09;。 解集 不能 包含重復的子集。你可以按 任意順序 返回解集。 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1…

    XCKU035?1SFVA784C Xilinx FPGA KintexUltraScale AMD

    XCKU035?1SFVA784C 屬于 Xilinx Kintex UltraScale 系列&#xff0c;基于領先的 20?nm FinFET 技術制程&#xff0c;旨在為中高端應用提供卓越的性能與功耗平衡。該器件采用 784?ball Fine?pitch BGA&#xff08;SFVA784&#xff09;封裝&#xff0c;速度等級?1&#xff0…

    Encore.ts:下一代高性能 TypeScript 后端框架的崛起

    在 Node.js 生態系統中&#xff0c;后端框架的選擇直接影響 API 的性能、開發體驗和可維護性。近年來&#xff0c;Elysia.js、Hono、Fastify 等框架憑借各自的優化策略嶄露頭角&#xff0c;而 Encore.ts 則憑借 Rust TypeScript 混合架構&#xff0c;在性能上實現了質的飛躍。…

    【IP地址】IP歸屬地查詢驅動企業實時戰略調整

    動態市場感知與資源調度優化? IP歸屬地的實時分析為企業提供了市場需求的動態變化圖。 基于實時數據處理框架&#xff0c;企業可將IP歸屬地數據與用戶訪問量、轉化率等指標關聯計算&#xff0c;生成區域市場活躍度熱力圖。 當某區域IP訪問量在1小時內激增300%且停留時長提升至…

    [Bug | Cursor] import error: No module named ‘data‘

    import error: No module named ‘data’ Folder Structure root folder data folder dataloader.py src folder train.py <- where we try to import the dataloader.pyFailed Script ROOT_DIR Path(__file__).parent.parent os.chdir(ROOT_DIR) print(f"Using root…

    #Linux權限管理:從“Permission denied“到系統安全大師

    引入 Linux 作為多用戶系統&#xff0c;權限是系統安全的第一道防線。不合理的權限設置可能導致&#xff1a; 敏感文件泄露&#xff08;如數據庫密碼被讀取&#xff09;誤刪核心數據&#xff08;目錄寫權限失控&#xff09;權限漏洞被利用&#xff08;如 SUID 提權攻擊&#…