單片機學習筆記.根據芯片數據手冊寫驅動程序(這里使用的是普中開發版,以DS1302為例)

硬件原理圖部分:?

?

?VCC2:是主電源

VCC1:是備用電源,此處沒有使用VCC1


?查芯片數據手冊的網站:

ALLDATASHEETCN.COM - 電子元件和半導體及其他半導體的數據表搜索網站。https://www.alldatasheetcn.com/


?

?1.由原理圖可知對應引腳,所以先在軟件里定義其對應引腳:

sbit DS1302_SCLK=P3^6; //串行時鐘
sbit DS1302_IO=P3^4;//數據輸入/輸出
sbit DS1302_CE=P3^5;//芯片使能

?2.由時序圖可知在開始階段無論發送還是接收CE和SCLK都是低電平

void DS1302_Init()
{DS1302_CE=0;DS1302_SCLK=0;
}

?命令字地址:

3.由時序圖寫DS1302發送一個字節 :

??寫入時的時序圖的分析:

?

?這里時鐘線這里拉高直接拉低,沒有加延時,是因為DS1302是納秒級,而單片機是微秒,不然需要加延時函數

void DS1302_WriteByte(unsigned char Command,Data)
{unsigned char i;DS1302_CE=1;
//	DS1302_IO=(Command&0x01);//0000 0001 取cmd的最低位
//	DS1302_SCLK=1;//單片機需要加延時看數據手冊
//	DS1302_SCLK=0;
//	DS1302_IO=(Command&0x02);//0000 0010 取cmd的次低位,
//	DS1302_SCLK=1;
//	DS1302_SCLK=0;//找到規律,for循環左移8次就可以存入所有位for(i=0;i<8;i++)//根據數據手冊的時序圖來寫{DS1302_IO=(Command&(0x01<<i));DS1302_SCLK=1;
//這里,沒有加延時是因為DS1302是納秒級,而單片機是微秒,不然需要加延時函數DS1302_SCLK=0;}for(i=0;i<8;i++){DS1302_IO=(Data&(0x01<<i));DS1302_SCLK=1;DS1302_SCLK=0;}DS1302_CE=0;
}

4.由時序圖寫DS1302讀取一個字節 :

