欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機定時器與串口中斷不能一起嗎?
[打印本頁]
作者:
hfsdage
時間:
2016-6-7 19:03
標(biāo)題:
單片機定時器與串口中斷不能一起嗎?
這個源碼燒入單片機后好像不行,單片機沒串口數(shù)據(jù)的時候就是開機的時候是正常的,一有數(shù)據(jù)了定時器0就掛了,就不會動了,求大神看看什么問題
#include<reg52.h>
#include<STDIO.H>//printf()
#define uchar unsigned char
#define uint unsigned int //宏定義
bit RXAAOK; //接收到[開頭標(biāo)志
bit RXFRMOK; //接收一幀完整數(shù)據(jù)標(biāo)
bit tflag;
sbit S1=P0^0;
sbit S2=P0^2;
sbit S3=P0^3;
sbit S4=P0^1;
sbit FM=P0^4;
sbit DS=P0^5;
sbit keypad1=P1^0;
sbit keypad2=P1^1;
sbit keypad3=P1^2;
sbit keypad4=P1^3;
/*下面是數(shù)碼管位選*/
sbit one=P1^4;
sbit two=P1^5;
sbit three=P1^6;
/*char code table[]={ 0x3f,0x06,0x5b,
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f};*/
uint temp;
uchar ketnum,t,RXBUF[10],RX_P;
void main()
{
IP = 0x10; //即設(shè)置串口中斷為最高優(yōu)先級
TMOD=0x21; //定時器1的工作方式2,定時器0的工作方式1,16位
TH1=0xfd; //定時器1的初值,決定波特率9600
TL1=0xfd;
TH0=0X4C; //高八位的初值 50MS一次
TL0=0X00; //第八位的初值
PCON=0x00; //波特率倍增0x00不加倍 0x80加倍
SCON=0x50; //設(shè)置工作方式1 開啟接受允許
EA=1; //開啟總中斷
ES=1; //開啟串口接受中斷
ET0=1; //允許定時器0發(fā)出中斷
TR1=1; //計數(shù)器1開始運行
TR0=1; //計數(shù)器0開始運行
while(1)
{
if(RXFRMOK)
{
switch(RXBUF[0])
{
case 'A' : S1=~S1;
}
}
}
}
void UARTO_ISR() interrupt 4 //接收中斷,不同處理器可能是不同的函數(shù)聲明
{
uchar i; //用處提取接收緩沖器的字符
if(RI)
{
i=SBUF; //提取字符
RI=0;
if(RXFRMOK==0) //判斷是否接收到起始字符[
{
if(RXAAOK) //如果接收到[,繼續(xù)接收后面的字符
{
RXBUF[RX_P]=i; //字符存入數(shù)組
if((RX_P>3)&&(RXBUF[RX_P-3]==0x7C)&&(RXBUF[RX_P-2]==0x7D)&&(RXBUF[RX_P-1]==0x7E)&&(RXBUF[RX_P]==0x5D) )
{
RXFRMOK=1; //如果接收完成,置位RXFRMOK;
RXAAOK=0; //清零開始標(biāo)志位RXAAOK
}
RX_P++; //接收計數(shù)器加一
}
if(!RXAAOK&&(i==0x5B)) //字符[,協(xié)議格式:[數(shù)據(jù)|}~]
{
RXAAOK=1;
RX_P=0;
}
}
}
}
void Timer0() interrupt 1
{
TH0=0x4C;
TL0=0x00;
t++;
S1=~S1; //PC串口發(fā)送數(shù)據(jù)過來后S1就不會翻轉(zhuǎn)了
}
復(fù)制代碼
作者:
flame1o
時間:
2016-12-23 13:42
標(biāo)志位放在最后清零試試
作者:
颯颯冷遇
時間:
2017-2-20 22:34
樓主這個問題解決了么?解決了告訴我啊啊。
作者:
MCU愛好者
時間:
2017-2-21 08:53
同求這個問題
作者:
期待和努力
時間:
2017-12-3 13:31
解決了許多長期想解決
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1