久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
15w204單片機芯片 我想用這個芯按鍵控制串口發!發數據時讓某個引腳拉低發完后再拉高
[打印本頁]
作者:
gaof
時間:
2023-2-10 21:21
標題:
15w204單片機芯片 我想用這個芯按鍵控制串口發!發數據時讓某個引腳拉低發完后再拉高
我想用這個芯按鍵控制串口發!發數據時讓某個引腳拉低發完后再拉高,不需要接受那位大神幫忙看看
作者:
ssk7793
時間:
2023-2-11 17:57
那就在發送成功的代碼下面寫拉低的IO,延時N秒后在拉高
作者:
lkc8210
時間:
2023-2-11 23:02
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC15F4K60S4 系列 定時器1用作串口1的波特率發生器舉例------------*/
/* 如果要在程序中使用此代碼,請在程序中注明使用了STC的資料及程序 */
/* 如果要在文章中應用此代碼,請在文章中注明使用了STC的資料及程序 */
/*---------------------------------------------------------------------*/
//本示例在Keil開發環境下請選擇Intel的8058芯片型號進行編譯
//若無特別說明,工作頻率一般為11.0592MHz
#include "reg51.h"
#include "intrins.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define FOSC 11059200L //系統頻率
#define BAUD 115200 //串口波特率
#define NONE_PARITY 0 //無校驗
#define ODD_PARITY 1 //奇校驗
#define EVEN_PARITY 2 //偶校驗
#define MARK_PARITY 3 //標記校驗
#define SPACE_PARITY 4 //空白校驗
#define PARITYBIT NONE_PARITY //定義校驗位
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
sfr AUXR = 0x8e; //輔助寄存器
sfr P_SW1 = 0xA2; //外設功能切換寄存器1
#define S1_S0 0x40 //P_SW1.6
#define S1_S1 0x80 //P_SW1.7
sbit P22 = P2^2;
bit busy;
void SendData(BYTE dat);
void SendString(char *s);
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
ACC = P_SW1;
ACC &= ~(S1_S0 | S1_S1); //S1_S0=0 S1_S1=0
P_SW1 = ACC; //(P3.0/RxD, P3.1/TxD)
// ACC = P_SW1;
// ACC &= ~(S1_S0 | S1_S1); //S1_S0=1 S1_S1=0
// ACC |= S1_S0; //(P3.6/RxD_2, P3.7/TxD_2)
// P_SW1 = ACC;
//
// ACC = P_SW1;
// ACC &= ~(S1_S0 | S1_S1); //S1_S0=0 S1_S1=1
// ACC |= S1_S1; //(P1.6/RxD_3, P1.7/TxD_3)
// P_SW1 = ACC;
#if (PARITYBIT == NONE_PARITY)
SCON = 0x50; //8位可變波特率
#elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY)
SCON = 0xda; //9位可變波特率,校驗位初始為1
#elif (PARITYBIT == SPACE_PARITY)
SCON = 0xd2; //9位可變波特率,校驗位初始為0
#endif
AUXR = 0x40; //定時器1為1T模式
TMOD = 0x20; //定時器1為模式2(8位自動重載)
TL1 = (256 - (FOSC/32/BAUD)); //設置波特率重裝值
TH1 = (256 - (FOSC/32/BAUD));
TR1 = 1; //定時器1開始工作
ES = 1; //使能串口中斷
EA = 1;
SendString("STC15F2K60S2\r\nUart Test !\r\n");
while(1);
}
/*----------------------------
UART 中斷服務程序
-----------------------------*/
void Uart() interrupt 4
{
if (RI)
{
RI = 0; //清除RI位
P0 = SBUF; //P0顯示串口數據
P22 = RB8; //P2.2顯示校驗位
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙標志
}
}
/*----------------------------
發送串口數據
----------------------------*/
void SendData(BYTE dat)
{
while (busy); //等待前面的數據發送完成
ACC = dat; //獲取校驗位P (PSW.0)
if (P) //根據P來設置校驗位
{
#if (PARITYBIT == ODD_PARITY)
TB8 = 0; //設置校驗位為0
#elif (PARITYBIT == EVEN_PARITY)
TB8 = 1; //設置校驗位為1
#endif
}
else
{
#if (PARITYBIT == ODD_PARITY)
TB8 = 1; //設置校驗位為1
#elif (PARITYBIT == EVEN_PARITY)
TB8 = 0; //設置校驗位為0
#endif
}
busy = 1;
SBUF = ACC; //寫數據到UART數據寄存器
}
/*----------------------------
發送字符串
----------------------------*/
void SendString(char *s)
{
while (*s) //檢測字符串結束標志
{
SendData(*s++); //發送當前字符
}
}
復制代碼
作者:
coody_sz
時間:
2023-2-12 11:20
IO拉低;
發數據;
IO拉高;
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久综合久久综合久久
|
亚洲精品一二三区
|
成人免费观看男女羞羞视频
|
国产精品成人一区二区
|
精久久
|
日韩一二区在线观看
|
中文字幕精品一区二区三区精品
|
欧美一级二级视频
|
国产精品久久免费观看
|
国产精品久久久久久久模特
|
国产一区二区三区在线看
|
妹子干综合
|
夜夜操操操
|
亚洲日本乱码在线观看
|
久久亚洲综合
|
国产原创在线观看
|
特级毛片www
|
色视频网站免费
|
香蕉视频91
|
国产精品一卡二卡三卡
|
国产午夜精品久久久久免费视高清
|
久久国产精品偷
|
欧美精品一区二区三区四区五区
|
国产一区二区久久
|
中文字幕人成乱码在线观看
|
亚洲国产一区二区三区
|
国产精品久久久99
|
国产h视频
|
性一交一乱一伦视频免费观看
|
国产成人啪免费观看软件
|
亚洲精品在线免费
|
国产精品久久久久久久久久久久久
|
久久99精品国产
|
看av网址
|
粉嫩国产精品一区二区在线观看
|
欧洲精品码一区二区三区免费看
|
欧美久久一区二区三区
|
久久com
|
久久成人av电影
|
成人国产精品久久久
|
久久精品一区二区三区四区
|