硬件设计

仿真图如下所示:

程序设计


#include "main.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "timer.h"char flag1;     //定时时间到标志u8 counter;        //计数器u8 state;      //当前电梯状态
u8 statepre;    //之前电梯状态
u8 flag;        //电梯上下标志,0下,1上u8  i;char in1=0, in2=0, in3=0, in4=0, up1=0, up2=0, up3=0, down2=0, down3=0, down4=0;    //KEY
u8 table[]={0xf9, 0xa4,0xb0,0x99,  0xa1, 0xc1, 0xff};        //楼层显示码表,一共是四层void keyscan(void);
void elvator(void);void display(){GPIOB->ODR &=0xFFFFFFF0 ;set_DigitalNum(state);  //楼乘标号   GPIOB->ODR |=0x00000002 ;Delay_ms(2);GPIOB->ODR &=0xFFFFFFF0 ;  set_DigitalNum(flag);GPIOB->ODR |=0x00000008 ;Delay_ms(2);
}void iniclock()      //start clock
{
TIM3->CR1|=0x01; }  void run()
{for(i=0;i<50;i++)//100ms{keyscan();display();}
}int main()
{//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 Delay_Init(); // 延时程序初始化Led_Init();   // LED灯初始化MultDigitalNum_Init(); // 数码管初始化KEY_Init();            // 按键初始化
//TIM3_Int_Init(499,7199);//50ms进入一次中断state=1;statepre=1;flag=1;//上flag1=0;while(1){elvator();}}void keyscan(void)
{
//内一按下动作    if(!(GPIOC->IDR & (1 << 0))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 0))){in1=1;            //被按下后标记,亮灯,下同while(!(GPIOC->IDR & (1 << 0)));}}
//内二按下动作        if(!(GPIOC->IDR & (1 << 1))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 1))){in2=1;            //被按下后标记,亮灯,下同while(!(GPIOC->IDR & (1 << 1)));}}
//内三按下动作        if(!(GPIOC->IDR & (1 << 2))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 2))){in3=1;            //被按下后标记,亮灯,下同while(!(GPIOC->IDR & (1 << 2)));}}
//内四按下动作    if(!(GPIOC->IDR & (1 << 3))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 3))){in4=1;            //被按下后标记,亮灯,下同while(!(GPIOC->IDR & (1 << 3)));}} //1上按下动作    if(!(GPIOC->IDR & (1 << 4))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 4))){up1=1;lup1(1);while(!(GPIOC->IDR & (1 << 4)));}} //2上按下动作    if(!(GPIOC->IDR & (1 << 5))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 5))){up2=1;lup2(1);while(!(GPIOC->IDR & (1 << 5)));}}
//3上按下动作    if(!(GPIOC->IDR & (1 << 6))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 6))){up3=1;lup3(1);while(!(GPIOC->IDR & (1 << 6)));}} //2下按下动作    if(!(GPIOC->IDR & (1 << 7))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 7))){down2=1;ldown2(1);while(!(GPIOC->IDR & (1 << 7)));}}
//3下按下动作    if(!(GPIOC->IDR & (1 << 8))){Delay_ms(1); //消抖if(!(GPIOC->IDR & (1 << 8))){down3=1;ldown3(1);while(!(GPIOC->IDR & (1 << 8)));}}

附:http://www.jh-tec.cn/archives/7205

基于STM32的电梯楼层控制系统proteus仿真相关推荐

  1. 基于51单片机智能路灯控制系统Proteus仿真

    资料编号:182    下面是仿真功能视频演示: 182-基于51单片机智能路灯控制系统Proteus仿真 功能讲解: 采用51单片机作为控制CPU,可以通过设置开灯和关灯时间开自动控制路灯的打开和关 ...

  2. 基于STM32单片机医院病房呼叫系统Proteus仿真

    资料编号:184   下面是仿真功能视频演示: 184-基于STM32单片机医院病房呼叫系统Proteus仿真 功能讲解: 采用stm32单片机作为控制CPU,LCD1602显示屏.独立按键.蜂鸣器. ...

  3. 基于stm32单片机俄罗斯方块小游戏Proteus仿真

     资料编号:150​​​​​​​ 视频讲解: 150-基于stm32单片机俄罗斯方块小游戏Proteus仿真(源码+仿真+全套资料) 功能介绍: 通过stm32单片机作为主控,在LCD点阵屏上做出俄罗 ...

  4. 基于单片机的电梯程序控制系统(仿真+程序+测试视频)

    技术支持 程序开发软件:Keil 仿真软件:Proteus 逻辑开发语言:C 语言 单片机型号:AT89C51 文件说明 cong1.c:是从单片机程序逻辑源码 zhu1.c:是主单片机程序逻辑源码 ...

  5. 基于STM32单片机的电子钟(Proteus仿真+程序)

    编号:12 基于STM32单片机的电子钟 功能描述: 本设计由STM32单片机+液晶1602+按键+RTC时钟组成. 1.采用STM32F103最小系统板. 2.利用STM32内部自带RTC时钟提供时 ...

  6. 基于STM32单片机的密码锁(Proteus仿真、程序)

    基于STM32单片机的密码锁 功能描述: 由STM32F103单片机最小系统+ 4*4矩阵键盘+LCD1602液晶显示+蜂鸣器+继电器模块 1.采用STM32F103为主控芯片 2.通过4*4矩阵键盘 ...

  7. 基于STM32单片机的密码锁(Proteus仿真+程序+报告)

    3-基于STM32单片机的密码锁 功能描述如下: 由STM32F103单片机最小系统+ 4*4矩阵键盘+LCD1602液晶显示+蜂鸣器+继电器模块: 1.采用STM32F103为主控芯片. 2.通过4 ...

  8. 基于STM32的电梯智能控制系统(软件实现)

    知识回顾: 本次实践,我们选用的是STM32F407单片机,它是专为要求高性能.低成本.低功耗的嵌入式应用而设计的:我们所选的型号是子系列STM32F407. OLED(Organic Light-E ...

  9. 基于STM32的智能路灯控制proteus仿真 LCD1602 显示

    硬件设计 (末尾附文件) 仿真图如下所示: 程序设计 #include "stm32f10x.h" #include "bsp-lcd1602.h" #incl ...

最新文章

  1. mysql合并查询结果及为表和字段取别名
  2. android调服务不更新,android – OnUpdate()不调用小部件服务
  3. 20秋PHP作业3,北语20秋《PHP》作业3【标准答案】
  4. 使用工具类时尽量使用私有的无参构造函数
  5. linux arm gcc 内联汇编参考手册
  6. ncnn源码编译安装
  7. 获取字段为List类型中的泛型类型
  8. SpringCloud微服务(04):Turbine组件,实现微服务集群监控
  9. 第7章[7.22] Ext JS类的继承与混合
  10. IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置...
  11. iOS应用审核的通关秘籍
  12. linux执行命令在哪,在linux终端中执行root命令有哪些方法
  13. 维纳滤波python 函数_图像维纳滤波实现(1)
  14. sublime在wamp下配置php文件,配置WAMP环境下的sublime和PHPdesigner
  15. 计算机输入法不能切换用户登录,Win7输入法无法切换怎么办?
  16. 淘宝轮播图片制作技巧
  17. Kata Containers创始人:安全容器导论
  18. Android TextView垂直滚动,并精准定位到最后一行
  19. 美团“杀熟”,最终收割谁?
  20. diffdock:将扩散模型用于分子对接

热门文章

  1. 计算机系迎新晚会策划,计算机科学系迎新晚会策划书.doc
  2. 朴素贝叶斯代码(Python)
  3. C++ Hanoi塔学习笔记(递归与非递归实现)
  4. electron-vue 软件自动更新
  5. element-ui查看大图
  6. 脑机实验室系列 | 浙大求是高等研究院脑机接口研究所
  7. HTML 基本学习------更新至链接
  8. hack the box explore
  9. [内附完整源码和文档] 基于JAVA的合同管理系统
  10. 使用msfvenom生成木马用于监听别人的操作