1、C51單片機(STC8G2K64S4)串口實驗

一、串口1接線圖

1、下面是單片機外接電路圖,P30,P31分別用于RXD和TXD功能引腳

2、我們來查看單片機手冊

串口1需要設置的寄存器

串口1的功能腳配置選擇位,看電路圖選擇的是P3.0,P3.1。

3、串口1:SCON控制寄存器

設置為0x50:0101 0000。(SCON=0x50)

4、數據寄存器

5、電源管理寄存器

6、輔助寄存器1使用

AUXR |= 0x01;//串口1選擇定時器2為波特率發生器

AUXR |= 0x04;//定時器2時鐘為Fosc,即1T

AUXR |= 0x10;//啟動定時器2

7、串口波特率的計算公式

定時器2重載值:65536-35000000/(4 * 115200) = 0xFFB4。

7、定時器2的設置

特別注意在使用串口時,這個需要設置為35.0MHZ。否則串口調試助手不能正常顯示。

二、串口1代碼

#include "uart.h"
#include "delay.h"
void Uart_Init()
{SCON = 0x50;//模式1 8位數據 可變波特率AUXR |= 0x01;AUXR |= 0x04;T2H = 0xFF;T2L = 0xB4;AUXR |= 0x10;ES = 1;//打開串口中斷EA = 1;
}void Uart_SendByte(unsigned char byte)
{SBUF = byte;
}void Uart_SendDat(unsigned char *dat)
{while(*dat != '\0'){Uart_SendByte(*dat);dat++;Delay_ms(50);}
}

#include "delay.h"//延時1us
void Delay1us()
{unsigned char i;_nop_();_nop_();i = 9;while(--i);
}//延時10us
void Delay10us()
{unsigned char i;_nop_();_nop_();i = 114;while(--i);
}//延時1ms
void Delay1ms()
{unsigned char i,j;_nop_();_nop_();i = 46;j = 113;do{while(--j);}while(--i);
}void Delay_ms(unsigned int ms)
{unsigned int i = 0;for(i = 0;i < ms;i++){Delay1ms();}
}
#include "stc8g.h"
#include "uart.h"
#include "delay.h"sbit LED_R = P0^5;
sbit LED_Y = P0^6;
sbit LED_G = P0^7;unsigned char uartRec;void IO_Init()
{P_SW1= 0x00;//S1_S P3.0 P3.1P0M0 = 0x00;P0M1 = 0x00;P1M0 = 0x00;P1M1 = 0x00;P2M0 = 0x00;P2M1 = 0x00;P3M0 = 0x00;P3M1 = 0x00;P4M0 = 0x00;P4M1 = 0x00;P5M0 = 0x00;P5M1 = 0x00;
}void main()
{IO_Init();Uart_Init();//串口初始化while(1){Uart_SendDat("sdhak");}
}void Uart_Isr() interrupt 4
{if(TI == 1){TI = 0;LED_R = !LED_R;}if(RI == 1){uartRec = SBUF;RI = 0;LED_Y = !LED_Y;SBUF = uartRec;}
}

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

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

相關文章

3PL EDI:SA Piper Logistics EDI需求分析

SA Piper Logistics成立于2005年&#xff0c;是一家專注于全球供應鏈管理的第三方物流服務商&#xff08;3PL&#xff09;&#xff0c;總部位于美國芝加哥。公司以“優化物流效率&#xff0c;重塑供應鏈價值”為使命&#xff0c;提供倉儲管理、運輸規劃、訂單履行及跨境清關等一…

vscode正則表達式使用

小標題 ^\d.\d.\d\s.*$ ^表示匹配字符串的開頭。\d\.\d\.\d表示匹配一到多個數字&#xff0c;接著一個小數點&#xff0c;再接著一到多個數字&#xff0c;然后又一個小數點和一到多個數字&#xff0c;用來匹配類似 “2.1.1” 這樣的標題號部分。\s表示匹配一個空格。.*表示匹配…

力扣.旋轉矩陣Ⅱ

59. 螺旋矩陣 II - 力扣&#xff08;LeetCode&#xff09; 代碼區&#xff1a; class Solution {const int MAX25; public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> ans;vector<int> hang;int len_nn;int arry[25][25]…

軟件工程面試題(十)

1、OSI七層模型tcp四層模型是什么樣的 OSI七層參考模型 :物理層 、數據鏈路層 、網絡層 、傳輸層、應用層、會話層、表示層 TCP/IP:第一層網絡接口層第二層 第二層??網間層 第三層??傳輸層 第四層??應用層 2、JAVA測試模式(ZZ): 模式(一) Main 模式 模式(二)…

淘寶雙十一大促監控系統開發:實時追蹤爆品數據與流量波動

以下是開發一個淘寶雙十一大促監控系統&#xff0c;以實時追蹤爆品數據與流量波動的詳細步驟及示例代碼&#xff1a; 實現思路 數據獲取&#xff1a;利用淘寶 API 或者爬蟲技術&#xff0c;獲取商品的銷售數據、瀏覽量等信息。數據存儲&#xff1a;將獲取到的數據存儲到數據庫…

高并發金融系統,“可觀測-可追溯-可回滾“的閉環審計體系

一句話總結 在高并發金融系統中&#xff0c;審計方案設計需平衡"觀測粒度"與"系統損耗"&#xff0c;通過雙AOP實現非侵入式采集&#xff0c;三表機制保障操作原子性&#xff0c;最終形成"可觀測-可追溯-可回滾"的閉環體系。 業務痛點與需求 在…

