找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机编码开关试验 proteus仿真及源程序

[复制链接]
跳转到指定楼层
楼主
给51黑电子论坛的朋友分享一个proteus仿真,是关于单片机编码开关的,下面是原理图:


编码开关试验仿真工程文件及所有完整程序等资料下载地址:
http://www.51hei.com/bbs/dpj-56304-1.html

下面是单片机源程序:
  1. #include <AT89X52.h>

  2. #define JINGZHEN 24
  3. #define TIME0TH ((65536-100*JINGZHEN/12)&0xff00)>>8   //time0,100us,红外遥控
  4. #define TIME0TL ((65536-100*JINGZHEN/12)&0xff)

  5. main()
  6. {
  7. char a,b,c,d;
  8. a=b=c=d=0;
  9. P3=0;
  10. TH0 = TIME0TH;
  11. TL0 = TIME0TL;
  12. TMOD  |= 0x11;
  13. ET0    = 1;
  14. TR0    = 1;
  15. EA=1;
  16. while(1)
  17. {
  18. P1=0xff;
  19. if(P1_0==0)
  20. {
  21.          if(a==0)
  22.         {
  23.         a=1;
  24.         P3_0=1;
  25.         TH0 = TIME0TH;
  26.         TL0 = TIME0TL;
  27.         TF0=0;
  28.         while(TF0==0);
  29.         TF0=0;
  30.         P3_1=1;
  31.         TH0 = TIME0TH;
  32.         TL0 = TIME0TL;
  33.         TF0=0;
  34.         while(TF0==0);
  35.         TF0=0;
  36.         }
  37.         else
  38.         {
  39.         a=0;
  40.         P3_0=0;
  41.         TH0 = TIME0TH;
  42.         TL0 = TIME0TL;
  43.         TF0=0;
  44.         while(TF0==0);
  45.         TF0=0;
  46.         P3_1=0;
  47.         TH0 = TIME0TH;
  48.         TL0 = TIME0TL;
  49.         TF0=0;
  50.         while(TF0==0);
  51.         }
  52.         while(P1_0==0);
  53. }
  54. if(P1_1==0)
  55. {
  56.          if(a==0)
  57.         {
  58.         a=1;
  59.         P3_1=1;
  60.         TH0 = TIME0TH;
  61.         TL0 = TIME0TL;
  62.         TF0=0;
  63.         while(TF0==0);
  64.         TF0=0;
  65.         P3_0=1;
  66.         TH0 = TIME0TH;
  67.         TL0 = TIME0TL;
  68.         TF0=0;
  69.         while(TF0==0);
  70.         TF0=0;
  71.         }
  72.         else
  73.         {a=0;
  74.         P3_1=0;
  75.         TH0 = TIME0TH;
  76.         TL0 = TIME0TL;
  77.         TF0=0;
  78.         while(TF0==0);
  79.         TF0=0;
  80.         P3_0=0;
  81.         TH0 = TIME0TH;
  82.         TL0 = TIME0TL;
  83.         TF0=0;
  84.         while(TF0==0);
  85.         TF0=0;
  86.         }
  87.         while(P1_1==0);
  88. }

  89. if(P1_2==0)
  90. {
  91.          if(b==0)
  92.         {
  93.         b=1;
  94.         P3_2=1;
  95.         TH0 = TIME0TH;
  96.         TL0 = TIME0TL;
  97.         TF0=0;
  98.         while(TF0==0);
  99.         TF0=0;
  100.         P3_3=1;
  101.         TH0 = TIME0TH;
  102.         TL0 = TIME0TL;
  103.         TF0=0;
  104.         while(TF0==0);
  105.         TF0=0;
  106.         }
  107.         else
  108.         {b=0;
  109.         P3_2=0;
  110.         TH0 = TIME0TH;
  111.         TL0 = TIME0TL;
  112.         TF0=0;
  113.         while(TF0==0);
  114.         TF0=0;
  115.         P3_3=0;
  116.         TH0 = TIME0TH;
  117.         TL0 = TIME0TL;
  118.         TF0=0;
  119.         while(TF0==0);
  120.         }
  121.          while(P1_2==0);
  122. }
  123. if(P1_3==0)
  124. {
  125.          if(b==0)
  126.         {
  127.         b=1;
  128.         P3_3=1;
  129.         TH0 = TIME0TH;
  130.         TL0 = TIME0TL;
  131.         TF0=0;
  132.         while(TF0==0);
  133.         TF0=0;
  134.         P3_2=1;
  135.         TH0 = TIME0TH;
  136.         TL0 = TIME0TL;
  137.         TF0=0;
  138.         while(TF0==0);
  139.         TF0=0;
  140.         }
  141.         else
  142.         {
  143.         b=0;
  144.         P3_3=0;
  145.         TH0 = TIME0TH;
  146.         TL0 = TIME0TL;
  147.         TF0=0;
  148.         while(TF0==0);
  149.         TF0=0;
  150.         P3_2=0;
  151.         TH0 = TIME0TH;
  152.         TL0 = TIME0TL;
  153.         TF0=0;
  154.         while(TF0==0);
  155.         TF0=0;
  156.         }
  157.          while(P1_3==0);
  158. }
  159.   if(P1_4==0)
  160. {
  161.          if(c==0)
  162.         {c=1;
  163.         P3_4=1;
  164.         TH0 = TIME0TH;
  165.         TL0 = TIME0TL;
  166.         TF0=0;
  167.         while(TF0==0);
  168.         TF0=0;
  169.         P3_5=1;
  170.         TH0 = TIME0TH;
  171.         TL0 = TIME0TL;
  172.         TF0=0;
  173.         while(TF0==0);
  174.         TF0=0;
  175.         }
  176.         else
  177.         {c=0;
  178.         P3_4=0;
  179.         TH0 = TIME0TH;
  180.         TL0 = TIME0TL;
  181.         TF0=0;
  182.         while(TF0==0);
  183.         TF0=0;
  184.         P3_5=0;
  185.         TH0 = TIME0TH;
  186.         TL0 = TIME0TL;
  187.         TF0=0;
  188.         while(TF0==0);
  189.         }
  190.          while(P1_4==0);
  191. }
  192. if(P1_5==0)
  193. {
  194.          if(c==0)
  195.         {c=1;
  196.         P3_5=1;
  197.         TH0 = TIME0TH;
  198.         TL0 = TIME0TL;
  199.         TF0=0;
  200.         while(TF0==0);
  201.         TF0=0;
  202.         P3_4=1;
  203.         TH0 = TIME0TH;
  204.         TL0 = TIME0TL;
  205.         TF0=0;
  206.         while(TF0==0);
  207.         TF0=0;
  208.         }
  209.         else
  210.         {c=0;
  211.         P3_5=0;
  212.         TH0 = TIME0TH;
  213.         TL0 = TIME0TL;
  214.         TF0=0;
  215.         while(TF0==0);
  216.         TF0=0;
  217.         P3_4=0;
  218.         TH0 = TIME0TH;
  219.         TL0 = TIME0TL;
  220.         TF0=0;
  221.         while(TF0==0);
  222.         TF0=0;
  223.         }
  224.          while(P1_5==0);
  225. }                  
  226. if(P1_6==0)
  227. {
  228.          if(d==0)
  229.         {d=1;
  230.         P3_6=1;
  231.         TH0 = TIME0TH;
  232.         TL0 = TIME0TL;
  233.         TF0=0;
  234.         while(TF0==0);
  235.         TF0=0;
  236.         P3_7=1;
  237.         TH0 = TIME0TH;
  238.         TL0 = TIME0TL;
  239.         TF0=0;
  240.         while(TF0==0);
  241.         TF0=0;
  242.         }else
  243.         {d=0;
  244.         P3_6=0;
  245.         TH0 = TIME0TH;
  246.         TL0 = TIME0TL;
  247.         TF0=0;
  248.         while(TF0==0);
  249.         TF0=0;
  250.         P3_7=0;
  251.         TH0 = TIME0TH;
  252.         TL0 = TIME0TL;
  253.         TF0=0;
  254.         while(TF0==0);
  255.         }
  256.          while(P1_6==0);
  257. }        
  258. if(P1_7==0)
  259. {
  260.          if(d==0)
  261.         {d=1;
  262.         P3_7=1;
  263.         TH0 = TIME0TH;
  264.         TL0 = TIME0TL;
  265.         TF0=0;
  266.         while(TF0==0);
  267.         TF0=0;
  268.         P3_6=1;
  269.         TH0 = TIME0TH;
  270.         TL0 = TIME0TL;
  271.         TF0=0;
  272.         while(TF0==0);
  273.         TF0=0;
  274.         }
  275.         else
  276.         {d=0;
  277.         P3_7=0;
  278.         TH0 = TIME0TH;
  279.         TL0 = TIME0TL;
  280.         TF0=0;
  281.         while(TF0==0);
  282.         TF0=0;
  283.         P3_6=0;
  284.         TH0 = TIME0TH;
  285.         TL0 = TIME0TL;
  286.         TF0=0;
  287.         while(TF0==0);
  288.         TF0=0;
  289.         }
  290.           while(P1_7==0);
  291. }
  292. }
  293. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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