标题: 51单片机双机通信程序和proteus仿真工程 [打印本页]

作者: qzc..    时间: 2018-11-27 15:57
标题: 51单片机双机通信程序和proteus仿真工程
经典51内容,通过51单片机分别控制甲机和已机



其中一种的程序
  1. #include<reg52.h>

  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar a,b;
  6. uchar discode1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  7. void delayms(uint ms)
  8. {
  9. uint i;
  10. while(ms--)
  11. {
  12. for(i=0;i<120;i++);
  13. }
  14. }
  15. void int0() interrupt 0
  16. {
  17. delayms(10);
  18. if(INT0==0)
  19. {  
  20. if(a>=15)a=0;
  21. }
  22. }
  23. void LED(void)
  24. {
  25. P0= ~ discode1[b];
  26. }
  27. void send(uchar state)
  28. {
  29. SBUF=state;
  30. while(TI==0);
  31. TI=0;
  32. }
  33. void serival(void)
  34. {
  35. b=SBUF;
  36. while(RI==0);
  37. RI=0;
  38. }
  39. void INT_init(void)
  40. {
  41. EX0=1;
  42. IT0=1;
  43. EA=1;
  44. }
  45. void SCON_init(void)
  46. {
  47. SCON=0x50;
  48. TMOD=0x20;
  49. PCON=0x00;
  50. TH1=0xFD;
  51. TL1=0xFD;
  52. TI=0;
  53. TR1=1;
  54. ES=1;
  55. }
  56. void main(void)
  57. {   int i;
  58. i=a;
  59. SCON_init();
  60. INT_init();
  61. while(1)
  62. {
  63.   send(i);
  64.   serival();
  65.   LED();
  66.   if(INT0==0)
  67.   {
  68.    i++;
  69.    if(i>15)i=0;
  70.    while(INT0==0);
  71.   }
  72. }
  73. }
复制代码

全部资料51hei下载地址:
双机通信.zip (92.02 KB, 下载次数: 64)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1