请高手提供一个51单片机例程,关于串口和定时器中断共存 关于51单片机的串口和定时器共用冲突

\u6c42\u6559\u5355\u7247\u673a\u9ad8\u624b\u3002stc89c51\u5355\u7247\u673a\u76842\u4e2a\u5b9a\u65f6\u5668\u540c\u65f6\u7528\u6216\u8005\u5b9a\u65f6\u5668\u4e0e\u4e2d\u65ad\u540c\u65f6\u7528\u65f6\u600e\u4e48\u7f16\u7a0b\u5e8f\u3002

\u4f60\u597d\uff0c\u4e00\u4e2a\u5b9a\u65f6\u5668\u4e00\u4e2a\u4e2d\u65ad\u5982\u679c\u4f7f\u7528c\u8bed\u8a00\u7684\u8bdd\uff08\u672c\u4f8b\u91c7\u75280\u4e3a\u5916\u90e8\u4e2d\u65adINT0\uff0c1\u4e3a\u5185\u90e8\u5b9a\u65f6\u6ea2\u51fa\u4e2d\u65ad\uff09
\u5728main\u51fd\u6570\u4e2d\u9700\u8981\u6709
EA=1; //\u5f00\u603b\u4e2d\u65ad
EX0=1; //\u5141\u8bb8INT0\u4e2d\u65ad
ET1=1;//\u5141\u8bb8\u5b9a\u65f6\u56681\u4e2d\u65ad
IT0=1;//INT0\u4e0b\u964d\u6cbf\u4ea7\u751f\u4e2d\u65ad
TMOD=0x01;
TH1=(65536-???)/256; //???\u53ef\u53d6\u968f\u610f\u503c
TL1=(65536-???)%256;
TR1=1;//\u5f00\u542f\u5b9a\u65f6\u56681

/*\u5982\u679c\u91c7\u7528\u67e5\u8be2\u6cd5\u5219\u52a0\u5165\u4e0b\u53e5\u7b49\u5f85\u5916\u90e8\u4e2d\u65ad\u6216\u5b9a\u65f6\u4e2d\u65ad\u4ea7\u751f*/
while(1);


\u5728main\u51fd\u6570\u5916\uff0c\u52a0\u5165\u4e2d\u65ad\u5b50\u7a0b\u5e8f
void int0 (void) interrupt 0 //\u5916\u90e8\u4e2d\u65ad0\u4e2d\u65ad\u5b50\u7a0b\u5e8f
{\u5b50\u7a0b\u5e8f}
void int1 (void) interrupt 3 //\u5b9a\u65f6\u56681\u6ea2\u51fa\u4e2d\u65ad
{\u5b50\u7a0b\u5e8f}

\u5927\u4f53\u7684\u601d\u8def\u5c31\u662f\u8fd9\u6837\u3002\u5176\u5b9e\u6211\u4e5f\u662f\u65b0\u624b\uff0c\u9519\u8bef\u5728\u6240\u96be\u514d\uff0c\u4f46\u662f\u7167\u7740\u8fd9\u4e2a\u601d\u8def\u505a\u5e94\u8be5\u6ca1\u95ee\u9898\uff0c\u5982\u679c\u8fd8\u662f\u4e0d\u61c2\u53ef\u4ee5\u767e\u5ea6hi\u6211 \uff0c\u6211\u4eec\u4ea4\u6d41\u4e00\u4e0b\u4e92\u76f8\u5b66\u4e60

\u4e32\u53e3\u9700\u8981\u5b9a\u65f6\u56681\u6216\u5b9a\u65f6\u56682\u4f5c\u4e3a\u6ce2\u7279\u7387\u53d1\u751f\u5668\u54e6\uff0c\u8fd9\u4e2a\u5b9a\u65f6\u5668\u8981\u5de5\u4f5c\u5728\u65b9\u5f0f2\uff0c\u4e0d\u80fd\u4e2d\u65ad\u3002
\u6309\u7167\u4f60\u8bf4\u7684\uff0c\u5e94\u8be5\u6ca1\u6709\u8fd9\u4e2a\u95ee\u9898\uff0c\u4e32\u53e3\u4e0d\u4f1a\u5f71\u54cdT0\u7684\u3002
\u4ee3\u7801\u4e0d\u5b8c\u5168\uff0c\u770b\u4e0d\u51fa\u6765\u5462

#include <reg52.h> // 改了一下 试试, 主要是 串口
void system_Ini() // 可以试试 自发 自收 TXD 与 RXD 连接起来
{ // P2 口 接 8 路 开关 信号 , P1 口输出 接收信号
TMOD|=0x21 ; //定时器T1工作方式2(自动装载初值的8位定时器),T0方式1
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 (全双工方式)
PCON|=0x80; //SMOD=1,波特率加倍
TH1=0xfa; // 波特率9600、数据位8、停止位1。效验位无 (11.0592M)
TL1=0xfa;
TR1 = 1;
TH0 = 0xD8; //10ms
TL0 = 0xF0;
ET0=1;
TR0= 1;
ES= 1; //开串口中断
EA=1;
}
void main()
{
system_Ini();
while(1)
{
SBUF=P2; // 把P2 口的 数据 发送
while(!TI); // 等特数据传送(TI发送中断标志)
TI=0;
}
}
void T0zd(void) interrupt 1 //定时器0中断
{
TH0 = 0xD8; //10ms 可以处理
TL0 = 0xF0;
}
void ser() interrupt 4 // 串口中断
{
if(RI)
{
RI=0;
P1=SBUF; // P1 口 为接收 数据。
}
}

正好有这样的一个程序,留个联系方式吧

