找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1948|回复: 0
收起左侧

基于stm32单片机的智能垃圾桶程序与Proteus仿真图

[复制链接]
ID:1060174 发表于 2023-1-5 18:50 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "adc.h"
  8. #include "motor.h"



  9. int main(void)
  10. {        
  11. int key=0;         
  12.   u16 adcx=0;
  13.          int i;
  14.         int str=0;
  15.         //float temp;
  16.         delay_init();                     //延时函数初始化         
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  18.         uart_init(115200);                 //串口初始化为115200
  19.          Adc_Init();                                  //ADC初始化
  20.   motor_init();
  21.         KEY_Init(); //IO初始化
  22.         while(1)
  23.         {
  24.                
  25.                
  26. //                key=Remote_Scan();        
  27. //         // printf("发送消息\n");
  28. //                //printf("%d\n",adcx);
  29. //                adcx=Get_Adc_Average(ADC_Channel_1,10);
  30. //                switch(key)
  31. //                        {
  32. //                                
  33. //                                case 104:str=1;break;                  
  34. //                                case 152:str=2;break;           
  35. //                                case 176:str=3;break;            
  36. //                                case 48:str=4;break;                    
  37. //                                case 24:str=5;break;                    
  38. //                                case 122:str=6;break;                  
  39. //                                case 16:str=7;break;                                                                  
  40. //                                case 56:str=8;break;         
  41. //                                case 90:str=9;break;
  42. //                                case 66:str=0;break;
  43. //                        }
  44. //                adcx=4096-adcx;
  45. //                printf("\n     %d/n",adcx);
  46. ////                i=adcx/1000;
  47.                 //if(PAin(3)==0)//黑色指示灯亮,代表0
  48.                         if(PAin(3)==0)

  49.                         {
  50.                                                 delay_ms(20);
  51.                                         if(PAin(3)==0)
  52.                                         {
  53.                                                 if(PAin(5)==0)
  54.                                                 {
  55.                                                                 printf("垃圾桶1打开  \r\n");
  56.                                                         motor_back1(3,4);
  57.                                                 
  58.                                                 
  59.                                                 
  60.                                                 }
  61.                                                 else
  62.                                                 {
  63.                                                                 printf("垃圾桶2打开 \r\n");
  64.                                                 motor_back2(3,4);
  65.                                                 }
  66.                                                         while(1)
  67.                                                         {
  68.                                                         if(PAin(3)==1)
  69.                                                         {     
  70.                                                                        delay_ms(20);
  71.                                                       if(PAin(3)==1)
  72.                                                                                                 {
  73.                                                                                                 break;
  74.                                                                                                 }
  75.                                                         
  76.                                                         }
  77.                                                 }
  78.                                                         if(PAin(5)==0)
  79.                                                         motor_front1(3,4);
  80.                                                 else
  81.                                                         motor_front2(3,4);
  82.                                                         
  83.                                         }
  84.                         }
  85.                         
  86.                         

  87.         }
  88. }
复制代码
本人初学,仅供参考,存在错误和不足之处,请大家回帖多多指教,切勿照搬,文件下载:
Keil代码与Proteus8.13仿真下载:
基于stm32智能垃圾桶.7z (284.31 KB, 下载次数: 60)

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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