標題: 51單片機通過串口控制LED [打印本頁]
作者: zhang1314hong 時間: 2018-11-23 00:02
標題: 51單片機通過串口控制LED
通過串口助手控制led,還有加了蜂鳴器,也有響聲,不過不是太大,一點學習,希望大家多指教。
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
sbit beep=P1^5;
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函數名 :UsartInit()
* 函數功能 :設置串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //設置為工作方式1
TMOD=0X20; //設置計數器工作方式2
PCON=0X80; //波特率加倍
TH1=0X30; //計數器初始值設置,注意波特率是300的
TL1=0X30;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
UsartInit(); // 串口初始化
while(1);
}
/*******************************************************************************
* 函數名 : Usart() interrupt 4
* 函數功能 : 串口通信中斷函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void Usart() interrupt 4
{
u8m;
m=SBUF;
beep=m;
beep=~beep;
delay(10);
P2=m;
RI= 0;//清除接收中斷標志位
SBUF=m;//將接收到的數據放入到發送寄存器
while(!TI); //等待發送數據完成
TI=0;
}
1.png (37.81 KB, 下載次數: 76)
下載附件
2018-11-22 23:35 上傳
1:如果輸入fe,那么P2口p2.0就亮,如果輸入ff,p2.0就滅,如果想有閃爍,就輸入ff fe ff,然后在定時發送那里有多長時間一次,我們自己設置,然后勾選,就會看到閃爍的led燈。
2:輸入0011就會有響聲,可以調節發送的次數,聲音也會變化。
3:流水燈,點開擴展,會看到多條字符串定義,依次輸入之后,點自動循環發送,就會出現流水燈,可以自己設置時間。
2.png (14.15 KB, 下載次數: 70)
下載附件
2018-11-22 23:58 上傳
作者: wxxl 時間: 2018-11-23 12:19
u8m; 這是什么意思?
作者: 13976778401 時間: 2018-11-23 15:01
估計是樓主忘了u8和m之間空格了
作者: 關外螻蟻 時間: 2019-12-6 15:17
樓主漏了個空格,u8 m 相當于unsigned char m
作者: 小屁歪歪 時間: 2019-12-14 14:07
我這里為什么不能實現串口控制
作者: zcg888 時間: 2019-12-14 23:09
學習一下,謝謝
作者: zijun 時間: 2020-4-16 20:50
貌似并沒有效果
作者: xhw3 時間: 2020-4-17 08:42
求電路
作者: wetzhy 時間: 2020-6-1 13:04
為啥我的不管,愁死我了
作者: zhaobolove 時間: 2020-10-12 16:25
中斷里面加延時??? 這樣 還敢連續PC發3個數據? 數據不會丟失的?
而且 中斷里面 還有有發送的, 不知道 發送也會觸發這個中斷嗎? 我的天, 這樣會不會亂套哦??
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |