找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3604|回复: 1
收起左侧

单片机模拟三层电梯程序+Proteus仿真电路

[复制链接]
ID:565817 发表于 2019-6-18 15:51 | 显示全部楼层 |阅读模式
51单片机的模拟电梯仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png 0.png 0.png

单片机源程序如下:
  1. /******************************************************************
  2.   AT89S51的T0,T1计数器对输入的信号进行频率计数,测量结果用数码管
  3. 动态显示,要求对0~65KHZ的信号频率进行准确测量,误差不超过5HZ
  4. *****************************************************************/
  5. #include <reg51.h>
  6. #define uint unsigned int

  7. sbit KEY_1=P2^0;
  8. sbit KEY_2=P2^1;
  9. sbit KEY_3=P2^2;
  10. sbit KEY_4=P3^3;

  11. sbit LED1=P3^0;
  12. sbit LED2=P3^1;
  13. sbit LED3=P3^2;

  14. unsigned int num=0;
  15. code unsigned char TAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0X77};
  16.         /*显示变量对应的数值*/
  17. /***************定时器0中断服务函数************************/
  18. void timer0()interrupt 1{
  19.                 TH0 = (65536 - 10000) / 256;
  20.                 TL0 = (65536 - 10000) % 256;
  21.         num++;//记到20就直接停止
  22.         //if(num>=50)
  23. }

  24. /**************************延时函数************************************/
  25. void delay(unsigned char t){
  26.         unsigned char i,j;
  27.         for(i=0;i<t;i++)
  28.                 for(j=0;j<125;j++);
  29. }

  30. void delayms(unsigned int xms)
  31. {
  32.         unsigned int x;
  33.         unsigned char y;
  34.         for(x = xms; x > 0; x--)
  35.                 for(y = 124; y>0; y--);//11.0592MHz: 114  //12MHz: 124
  36. }

  37. void delayus( int xus)
  38. {
  39.         while(--xus>0);
  40. }
  41. /*************************显示函数**************************************/



  42. void main(){
  43.         
  44.                 TMOD=0x01;//T0 记时 T1计数
  45.                 TH0 = (65536 - 10000) / 256;
  46.                 TL0 = (65536 - 10000) % 256;
  47.         
  48.                 TR0=1; //开T0 //        IT1=1;
  49.                 ET0=1;//开中断
  50.                 EA=1;//打开总中断 0x86  0xdb  0xcf
  51. LED1=1;
  52.          LED2=1;
  53.          LED3=1;
  54.         num=0;             //1  1000 0110    2 1101 1011   3 1100 1111
  55.         while(1)
  56.         {
  57.                         if(KEY_1==0){ LED1=1; LED2=1; LED3=1;while(P1!=0X86);num=0; LED1=0; while(num<500){if(KEY_2==0||KEY_3==0)break;} if(P1==0X86)LED1=1;  }
  58. else if(KEY_2==0) {LED1=1; LED2=1; LED3=1;while(P1!=0Xdb);num=0; LED2=0; while(num<500){if(KEY_1==0||KEY_3==0)break;} if(P1==0Xdb)LED2=1;}
  59. else if(KEY_3==0) {LED1=1; LED2=1; LED3=1;while(P1!=0Xcf);num=0; LED3=0; while(num<500){if(KEY_1==0||KEY_2==0)break;} if(P1==0Xcf)LED3=1;}
  60. }
  61. }
  62. //
复制代码
0.png
所有资料51hei提供下载:
模拟3层电梯.rar (100.19 KB, 下载次数: 50)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1108403 发表于 2024-1-7 17:38 | 显示全部楼层
不错的分享很棒
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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