Docker 的實質作用是什么

Docker 的實質作用是什么 目錄 Docker 的實質作用是什么**1. Docker 的實質作用****2. 為什么使用 Docker?****(1)解決環境一致性問題****(2)提升資源利用率****(3)簡化部署與擴展****(4)加速開發與協作****3. 舉例說明****總結**Docker 的實質是容器化平臺,核心作用…

【測試】每日3道面試題 3/29

每日更新&#xff0c;建議關注收藏點贊。 自動化測試中的PO模式 page object model POM 是一個設計模式&#xff0c;在自動化測試中將頁面元素和操作抽象為對象。具體是將每個頁面或頁面一部分封裝為一個類&#xff0c;包含頁面元素和相關操作。 PO 模式不僅適用于 Web 應用的自…

ISIS-4 LSP計算

上一章我們介紹了ISIS的LSDB的形成以及相關實驗 這一章我們來介紹ISIS是怎樣來計算我們的路由的 1、LSDB數據庫 之前我們在ISIS概述里面已經提及到Level-1的路由器設備只會維護Level-1的LSDB Level1-2會維護Level-1以及Level-2的LSDB,Level-2只會維護Level-2的LSDB 2、ATT置…

第7期:生成式AI倫理邊界——當技術撞上道德與法律的防火墻

現實版"黑鏡"事件 某直播平臺主播使用AI換臉技術冒充明星帶貨&#xff0c;當晚銷售額破億。三天后收到法院傳票——這不僅侵犯肖像權&#xff0c;生成的虛假宣傳內容還引發大規模消費投訴。這個案例讓行業意識到&#xff1a;沒有倫理約束的AI&#xff0c;就像沒有剎車…

Vue2 使用 v-if、v-else、v-else-if、v-show 以及 v-has 自定義指令實現條件渲染

提示&#xff1a;渲染就是顯示 文章目錄 前言v-if 的基礎用法v-elsev-else-ifv-show 和 v-if 對比自定義指令 v-hasv-if 和 v-has 結合使用場景完整示例補充說明 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 在 Vue2 中&#xff0c;可以通過 v-if 和…

【項目合集】只能xx養殖系統,STM32、esp8266、OLED屏幕、dht11、光敏、水位、加熱、風扇

硬件 STM32 主控ESP8266 WIIF 模塊煙霧傳感器dht11 溫濕度傳感器光敏傳傳感器&#xff08;偏暗、亮兩種狀態&#xff09;水位檢測OLED 顯示當前狀態&#xff08;環境數據&#xff09;加熱模塊&#xff08;燈代替&#xff09;風扇模塊電源模塊繼電器&#xff08;控制風扇&#…

Java多線程與高并發專題——Condition 和 wait/notify的關系

引入 上一篇關于Condition&#xff0c;我們對Condition有了進一步了解&#xff0c;在之前生產/消費者模式一文&#xff0c;我們講過如何用 Condition 和 wait/notify 來實現生產者/消費者模式&#xff0c;其中的精髓就在于用Condition 和 wait/notify 來實現簡易版阻塞隊列&am…

29_項目

目錄 http.js 1、先注冊賬號 register.html 2、再登錄 login.html 3、首頁 index.html 4 詳情 details.html cart.html css index.css register.css details.css 演示 進階 http.js let baseURL "http://localhost:8888"; let resgiterApi baseURL &…

Next.js 項目生產構建優化

Next.js 項目生產構建優化的完整教程&#xff0c;涵蓋配置、工具鏈和性能調優技巧&#xff0c;助你顯著加速 npm run build&#xff1a; 注&#xff1a;學習階段請先測試環境使用&#xff01; 文章目錄 [toc]一、基礎優化1. 確保使用最新版本2. 清理無用依賴和代碼3. 配置 nex…

【嵌入式學習3】多任務編程

目錄 1、多任務 并發&#xff1a;在一段時間內交替去執行任務 并行&#xff1a; 2、線程 進程與線程 守護線程 1、多任務 在同一時間內執行多個任務&#xff0c;多任務分為并發和并行兩種形式 并發&#xff1a;在一段時間內交替去執行任務 軟件1執行0.01秒&#xff0c;切…

鏈路聚合(Link Aggregation)

目錄 一. 鏈路聚合概述 1. 基本概念 2. 實現條件 3. 成員接口和成員鏈路 二. 鏈路聚合模式 1. 手工模式 2. LACP模式 三. 負載分擔 1. 基于數據包的負載分擔 2. 基于數據流的負載分擔 一. 鏈路聚合概述 1. 基本概念 鏈路聚合&#xff08;Link Aggregation&#xff…

QT圖片輪播器(QT實操學習2)

1.項目架構 1.UI界面 2.widget.h? #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#define TIMEOUT 1 * 1000 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent n…

【HTML5】02-列表 + 表格 + 表單

本文介紹 列表、表格、表單的具體使用。 目錄 1. 列表 1.1 無序列表 1.2 有序列表 1.3 定義列表 2. 表格 2.1 基本使用 2.2 表格結構標簽 2.3 合并單元格 3. 表單 3.1 input標簽 3.2 input 標簽占位文本 3.3 單選框 3.4 上傳文件 3.5 多選框 3.6 下拉菜單 3.7…

【數據結構】導航

【數據結構】-CSDN博客 【數據結構】next數組、nextval數組-CSDN博客