把你自己的程序贴出来,大家可以帮你找找问题。

  • 鎬ユ眰楂樻墜缁欏啓涓涓51鍗曠墖鏈绋嬪簭~娉ㄦ剰:鍙姹囩紪璇█~涓嶈C璇█~~鎬ユユ...
    绛旓細TL1=0XE0;//P1_0=!P1_0;//P1.0鍙栧弽,鏀惧湪杩欎篃琛 }
  • 璇烽珮鎵鐢鍗曠墖鏈C璇█缂栧啓c51鏃堕挓绋嬪簭,鍚湁6涓暟鏄剧,3涓寜閿,瑕佽嚜宸卞啓...
    绛旓細sbit led_4=P2^3;sbit led_5=P2^4;sbit dp=P1^7;sbit an_mod=P2^5;sbit an_movright=P2^6;sbit an_up=P2^7;unsigned char code tab[]={0x90,0xd7,0xa2,0x86,0xc5,0x8c,0x88,0xd6,0x80,0x84};unsigned char num=0,hour=0,minute=0,secon=0,week=1;//20涓猲um鏄竴绉 ...
  • 鏈嬪弸浠府蹇欏啓涓51鍗曠墖鏈鐨勬寜閿皬绋嬪簭?姹囩紪鐨
    绛旓細锛2锛夋暟鐮佺鏁版嵁 p0,鏁扮爜绠℃帶鍒秔2 鐙珛鎸夐敭p1鍙 锛;瀵圭嫭绔嬮敭杩涜鎸夐敭娆℃暟璁℃暟锛屼笁浣嶆暟鐮佺鏄剧ず銆;K1鎸変笅鍚庯紝杩涜鍔1璁℃暟 ;K2鎸変笅鍚庯紝杩涜鍑1璁℃暟銆;K3鎸変笅鍚庯紝杩涜鍔5璁℃暟銆;K4鎸変笅鍚庯紝娓呰鏁板崟鍏冿紝鏁扮爜绠℃樉绀0銆;鎸変綇閿彲浠ュ揩閫熻鏁般侹1 BIT P1.4 K2 BIT P1.5 K3 BIT ...
  • 51鍗曠墖鏈鐨楂樻墜,鏁戝懡鍟
    绛旓細/* 缁欏嚭鑴夊啿淇″彿锛岄鍏堝皢CLK缃负1 */ HC595CLK = 1;/* 鍑嗗绗簩涓暟鎹 */ uiDataTwo = uiDataTwo << 1;} /* 灏嗙墖閫変俊鍙风疆涓洪珮鐢靛钩 */ HC595RCK = 1;}
  • 姹楂樻墜 鐢51鍗曠墖鏈杈撳嚭浜х敓鏂规尝鐨勭▼搴
    绛旓細void main(){ TMOD=0x01; //瀹氭椂鍣0宸ヤ綔鏂瑰紡1 TH0=(65536-10000)/256; //12M鏅舵尟10MS璁℃椂甯告暟 TL0=(65536-10000)%256;EA=1; //寮鎬讳腑鏂 ET0=1; //寮瀹氭椂鍣0涓柇 TR0=1; //鍚姩瀹氭椂鍣0 while(1);} //涓柇鍑芥暟锛屽惎鍔ㄥ悗姣10MS杩涘叆涓娆′腑鏂 void T0_time(void) interrupt 1 { TH...
  • 姹鍗曠墖鏈篊51楂樻墜缂栫▼ 绱ф!!!
    绛旓細include<reg51.h> include<intrins.h> define uint unsigned int define uchar unsigned char uchar temp,i,num;void delay(uint x){ uchar t;while(x--) for(t=0;t<120;t++);} void main(){ temp=0xfe;num=0;while(1){ P0=temp;for(num=0;num<4;num++){ for(i=0;i<8;i+...
  • 楂樺垎姹鍗曠墖鏈洪珮鎵甯啓涓娈电畝鍗曠殑C51绋嬪簭
    绛旓細sbit d1=P3^3;sbit d2=P3^4;sbit d3=P3^5;sbit d4=P3^6;sbit d5=P3^7;void Delay(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } void Init_UART_TIMER(void){ TMOD = 0x21;SCON = 0x50;TH1 = 0xFD;TL1 = TH1;TH0=0x4C;TL0=0x00;ET0=1;TR0=1;P...
  • 璇穋璇█楂樻墜甯繖,鍐涓涓绋嬪簭,51鍗曠墖鏈鏄剧ず1234,2S鍚庢樉绀5678 ,涓鐩村惊鐜...
    绛旓細include<reg51.h> define uchar unsigned char bit flag=1;uchar j,k;uchar code tab[]={ 0x06,/*1*/ 0x5B,/*2*/ 0x4F,/*3*/ 0x66,/*4*/ 0x6D,/*5*/ 0x7D,/*6*/ 0x07,/*7*/ 0x7F,/*8*/ };sbit P2_0=P2^0;sbit P2_1=P2^1;sbit P2_2=P2^2;sbit P2_3=P2...
  • 涓閬51鍗曠墖鏈鐨凜璇█绋嬪簭,鍏充簬涓插彛閫氳鐨,寰堢畝鍗...
    绛旓細if(flag==1) //绛夊緟flag鏍囧織浣嶇疆浣嶏紝褰撴帴鏀跺埌鏁版嵁鐨勬椂鍊欏湪涓插彛鎺ユ敹涓柇涓疆浣 { ES=0; //绂佹涓插彛涓柇锛屼絾鏄敞鎰忓彂閫佷腑鏂爣蹇椾綅鐨勭疆浣嶄粛鐒舵甯 for(i=0;i<18;i++) //for寰幆涓轰簡涓涓涓妸涔嬪墠瀹氫箟鐨勫瓧绗︿覆 { SBUF=table[i]; //鍚戜覆鍙f敹鍙戠紦鍐插櫒涓啓鍏ュ洖搴旂殑鍐呭鈥淚 receive...
  • 璇烽珮鎵鍏蜂綋瑙i噴涓涓嬩互涓51鍗曠墖鏈C璇█绋嬪簭:
    绛旓細void timer() interrupt 1 using 2//瀹氭椂鍣0涓柇鍑芥暟锛宨nterrupt 1鏄疶0鐨勪腑鏂叆鍙 { Flag_Delay5ms=0;//灏 寤舵椂5ms 鏍囧織浣 缃负 0锛岃〃绀5ms缁撴潫 TH0=-5000/256;//涓篢0楂8浣嶈祴鍒濆硷紝鐩稿綋浜嶵H0=(65536-5000)/256;鍙互鎺ㄥ嚭鏅舵尟涓12MHz TL0=-5000%256;//涓篢0浣8浣嶈祴鍒濆硷紝鍚屼笂 } /*寤舵椂...
  • 扩展阅读:买手机订单生成器 ... 51黑单片机 ... 51单片机入门视频 ... 51单片机项目设计案例 ... 51单片机电子秒表程序 ... 单片机教程网站 ... 51单片机经典例程 ... 51单片机内部实物图 ... 51最小系统板电路图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网