c51经典子程序代码全集

源代码在线查看: winbond的w77e58双串口测试程.txt

软件大小: 285 K
上传用户: Kunlun_mrpii
关键词: c51 程序 代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				硬件:关于w77e58双串口的求助! [explorer_7] [51次] 01-5-10 下午 05:36:31
				我现在正在用w77e58的双串口功能,但是我照华邦公司主页上的资料做实验做了半天,第一
				个串口运行良好,始终打不开第二个串口,希望大侠能给一点帮助,发一点相关资料,最好
				有一个例程。谢谢!E-mail:cj@cool.com.cn 
				
				w77e58例程 [RSCZ] [81次] 01-5-10 下午 07:51:12 
				
				      winbond的w77e58双串口测试程
				序:                                                         
				      打开超级终端(com1,baud rate=2400),用串口线连接单片机的任意一个串口,在超
				级终端任意一个键,串口都产生中断,单片机的串口中断程序会予以响
				应。                                   
				********************************************************************************
				#include" w77c32.h"
				static int flag_1,flag_0;
				char c1[]="hello china";
				char c2[]="hello World";
				main()
				{ 
				     int i;
				     flag_1=1;
				     flag_0=1;
				     //system init ,其中串口0用定时器2,串口1用定时器1 
				     
				     //串口1的设置
				     IE=0x90;      //允许总中断和串口0的中断
				     TMOD=0x20;      //定时器1工作在模式1
				     TL1=0xf4;      //baud rate=2400
				     TH1=0xf4;
				     SCON1=0x58;   //工作在模式1,允许接收
				     PCON=0x00; // SM0=0 SM1=1 在10位异步收发模式 SMOD=0 溢出速率/32 
				     ES1=1;    //串口1中断允许
				     
				     SCON=0x58;      //工作在模式1,接收允许
				     T2CON=0x30;  //用定时器2做串口0的波特率发生器
				     RCAP2H=0xff;   // 11.0592M晶振下,baud rate=2400 
				     RCAP2L=0x70;
				
				     TR2=1;
				     TR1=1;
				     while(1)
				     {
				        if(flag_0) {TI=1;flag_0=0;}
				    for(i=0;i				        ;
				    if(flag_1) {TI_1=1;flag_1=0;}
				    for(i=0;i				        ;
				     }
				}
				  void serial_0(void)interrupt 4
				{
				    int i;
				    if(RI)
				    {
				        flag_0=1;
				        RI=0;    
				    }
				    if(TI)
				    {
				        for(i=0;i				        {
				            TI=0;
				            SBUF=c1[i];
				            while(TI==0) ;
				            TI=0;
				        }
				    }
				}             
				
				 void serial_1(void)interrupt 7 
				{    
				    int i;
				    if(RI_1)
				    {
				        flag_1=1;
				        RI_1=0;
				    }
				    if(TI_1)
				    {
				        for(i=0;i				        {
				            TI_1=0;
				            SBUF1=c2[i];
				            while(TI_1==0) ;
				            TI_1=0;
				        }        
				    }
				} 
				
				
				谢谢RSCZ大哥!你真是帮我解决了大难题! [explorer_7] [12次] 01-5-11 上午 09:10:46 
				我现在做一个消防系统的远程数据传输,有空多联系!谢谢! 
				
				不用谢 [RSCZ] [14次] 01-5-11 下午 07:36:55 
				有空可以发邮件联系(rscz@china.com) 
				
				 
				点击这里回复这篇贴子>>
				_____________________________________________________________________________
				Copyright?,C51BBS论坛 2000-2001 
				
							

相关资源