欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 基于51單片機的串口控制led燈的亮滅源程序 [打印本頁]

作者: 白的一匹    時間: 2020-7-15 18:26
標題: 基于51單片機的串口控制led燈的亮滅源程序
/*注意設置波特率為4800,向串口不斷輸入0,便可實現led的亮滅*/
#include "reg52.h"    //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;   //對數據類型進行聲明定義
typedef unsigned char u8;

sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
/*******************************************************************************
* 函數名         :UsartInit()
* 函數功能     :設置串口
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50;   //設置為工作方式1
TMOD=0X20;   //設置計數器工作方式2
PCON=0X80;   //波特率加倍
TH1=0XF4;    //計數器初始值設置,注意波特率是4800的
TL1=0XF4;
ES=1;      //打開接收中斷
EA=1;      //打開總中斷
TR1=1;     //打開計數器
}
/*******************************************************************************
* 函 數 名       : main
* 函數功能   : 主函數
* 輸    入       : 無
* 輸    出      : 無
*******************************************************************************/
void main()
{
UsartInit();  // 串口初始化
while(1);  
}
/*******************************************************************************
* 函數名         : Usart() interrupt 4
* 函數功能    : 串口通信中斷函數
* 輸入           : 無
* 輸出           : 無
*******************************************************************************/
void Usart() interrupt 4
{
u8 receiveData,i;
if(SBUF=='0')
  led0=~led0;
receiveData=SBUF;//出去接收到的數據
RI = 0;//清除接收中斷標志位
SBUF=receiveData;//將接收到的數據放入到發送寄存器
while(!TI);    //等待發送數據完成
TI=0;       //清除發送完成標志位
}

串口控制led.zip

1.06 KB, 下載次數: 35, 下載積分: 黑幣 -5


作者: aking991    時間: 2020-7-16 08:22
是初學者嗎?這種程序只適合測試串口接收是否能接收到數據,但如果用協義進行通訊呢?要學會用協義去通訊執行才有意義,不然也只能是作為測試用罷了
作者: 白的一匹    時間: 2020-7-16 15:17
aking991 發表于 2020-7-16 08:22
是初學者嗎?這種程序只適合測試串口接收是否能接收到數據,但如果用協義進行通訊呢?要學會用協義去通訊執 ...

剛開始學,小白,不懂協議
作者: 咩咩咩@dxy    時間: 2020-8-2 15:45
還是發送不成功哎




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1