C51 COMPILER V8.02 ZIFU 06/28/2010 16:11:58 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE ZIFU OBJECT MODULE PLACED IN zifu.OBJ COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE zifu.c BROWSE DEBUG OBJECTEXTEND line level source 1 /******************************************************************** 2 “天祥电子” 倾情奉献 3 www.txmcu.com 4 www.txmcu.cn 5 ************************************************************************* 6 函数功能:往串口发送一字节数据(可通过超级终端或者串口调试助手显示出来, 7 超级终端波特率选为9600)。 8 超级终端设置好后,每按下一次S2键,松开后均会在超级终端 9 上显示一串字母"abcdefg哈哈"。 10 入口参数:d: 要发送的字节数据。 11 ********************************************************************/ 12 13 14 #include 15 #define jingzhen 11059200UL /*使用22.1184M晶体*/ 16 #define botelv 9600UL /*波特率定义为9600*/ 17 unsigned char zifuchuan[]="abcdefg哈哈"; //待显示字符。 18 volatile unsigned char sending; 19 sbit s2=P3^4; 20 21 void delay(unsigned char i) 22 { 23 1 unsigned char j,k; 24 1 for(j=i;j>0;j--) 25 1 for(k=90;k>0;k--); 26 1 } 27 void init(void) //串口初始化 28 { 29 1 EA=0; //暂时关闭中断 30 1 TMOD&=0x0F; //定时器1模式控制在高4位 31 1 TMOD|=0x20; //定时器1工作在模式2,自动重装模式 32 1 SCON=0x50; //串口工作在模式1 33 1 TH1=256-jingzhen/(botelv*12*16); //计算定时器重装值 34 1 TL1=256-jingzhen/(botelv*12*16); 35 1 PCON|=0x80; //串口波特率加倍 36 1 ES=1; //串行中断允许 37 1 TR1=1; //启动定时器1 38 1 REN=1; //允许接收 39 1 EA=1; //允许中断 40 1 } 41 42 void send(unsigned char d) //发送一个字节的数据,形参d即为待发送数据。 43 { 44 1 45 1 SBUF=d; //将数据写入到串口缓冲 46 1 sending=1; //设置发送标志 47 1 while(sending); //等待发送完毕 48 1 } 49 50 void sendc(unsigned char * pd) 51 { 52 1 while((*pd)!='\0') //发送字符串,直到遇到0才结束 53 1 { 54 2 send(*pd); //发送一个字符 55 2 pd++; //移动到下一个字符 C51 COMPILER V8.02 ZIFU 06/28/2010 16:11:58 PAGE 2 56 2 } 57 1 } 58 59 void main() 60 { 61 1 init(); 62 1 while(1) 63 1 { 64 2 if(s2==0) 65 2 { 66 3 delay(20); 67 3 if(!s2) 68 3 { 69 4 while(!s2); 70 4 sendc(zifuchuan); 71 4 } 72 3 } 73 2 } 74 1 } 75 76 void uart(void) interrupt 4 //串口发送中断 77 { 78 1 if(RI) //收到数据 79 1 { 80 2 RI=0; //清中断请求 81 2 } 82 1 else //发送完一字节数据 83 1 { 84 2 TI=0; 85 2 sending=0; //清正在发送标志 86 2 } 87 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 112 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 13 ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)