找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3229|回复: 0
打印 上一主题 下一主题
收起左侧

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, 下载次数: 63)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表