久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
通過串口控制流水燈流動和停止的程序,發送字符1后實現流水燈,但卻不能控制停止。
[打印本頁]
作者:
蓮蓬16
時間:
2018-9-29 21:15
標題:
通過串口控制流水燈流動和停止的程序,發送字符1后實現流水燈,但卻不能控制停止。
#include<reg52.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 n[]="01";
void UsartConfig();
void delay_ms(u8 ms);
void UsartConfig()
{
TMOD=0X20;
TH1=0XF3;
TL1=0XF3;
PCON=0X80;
SCON=0X50;
TR1=1;
ES=1;
ET1=0;
EA=1;
}
void UsartInterrupt() interrupt 4
{
u8 m;
u8 ReceiveData;
m=SBUF;
if(m==n[1])
{
P2=0xFE;
while(1)
{
P2=_crol_(P2,1);
delay_ms(150);
}
}
if(m==n[0])
{
P2=0XFF;
}
ReceiveData=SBUF; //將PC機緩沖器中的內容存入變量寄存器中
RI=0; //單片機接收完成后
SBUF=ReceiveData; //單片機接收完了的數據存到緩沖器中
while(!TI); //判斷是否發送完成
TI=0; //發送完成
}
void delay_ms(u8 ms)
{
u8 a,b;
for(;ms>0;ms--)
{
for(a=49;a>0;a--)
{
for(b=1;b>0;b--);
}
}
}
void main()
{
UsartConfig();
while(1);
}
作者:
冰純
時間:
2018-9-30 07:26
數組聲明不合法u8 n[]="01";改為u8 n[]={0,1};
作者:
HC6800-ES-V2.0
時間:
2018-9-30 08:11
串口中斷服務程序不對嘛。
這個程序進入流水燈后,就進入到死循環了,你以后的所有操作都無效啊。
建議:將控制的內容,放在主循環內,不要放在中斷程序中。這樣,就可以不用循環流水燈,而是if流水燈,通過中斷,隨時都可以停止的。
作者:
mrhan1992
時間:
2018-9-30 08:51
在UsartInterrupt函數中,有while的判斷,并且條件一直都是個真值,無法跳出該循環,一般情況下,不建議在中斷函數中做耗時比較長的操作。可以增加一個跑馬燈的函數,并且引入一個開關變量,在中斷中來改變這個變量,從而控制這個跑馬燈的函數執行效果。可以這樣試試看。
作者:
phang
時間:
2018-9-30 09:06
1,校驗用的數組 n[]="01"; 你是賦值字符串了,其實個人覺得直接賦值 十六進制數方便些。
2,應該是中斷函數有問題吧?中斷函數里怎么用while(1) ?? 沒試過這么用的。改一下看看
作者:
yousunny
時間:
2018-9-30 09:10
if(m==n[1])
{
P2=0xFE;
while(1)
{
P2=_crol_(P2,1);
delay_ms(150);
}
}
這里不改這個樣寫的。那個流水燈循環要放在主循環中。你串口下發的是標志位,要不然,就會進入死循環,后面再發的指令接受不到的
作者:
xhaity
時間:
2018-9-30 12:49
中斷里while循環是個死循環,不出來了
作者:
蓮蓬16
時間:
2018-10-6 15:19
phang 發表于 2018-9-30 09:06
1,校驗用的數組 n[]="01"; 你是賦值字符串了,其實個人覺得直接賦值 十六進制數方便些。
2,應該是中斷 ...
控制流水燈需要使用循環,我用在中斷里是有問題,請問該如何改啊?感謝感謝
作者:
dadiao
時間:
2018-10-12 12:11
我改了一下代碼,你試試。
unsigned char Uart_Command_Flag;//全局變量,指示接收到的命令
void UsartInterrupt() interrupt 4
{
u8 m;
// u8 ReceiveData;
m=SBUF;
if(m==n[1])
{
Uart_Command_Flag = 1;//置標志位
/* P2=0xFE;
while(1)
{
P2=_crol_(P2,1);
delay_ms(150);
} */
}
if(m==n[0])
{
Uart_Command_Flag = 0;//清標志位
// P2=0XFF;
}
ReceiveData=SBUF; //將PC機緩沖器中的內容存入變量寄存器中
RI=0; //單片機接收完成后
SBUF=ReceiveData; //單片機接收完了的數據存到緩沖器中
while(!TI); //判斷是否發送完成
TI=0; //發送完成
}
void main()
{
UsartConfig();
while(1)
if(1 == Uart_Command_Flag)
{
do{P2=0xFE;}while(0);
P2=_crol_(P2,1);
delay_ms(150);
}
else
P2=0XFF;
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩综合一区
|
亚洲一页
|
精品视频999
|
尤物视频在线免费观看
|
国产美女一区二区
|
欧美日韩国产传媒
|
日本欧美在线观看视频
|
特黄特色大片免费视频观看
|
懂色中文一区二区在线播放
|
98成人网
|
日韩在线观看中文字幕
|
久久狠狠
|
精品一区国产
|
久久久精
|
国外成人在线视频
|
午夜精品久久久久久久久久久久
|
网色
|
国产精品久久精品
|
精品国产一区二区久久
|
亚洲免费视频在线观看
|
久久精品一区二区
|
国产精品178页
|
久久国产精品视频
|
中文字幕高清
|
欧美一级片在线看
|
99精品久久
|
国产精品久久久久久久久久免费看
|
免费99精品国产自在在线
|
精品一区国产
|
91久久久久
|
欧美一区二区激情三区
|
欧美日韩国产在线观看
|
男女视频免费
|
91精品久久久久久久久中文字幕
|
日韩av美女电影
|
亚洲精品一区二区在线观看
|
欧美一级黄色片免费观看
|
久久精品小视频
|
国产精品1区
|
黄网站在线播放
|
91就要激情
|