藍橋杯大模板

init.c

void System_Init()
{P0 = 0x00;   //關閉蜂鳴器和繼電器P2 = P2 & 0x1f | 0xa0;P2 &= 0x1f;P0 = 0x00;   //關閉LEDP2 = P2 & 0x1f | 0x80;P2 &= 0x1f;
}

led.c

#include <LED.H>idata  unsigned char temp_1 = 0x00;
idata  unsigned char temp_old_1 = 0xff;void Led_Disp(unsigned char *ucLed)
{temp_1=0x00;temp_1 = (ucLed[0] << 0) | (ucLed[1] << 1) | (ucLed[2] << 2) | (ucLed[3] << 3) |(ucLed[4] << 4) | (ucLed[5] << 5) | (ucLed[6] << 6) | (ucLed[7] << 7);if (temp_1 != temp_old_1){P0 = ~temp_1;P2 = P2 & 0x1f | 0x80;P2 &= 0x1f;temp_old_1 = temp_1;}
}

seg.c

#include <Seg.H>unsigned char Seg_dula[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
unsigned char Seg_wela[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};void Seg_Dis(unsigned char wela, unsigned char dula,unsigned char piont)
{P0 = 0xff;P2 = P2 & 0x1f | 0xe0;P2 &= 0x1f;P0 = Seg_wela[wela];P2 = P2 & 0x1f | 0xc0;P2 &= 0x1f;P0 = Seg_dula[dula];if(piont) P0 &= 0x7f;P2 = P2 & 0x1f | 0xe0;P2 &= 0x1f;}

key.c

#include <Key.H>unsigned char Key_Read()
{unsigned char temp = 0;P44 = 0;P42 = 1;P35 = 1;P34 = 1;if(P33 == 0) temp = 4;if(P32 == 0) temp = 5;if(P31 == 0) temp = 6;if(P30 == 0) temp = 7;P44 = 1;P42 = 0;P35 = 1;P34 = 1;if(P33 == 0) temp = 8;if(P32 == 0) temp = 9;if(P31 == 0) temp = 10;if(P30 == 0) temp = 11;P44 = 1;P42 = 1;P35 = 0;P34 = 1;if(P33 == 0) temp = 12;if(P32 == 0) temp = 13;if(P31 == 0) temp = 14;if(P30 == 0) temp = 15;P44 = 1;P42 = 1;P35 = 1;P34 = 0;if(P33 == 0) temp = 16;if(P32 == 0) temp = 17;if(P31 == 0) temp = 18;if(P30 == 0) temp = 19;return temp;
}

main

unsigned char Key_Slow_down;
unsigned char Seg_Slow_down;
unsigned char Key_Val, Key_Old, Key_Down, Key_Up;
unsigned char Seg_Pos;
unsigned char Seg_Buf[] = {10,10,10,10,10,10,10,10};
unsigned char Seg_Point[] = {0,0,0,0,0,0,0,0};
unsigned char ucLED[8] = {0,0,0,0,0,0,0,0};void Key_Proc()
{if(Key_Slow_down) return;Key_Slow_down = 1;Key_Val = Key_Read();Key_Down = Key_Val & (Key_Val ^ Key_Old);Key_Up = ~Key_Val & (Key_Val ^ Key_Old);Key_Old = Key_Val;}void Seg_Proc()
{if(Seg_Slow_down) return;Seg_Slow_down = 1;
}void LED_Proc()
{}void Timer0Init(void)		//0毫秒@12.000MHz
{AUXR &= 0x7F;		//定時器時鐘12T模式TMOD &= 0xF0;		//設置定時器模式TMOD |= 0x05;	TL0 = 0x00;		//設置定時初值TH0 = 0x00;		//設置定時初值TF0 = 0;		//清除TF0標志TR0 = 1;		//定時器0開始計時
}void Timer1Init(void)		//1毫秒@12.000MHz
{AUXR &= 0xBF;		//定時器時鐘12T模式TMOD &= 0x0F;		//設置定時器模式TL1 = 0x18;		//設置定時初值TH1 = 0xFC;		//設置定時初值TF1 = 0;		//清除TF1標志TR1 = 1;		//定時器1開始計時ET1 = 1;EA = 1;
}void Timer1Sever()  interrupt 3
{if(++Key_Slow_down == 10) Key_Slow_down = 0;if(++Seg_Slow_down == 100) Seg_Slow_down = 0;if(++Seg_Pos == 8) Seg_Pos = 0;Seg_Dis(Seg_Pos, Seg_Buf[Seg_Pos], Seg_Point[Seg_Pos]);Led_Disp(ucLED);}void main()
{System_Init();Timer0Init();Timer1Init();while(1){Key_Proc();Seg_Proc();LED_Proc();}
}

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

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

