找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11055|回復(fù): 1
收起左側(cè)

51單片機串口收發(fā)源程序

[復(fù)制鏈接]
ID:279997 發(fā)表于 2018-4-21 16:48 | 顯示全部樓層 |閱讀模式
就是個簡單的串口收發(fā)的51單片機源程序親測可用。

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4.         typedef  signed char  int8;
  5. typedef  signed int   int16;
  6. typedef  signed long  int32;

  7. //typedef unsigned char uint8;
  8. //typedef unsigned int  uint16;
  9. typedef unsigned long uint32;
  10. sbit FM=P3^5; //HJ-C52  P1.2 把J5跳線接上
  11. sbit P10=P1^0;
  12. uchar buf;
  13. void delay(uint k)
  14. {
  15.   uint j;
  16.         for(;k>+0;k--)
  17.            for(j=110;j>=0;j--);
  18. }

  19. void UartSendByte(uchar byte)
  20. {
  21.     SBUF = byte;
  22.     while(!TI);
  23.          TI = 0;
  24. }



  25. void UartSendString(uchar *string)
  26. {
  27.     while(*string)
  28.          {
  29.              UartSendByte(*string++);
  30.          }
  31. }




  32. void main(void)
  33. {
  34.         FM=1;
  35.         P10=1;
  36. SCON=0x50;//設(shè)定串口工作方式0101 0000
  37. PCON=0x00;
  38. TMOD=0x20;
  39. EA=1;
  40. ES=1;
  41. TL1=0xfd;
  42. TH1=0xfd;
  43. TR1=1;
  44. while(1)
  45. {
  46.         UartSendString("55468548545613843\r\n");
  47.         delay(1);
  48. }
  49. }

  50. //串行中斷服務(wù)函數(shù)
  51. void serial() interrupt 4
  52.         {
  53.         ES=0;
  54.         RI=0;
  55.         buf=SBUF;
  56.         switch(buf)
  57.         {       
  58.         case 0x31:P10=~P10;FM=~FM;break;   //二進制 0011 0001  十進制 49 控制字符 1  16進制 0X31
  59.         }
  60.         ES=1;//串口中斷

  61. }
復(fù)制代碼

所有資料51hei提供下載:

36-1、串口通信實驗.zip (34.3 KB, 下載次數(shù): 86)


回復(fù)

使用道具 舉報

ID:455742 發(fā)表于 2019-5-9 11:54 | 顯示全部樓層
這個程序只會在復(fù)位時發(fā)送一次,應(yīng)該是sendString那里進入死循環(huán)了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表