藍橋杯電子賽_繼電器和蜂鳴器

目錄

一 前言

二 繼電器和蜂鳴器實物

三 分析部分

(1)bsp_init.c

(2)蜂鳴器和繼電器原理圖

(3)ULN2003

(4)他們倆所連接的鎖存器

四 代碼

在這里要特別說一點!!!


一 前言

本章會介紹一些藍橋杯中 考的不是那么頻繁的知識點,但是最好還是要學一學。后續會寫一些關于pwm、NE555、串口等,國賽需要的超聲波和一些比較難的,后續再寫相關博客。

二 繼電器和蜂鳴器實物

看上面這張圖,繼電器和蜂鳴器在官方所提供的右側,畫黃色圈的這部分,一定要把短接帽插在右側,這樣他們倆才能正常工作

關于他們倆的原理圖,請看到第三部分,我會一步步進行分析,那么我們想要實現讓繼電器打開同時蜂鳴器叫,那么我們該如何操作呢,請看下面的分析的部分

三 分析部分

(1)bsp_init.c

在曾經我們寫過的初始化函數當中,我們關閉了蜂鳴器和繼電器,所以我們本次的主角就集中在了曾經最初學過的地方

void Cls_Peripheral(void)
{P0 = 0xFF;				P2 = P2 & 0x1F | 0x80;		//0x80??í¨Y4£???êy?Yí?′?1y襣???LED1?±?P2 &= 0x1F;				//????′??÷1?±?P0 = 0;P2 = P2 & 0x1F | 0xA0;		//0xA0??í¨Y5£???íaéè′|àíμ?P2 &= 0x1F;				//????′??÷1?±?	}

注意力集中在了0xA0這三行代碼上,而真正決定著蜂鳴器和繼電器是否開始工作,我們就應該把P0賦值成某一個數。

(2)蜂鳴器和繼電器原理圖

?要給buzz和RELAY低電平,才能讓蜂鳴器和繼電器工作

(3)ULN2003

?關于鎖存器上鏈接的ULN2003,這上面是對應的原理圖,可以發現內部說白了就是八個取反器,那么也就是說,在M74HC573M1R鎖存器邊上接了一個取反器。

(4)他們倆所連接的鎖存器

?首先想要讓鎖存器工作的,就必須要打開Y5C(這塊不懂的,請看第一篇文章),其次,觀察RELAY和BUZZ,他們所對應的位是P04和P06,如果我想讓RELAY和BUZZ輸出低電平0,那么15和13部分就得是高電平1,所對應的P04和P06就是高電平1,其他是零,P07到P00,0101 0000那么我就需要將P0賦值成0x50,才可以將對應的繼電器和蜂鳴器打開。

四 代碼

現在我們已經將最開始的bsp_init.c中的代碼改成了如下代碼,同時為了保證其他地方不改變,我們要寫成P0或上0x50。

	P0 |= 0x50;P2 = P2 & 0x1F | 0xA0;	P2 &= 0x1F;				

在這里要特別說一點!!!

由于數碼管和燈都用到了P0這個位置,所以我們不能直接對P0處進行賦值,最好在mian.c上引入全局變量,unsigned char beep_relay_flag= 0;

我們只需要對全局變量beep_relay_flag賦值即可,不會影響到P0本身~

?代碼如下:

switch(Key_Down)
{case 11:beep_relay_flag |= 0x50;P0 = beep_relay_flag;P2 = P2 & 0X1F | 0xA0;P2 &= 0X1F;				break;case 10:beep_relay_flag &= (~0x50);P0 = beep_relay_flag;P2 = P2 & 0X1F | 0xA0;P2 &= 0X1F;				break;
}

這是在模板的main.c中的Key_Proc(void)函數中添加的代碼,實現的是按下按鍵11打開蜂鳴器和繼電器,按下按鍵10關閉蜂鳴器和繼電器,同時,記得在上面添加全局變量unsigned char?beep_relay_flag哦。

為什么這里要寫成beep_relay_flag &= (~0x50);?

保持其他位置不變,不影響其他設備,如果直接賦值為零,會破壞其他設備的狀態,影響正常運行

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

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

相關文章

仿騰訊會議——主界面設計創建房間加入房間客戶端實現

1、實現騰訊會議主界面 2、添加Qt類WeChatDialog 3、定義創建會議和加入會議的函數 4、實現顯示名字、頭像的函數 調用函數 5、在中間者類中綁定函數 6、實現創建房間的槽函數 7、實現加入房間的槽函數 8、設置界面標題 9、服務器定義創建和進入房間函數 10、服務器實現創建房間…

網絡編程初識

注:此博文為本人學習過程中的筆記 1.socket api 這是操作系統提供的一組api,由傳輸層向應用層提供。 2.傳輸層的兩個核心協議 傳輸層的兩個核心協議分別是TCP協議和UDP協議,它們的差別非常大,編寫代碼的風格也不同&#xff0c…

【質量管理】現代TRIZ問題識別中的功能分析——功能模型

功能模型的定義 功能模型是對工程系統進行功能分析的一個階段,目的是建立工程系統的功能模型。功能模型描述了工程系統和超系統組件的功能,包括有用功能、性能水平和成本等。 在文章【質量管理】現代TRIZ中問題識別中的功能分析——相互接觸分析-CSDN博客…

廣告事件聚合系統設計

需求背景 廣告事件需要進行統計,計費,分析等。所以我們需要由數據接入,數據處理,數據存儲,數據查詢等多個服務模塊去支持我們的廣告系統 規模上 10000 0000個點擊(10000 00000 / 100k 1wQPS) …

C語言中,sizeof關鍵字(詳細介紹)

目錄 ?1. 基本用法?(1) ?基本數據類型?(2) ?變量?(3) ?數組?(4) ?指針? ?2. 特殊用法?(1) ?結構體與內存對齊?(2) ?動態內存分配?(3) ?表達式? ?3. 注意事項??1)sizeof 與 strlen 的區別?:?2)變長數組(VLA…

ADK 第三篇 Agents (LlmAgent)

Agents 在智能體開發套件(ADK)中,智能體(Agent)是一個獨立的執行單元,旨在自主行動以實現特定目標。智能體能夠執行任務、與用戶交互、使用外部工具,并與其他智能體協同工作。 在ADK中&#x…

【深度學習】典型的 CNN 網絡

目錄 一、LeNet-5 (1)LeNet-5 網絡概覽 (2)網絡結構詳解 (3)關鍵組件與數學原理 3.1 局部感受野與卷積運算 3.2 權重共享 3.3 子采樣(Pooling) 3.4 激活函數 (4…

4.8/Q1,中山大學用NHANES:膳食煙酸攝入量與非酒精性脂肪肝之間的關聯

文章題目:Association between Dietary Niacin Intake and Nonalcoholic Fatty Liver Disease: NHANES 2003-2018 DOI:10.3390/nu15194128 中文標題:膳食煙酸攝入量與非酒精性脂肪肝之間的關聯:NHANES 2003-2018 發表雜志&#xf…

高效管理遠程服務器Termius for Mac 保姆級教程

以下是 Termius for Mac 保姆級教程,涵蓋安裝配置、核心功能、實戰案例及常見問題解決方案,助你高效管理遠程服務器(如Vultr、AWS等)。 一、Termius 基礎介紹 1. Termius 是什么? 跨平臺SSH客戶端:支持Ma…

理解數學概念——支集(支持)(support)

1. 支集(support)的定義 在數學中,一個實函數 f 的支集(support)是函數的不被映射到 0 的元素域(即定義域)的子集。若 f 的(定義)域(domain)是一個拓撲空間(即符合拓撲的集合),則 f 的支集則定義為包含( f 的元素域中)不被映射到0的所有點之最小閉集…

Vue 3 Element Plus 瀏覽器使用例子

Element Plus 是一個基于 Vue 3 的流行開源 UI 庫,提供了一系列的組件,幫助開發者快速構建現代化的用戶界面。它的設計簡潔、現代,包含了許多可定制的組件,如按鈕、表格、表單、對話框等,適合用于開發各種 Web 應用。 …

SSR vs SSG:前端渲染模式終極對決(附 Next.js/Nuxt.js 實戰案例)

一、引言:前端渲染模式的進化之路 隨著互聯網的發展,用戶對于網頁的加載速度和交互體驗要求越來越高。前端渲染技術作為影響網頁性能的關鍵因素,也在不斷地發展和演進。從最初的客戶端渲染(CSR),到后來的服…

算法筆記.分解質因數

代碼實現&#xff1a; #include<iostream> using namespace std; void breakdown(int x) {int t x;for(int i 2;i < x/i;i){if(t%i 0){int counts 0;while(t % i 0){t/i;counts;}cout << i <<" "<< counts<<endl;}}if(t >…

CUDA Error: the provided PTX was compiled with an unsupported toolchain

CUDA程序編譯時生成的PTX代碼與系統上的CUDA驅動版本不兼容 CUDA 編譯器版本&#xff1a; CUDA 12.6 (nvcc 編譯器版本) CUDA 驅動版本&#xff1a; CUDA 12.3 (nvidia-smi 驅動版本) 解決方法&#xff1a; 驅動版本下載參考&#xff1a;Your connected workspace for wiki…

計算機組成原理實驗(7) 堆指令部件模塊實驗

實驗七 堆指令部件模塊實驗 一、實驗目的 1、掌握指令部件的組成方式。 2、熟悉指令寄存器的打入操作&#xff0c;PC計數器的設置和加1操作&#xff0c;理解跳轉指令的實現過程。 二、實驗要求 按照實驗步驟完成實驗項目&#xff0c;掌握數據打入指令寄存器IR1、PC計數器的…

2022 年 6 月大學英語四級考試真題(第 2 套)——閱讀版——仔細閱讀題

&#x1f3e0;個人主頁&#xff1a;fo安方的博客? &#x1f482;個人簡歷&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大學MBA在讀&#xff0c;也考取過HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等證書。&#x1f433; &…

磁盤文件系統

磁盤文件系統 一、磁盤結構1.1 認識一下基礎的硬件設備以及真實的機房環境1.2 磁盤物理結構與存儲結構1、磁盤物理結構2、磁盤的存儲結構3、CHS地址定位4、磁盤的邏輯結構&#xff08;LBA&#xff09;5 磁盤真實過程5 CHS && LBA地址 二、理解分區、格式化1 引?"…

基于LangChain 實現 Advanced RAG-后檢索優化(下)-上下文壓縮與過濾

摘要 Advanced RAG 的后檢索優化&#xff0c;是指在檢索環節完成后、最終響應生成前&#xff0c;通過一系列策略與技術對檢索結果進行深度處理&#xff0c;旨在顯著提升生成內容的相關性與質量。在這些優化手段中&#xff0c;上文壓縮與過濾技術是提升檢索結果質量的重要手段。…

為什么 Vite 速度比 Webpack 快?

一、webpack會先進行編譯&#xff0c;再運行&#xff0c;vite會直接啟動&#xff0c;再按需編譯文件。 首先看兩張圖&#xff0c;可以清晰的看到&#xff0c;上面的圖是webpack編譯過的&#xff0c;而下面的圖是vite直接使用工程內文件。 二、區別于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概覽二、優先級與運算順序三、各類操作符的實例 一、操作符概覽 操作符&#xff08;運算符&#xff09;的本質是函數的簡記法 操作符不能脫離與它關聯的數據類型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//輸出1double a 5.0; double b…