相關文章

通過HTTP協議實現Git免密操作的解決方案

工作中會遇到這樣的問題的。 通過HTTP協議實現Git免密操作的解決方案 方法一&#xff1a;啟用全局憑據存儲&#xff08;推薦&#xff09; 配置憑證存儲? 執行以下命令&#xff0c;讓Git永久保存賬號密碼&#xff08;首次操作后生效&#xff09;&#xff1a; git config --g…

Java常見面試問題

一.Liunx 二.Java基礎 1.final 2.static 3.與equals 三.Collection 1.LIst 2.Map 3.Stream 四、多線程 1.實現方法 2.線程池核心參數 3.應用場景 五、JVM 1.堆 2.棧 六、Spring 1.面向對象 2.IOC 3.AOP 七、Springboot 1.自動裝配 八、SpringCloud 1.Nacos 2.seata 3.ga…

【藍橋杯】第十六屆藍橋杯 JAVA B組記錄

試題 A: 逃離高塔 很簡單&#xff0c;簽到題&#xff0c;但是需要注意精度&#xff0c;用int會有溢出風險 答案&#xff1a;202 package lanqiao.t1;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrit…

PyTorch Tensor維度變換實戰:view/squeeze/expand/repeat全解析

本文從圖像數據處理、模型輸入適配等實際場景出發&#xff0c;系統講解PyTorch中view、squeeze、expand和repeat四大維度變換方法。通過代碼演示對比不同方法的適用性&#xff0c;助您掌握數據維度調整的核心技巧。 一、基礎維度操作方法 1. view&#xff1a;內存連續的形狀重…

Kubernetes nodeName Manual Scheduling practice (K8S節點名稱綁定以及手工調度)

Manual Scheduling 在 Kubernetes 中&#xff0c;手動調度框架允許您將 Pod 分配到特定節點&#xff0c;而無需依賴默認調度器。這對于測試、調試或處理特定工作負載非常有用。您可以通過在 Pod 的規范中設置 nodeName 字段來實現手動調度。以下是一個示例&#xff1a; apiVe…

即時編譯器(JIT)的編譯過程是什么?

1. 觸發編譯 JIT編譯的觸發基于熱點代碼檢測&#xff0c;主要通過兩種計數器&#xff1a; ? 方法調用計數器&#xff1a;統計方法被調用的次數&#xff08;默認閾值&#xff1a;C1為1,500次&#xff0c;C2為10,000次&#xff09;。 ? 回邊計數器&#xff1a;統計循環體的執行…

Java基礎:集合List、Map、Set(超詳細版)

集合體系概述 Collection常用方法 補充&#xff1a;addAll() Collection的遍歷方式 迭代器 增強for&#xff08;空集合可以&#xff0c;null不可以&#xff09; lambda 集合對象存儲對象原理 遍歷方式的區別 List集合 特點、特有方法 遍歷方式 &#xff08;同上&#xff09…

Elasticsearch 全面解析

Elasticsearch 全面解析 前言一、簡介核心特性應用場景 二、核心原理與架構設計1. 倒排索引&#xff08;Inverted Index&#xff09;2. 分片與副本機制&#xff08;Sharding & Replication&#xff09;3. 節點角色與集群管理 三、核心特點1. 靈活的查詢語言&#xff08;Que…

【2】k8s集群管理系列--包應用管理器之helm(Chart語法深入應用)

一、Chart模板&#xff1a;函數與管道 常用函數&#xff1a; ? quote&#xff1a;將值轉換為字符串&#xff0c;即加雙引號 ? default&#xff1a;設置默認值&#xff0c;如果獲取的值為空則為默認值 ? indent和nindent&#xff1a;縮進字符串 ? toYaml&#xff1a;引用一…

JVM 字節碼是如何存儲信息的?