unsigned char DS1302_ReadByte(unsigned char Command)
{unsigned char i,Data=0x00;DS1302_CE=1;for(i=0;i<8;i++)//根據數據手冊的時序圖來寫{DS1302_IO=(Command&(0x01<<i));DS1302_SCLK=0;DS1302_SCLK=1;}for(i=0;i<8;i++){DS1302_SCLK=1;DS1302_SCLK=0;if(DS1302_IO){Data|=(0x01<<i);}}DS1302_CE=0;DS1302_IO=0;return Data;
//	DS1302_SCLK=0;
//	DS1302_SCLK=1;
//	if(DS1302_IO){Data|=0x02;}
//	DS1302_SCLK=0;
//	DS1302_SCLK=1;
//	if(DS1302_IO){Data|=0x04;}}

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

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

相關文章

Capture One24下載與保姆級安裝教程!

軟件下載 軟件名稱&#xff1a;Capture One24 軟件語言&#xff1a;簡體中文 軟件大小&#xff1a;1.06G 系統要求&#xff1a;Windows7或更高&#xff0c;32/64位操作系統 硬件要求&#xff1a;CPU2.5GHz&#xff0c;RAM4G或更高 下載通道丨下載&#xff1a;https://too…

微信小程序(數據庫)

const dbwx.cloud.database()//連接數據庫db.collection("test").doc("b69f67c0626fac9000e123fc1ff07a42&#xff08;為要查詢數據的id&#xff09;").get({success:res>{console.log(res)}})或getData(){db.collection("test").doc("&…

Apache CXF 漏洞曝光:存在拒絕服務與數據泄露雙重風險

Apache軟件基金會近日披露了一個影響多個Apache CXF版本的安全漏洞&#xff08;CVE-2025-48795&#xff09;。Apache CXF是開發者廣泛使用的開源Web服務框架&#xff0c;用于構建基于SOAP和REST的應用程序。漏洞雙重威脅該漏洞具有雙重危害性&#xff1a;一方面可能通過內存耗盡…

Android 應用自動更新:從理論到實戰的硬核指南

目錄 1. 自動更新的核心邏輯:為什么它對用戶體驗至關重要? 自動更新的本質 為什么它如此重要? 2. 版本檢測:如何優雅地發現“新大陸”? 設計版本檢測的邏輯 實現版本檢測的 API 請求 用戶體驗優化 3. 下載新版本:穩妥地獲取安裝包 下載的兩種方式 注意事項 用戶…

每日面試題05:ArrayList和LinkedList的底層原理

ArrayList與LinkedList深度解析&#xff1a;從底層原理到實戰選擇在Java的List接口實現中&#xff0c;ArrayList和LinkedList是最常用的兩種選擇。面試中“它們的區別”幾乎是必問題&#xff0c;但僅僅停留在“數組vs鏈表”的層面顯然不夠。本文將從??底層數據結構、內存布局…

python的慈善捐贈平臺管理信息系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 摘要 本文…

三十二、【核心功能改造】數據驅動:重構儀表盤與關鍵指標可視化

三十二、【核心功能改造】數據驅動:重構儀表盤與關鍵指標可視化 前言準備工作第一部分:后端實現 - 統計 API1. 創建 `DashboardStatsView`2. 注冊統計 API 路由3. 后端初步測試第二部分:前端實現 - 重構儀表盤頁面1. 創建 `api/dashboard.ts` API 服務2. 重構 `HomeView.vue…

神經網絡與深度學習Python入門

一、神經網絡基礎 1. 神經元模型 在神經網絡中&#xff0c;最基本的單元是神經元&#xff08;Neuron&#xff09;&#xff0c;也稱為節點或單元。它模擬了生物神經系統中的神經元行為。一個典型的神經元模型包含多個輸入&#xff08;x1,x2,…,xnx_1, x_2, \ldots, x_nx1?,x2?…

Android System WebView:Android生態的核心組件

在Android生態系統中&#xff0c;Android System WebView&#xff08;簡稱WebView&#xff09;扮演著至關重要的角色。它是Chrome瀏覽器的內核&#xff0c;為Android設備提供了強大的網頁瀏覽和Web內容展示功能。無論是日常瀏覽網頁、使用基于Web的應用程序&#xff0c;還是進行…

Element Plus和Ant Design Vue深度對比分析與選型指南

在 Vue3生態中&#xff0c;Element Plus和Ant Design Vue&#xff08;以下簡稱 AntD Vue&#xff09;是兩款最主流的 UI 組件庫。它們分別脫胎于 Element UI&#xff08;Vue 2 版本&#xff09;和 Ant Design&#xff08;React 生態&#xff09;&#xff0c;經過多年迭代已成為…

AJAX 開發中的注意點

關鍵詞&#xff1a;AJAX、異步請求、前端開發、跨域、錯誤處理、安全、性能優化 ? 引言 在現代 Web 應用中&#xff0c;AJAX 是實現前后端數據交互的重要手段。然而&#xff0c;在實際開發過程中&#xff0c;如果不注意一些常見問題&#xff0c;可能會導致應用出現安全性漏洞…

類之間的縱向關系——繼承

繼承定義&#xff1a;被繼承的類叫做基類&#xff08;父類&#xff09;&#xff0c;繼承的類叫派生類&#xff08;子類&#xff09;&#xff0c;在派生類類名后面加&#xff1a; 繼承方式 基類class CFather{}; class CSon:public CFather{};父類(基類)與子類(派生類)之間的關系…

bytetrack漏檢補齊

bytetrack漏檢補齊1.人流慢速運動&#xff0c;跟蹤效果比較好&#xff0c;偶爾有漏檢&#xff0c;跟蹤可以自動補齊。2.快速運動&#xff0c;頻繁遮擋&#xff0c;效果可能不好*如果漏檢&#xff0c;倒著跟蹤&#xff0c;把丟失的檢測框拷貝出來&#xff0c;保留進行跟蹤。有時…

安裝Keycloak并啟動服務(macOS)

前提&#xff1a;電腦已經安裝Java 17 1、下載Keycloak 2、下載完后解壓縮&#xff0c;使用文本編輯器修改配置文件&#xff08;keycloak/conf/keycloak.conf&#xff09; # Basic settings for running in production. Change accordingly before deploying the server. # …

汽車動力轉向器落錘沖擊試驗臺

落錘沖擊試驗臺主要用于扣件減振量的測試&#xff0c;采用電動錨鏈提錘結構&#xff0c;控制精度高&#xff0c;定位準確。采用伺服電機減速機驅動&#xff0c;避免提錘加速和到位減速時的沖擊&#xff0c;具有多重安全保護功能&#xff0c;防止二次沖擊裝置。主機框架采用上下…

Linux系統集群部署模塊之Keepalived雙機熱備

目錄 概述 一、keepalived安裝 二、配置文件 三、 其他配置項說明 四、名詞解釋 五、高階使用 1、介紹 2、keepalived主要作用 3、工作在三層、四層和七層原理 4、健康狀態檢測方式 4.1 HTTP服務狀態檢測 4.2 TCP端口狀態檢測&#xff08;使用TCP端口服務基本上都可…

TDengine 使用最佳實踐(1)

目錄 數據建模 單列模型 多列模型 分庫分表 邊界限制 資源規劃 CPU 主頻 CPU 核數 內存分類 內存計算 CPU 內存比例 磁盤 網絡 下一篇 TDengine 使用最佳實踐&#xff08;1&#xff09; 關于 TDengine TDengine 是一款專為物聯網、工業互聯網等場景設計并優化的大數據平臺&am…

Java行為型模式---責任鏈模式

責任鏈模式基礎概念責任鏈模式&#xff08;Chain of Responsibility Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是將請求的發送者和接收者解耦&#xff0c;使多個對象都有機會處理請求。這些對象連接成一條鏈&#xff0c;請求沿著鏈傳遞&#xff0c;直到有…

嵌入式學習筆記- 結構體名字被賦值時是整體內容賦值

結構體變量名被賦值時&#xff0c;?不是賦值的地址&#xff0c;而是執行對整個結構體內容的復制&#xff08;值拷貝&#xff09;?直接賦值是成員級復制? 當使用 s2 s1; 形式的賦值時&#xff08;其中 s1 和 s2 是同類型結構體變量&#xff09;&#xff0c;系統會?逐成員復…

基于UDP/IP網絡游戲加速高級擁塞控制算法(示意:一)

/* ███████╗ 基于UDP/IP網絡游戲加速高級擁塞控制算法&#xff08;示意&#xff1a;一&#xff09; ███████╗ */#pragma once#include <iostream> #include <vector> #include <deque> #include <cmath> #include <algorithm> …