JVM 字節碼是 Java 虛擬機 (JVM) 執行的指令集&#xff0c;它是一種與平臺無關的二進制格式&#xff0c;在任何支持 JVM 的平臺上都可運行的Java 程序。 字節碼存儲信息的方式&#xff0c;主要通過以下幾個關鍵組成部分和機制來實現&#xff1a; 1. 指令 (Opcodes) 和 操作數 …

基于51單片機語音實時采集系統

基于51單片機語音實時采集 &#xff08;程序&#xff0b;原理圖&#xff0b;PCB&#xff0b;設計報告&#xff09; 功能介紹 具體功能&#xff1a; 系統由STC89C52單片機ISD4004錄音芯片LM386功放模塊小喇叭LCD1602按鍵指示燈電源構成 1.可通過按鍵隨時選擇相應的錄音進行播…

關于 Java 預先編譯(AOT)技術的詳細說明,涵蓋 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及優缺點對比

以下是關于 Java 預先編譯&#xff08;AOT&#xff09;技術的詳細說明&#xff0c;涵蓋 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及優缺點對比&#xff1a; 1. 預先編譯&#xff08;AOT&#xff09;技術詳解 1.1 核心概念 AOT&#xff08;Ahead-of-Time&#xff09…

【ROS2】行為樹:BehaviorTree

1、簡介 與狀態機不同,行為樹強調執行動作,而不是狀態之間的轉換。 行為樹是可組合的。可以重復使用簡單的行為來構建復雜的行為。 在游戲領域,行為樹已經比較流行了。主要用于維護游戲角色的各種動作和狀態。 ROS2的導航框架Navigation2中引入了行為樹來組織機器人的工作流…

Centos7.9 升級內核,安裝RTX5880驅動

系統鏡像下載 https://vault.centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 系統安裝步驟省略 開始安裝顯卡驅動 遠程登錄查看內核 [root192 ~]# uname -a Linux 192.168.119.166 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x8…

多層感知機與全連接神經網絡關系解析

感知機&#xff08;Perceptron&#xff09;、多層感知機&#xff08;MLP&#xff0c;Multilayer Perceptron&#xff09;和全連接神經網絡&#xff08;FCNN&#xff0c;Fully Connected Neural Network&#xff09;是神經網絡發展過程中密切相關的概念&#xff0c;但它們有明確…

解析醫療器械三大文檔:DHF、DMR與DHR

醫療器械的 DHF、DMR 和 DHR 是質量管理體系&#xff08;QMS&#xff09;中的核心文件&#xff0c;貫穿產品全生命周期&#xff0c; 確保醫療器械的安全性、有效性和合規性。 一、三大文件的定義與法規依據 縮寫全稱法規依據&#xff08;以 FDA 為例&#xff09;核心目的DHF…

netty啟用websocket的壓縮機制

netty啟用websocket的壓縮機制 package com.aerotop.connector.websocket.base;import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.compression.JZlibDec…

可能存在特殊情況,比如控制臺顯示有延遲、緩沖問題等影響了顯示順序。

從控制臺輸出看&#xff0c;正常邏輯應是先執行 System.out.println(" 未處理異常演示 "); 輸出對應文本&#xff0c;再因 arr 為 null 訪問 length 觸發 NullPointerException 輸出異常信息。可能存在特殊情況&#xff0c;比如控制臺顯示有延遲、緩沖問題等影響…

第一節:React 基礎篇-React虛擬DOM原理及Diff算法優化策略

必考點&#xff1a;虛擬DOM樹對比&#xff08;同級比較、Key的作用、組件類型判斷&#xff09; 延伸&#xff1a;React 18中并發更新對Diff算法的影響 React虛擬DOM原理及Diff算法優化策略 虛擬DOM核心原理 概念&#xff1a; ? 虛擬DOM&#xff08;Virtual DOM&#xff09;…

Java spring mybatis面試題(200道),八股文

Java面試題 通過網盤分享的文件&#xff1a;面試題等2個文件 鏈接: https://pan.baidu.com/s/1Xw0PzkfAmL8uesYBvrW2-A?pwdpebt 提取碼: pebt mybatis相關 1、 什么是Mybatis&#xff1f; … 2 2、 Mybaits 的優點&#xff1a; … 2 3、 MyBatis 框架的缺點&#xff1a; ……