找回密码
 立即注册

QQ登录

只需一步,快速开始

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

电磁智能车的程序

[复制链接]
跳转到指定楼层
楼主
ID:273919 发表于 2018-1-9 18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发大家整个电磁智能车的程序

单片机源程序如下:
  1. #include "includes.h"
  2. sbit  Motor_EN=P2^1;
  3. sbit  LED1=P4^4;
  4. sbit  LED2=P4^5;
  5. unsigned char a=0;
  6. extern unsigned int AD0[6];           //保留六次数据
  7. extern   float Speed;   //小车转速 在cepin.c中定义

  8. void delay(unsigned short k) //延时
  9. {
  10.   unsigned short i,j;
  11.         for(i=0;i<k;i++)
  12.         for(j=0;j<2000;j++);
  13. }

  14. void main()
  15. {
  16.         WDTCN=0XDE;  //关闭看门狗
  17.         WDTCN=0XAD;
  18.        
  19.         OSCILLATOR_Init();        //系统时钟初始化,内部时钟的2倍
  20.         GPIO_Init();                //引脚初始化
  21.         TIM0_Init();                 //定时器0初始化,产生舵机用的低频PWM
  22.         PCA0_Init();                 //产生直流电机用的PWM
  23.         TIM1_Init();                  //用于防止小车撞墙
  24.         TIM3_Init();                 //定时器3初始化,用于ADC连续测量
  25.         ADC0_Init();
  26.         Init_EXT1();                  //检测起跑线
  27.         Frequent_Measure_Init();
  28.         SPI_Init();
  29.         EA=1;
  30.         LCD_Init();
  31.         LCD_Clear_Screen();
  32. // Motor_Duty(60);       
  33. //        DuoJi_Angle(108.9);
  34.         Motor_EN=1;
  35.        
  36.         while(1)
  37.         {       
  38.             LCD_Display_Num(1,0,AD0[0]);
  39.                 LCD_Display_Num(1,64,AD0[3]);
  40.                 LCD_Display_Num(3,0,AD0[1]);
  41.                 LCD_Display_Num(3,64,AD0[4]);
  42.                 LCD_Display_Num(5,0,AD0[2]);
  43.                 LCD_Display_Num(5,64,AD0[5]);
  44.                 LCD_Display_Str(7,0,"Speed:");
  45.                 LCD_Display_Num(7,48,(unsigned int)Speed);
  46.                 if((AD0[0]<300)||(AD0[1]<300)||(AD0[2]<300)||(AD0[3]<300)||(AD0[4]<300)||(AD0[5]<300))
  47.                 {
  48.                  TR1=1;
  49.                 }
  50.                 delay(300);
  51.         }
  52. }


  53.   void TIM1_Init(void)
  54. {
  55.         char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
  56.         SFRPAGE = TIMER01_PAGE;
  57.             
  58.          
  59.         TMOD=0X10;
  60.       
  61.         CKCON |=0X01;        //系统时钟的4分频                                                                                                                                                                                                                                              //定时器0时钟为外部时钟8分频
  62.        
  63.         TH1=0X10;        //5ms初值时间
  64.         TL1=0Xbe;
  65.    
  66.         ET1=1;//打开定时器0中断         
  67. //        TR1=1;//打开定时器0  
  68.        
  69.         SFRPAGE = SFRPAGE_SAVE;             // Restore SFR page
  70. }

  71. void TIM1_ISR()interrupt 3
  72. {

  73.         char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
  74.         SFRPAGE = TIMER01_PAGE;
  75.         a++;
  76.         TH1=0X10;  //5ms初值时间
  77.         TL1=0Xbe;
  78.         if(a==400)
  79.         {
  80.          a=0;
  81.          TR1=0;
  82.          if((AD0[0]<300)||(AD0[1]<300)||(AD0[2]<300)||(AD0[3]<300)||(AD0[4]<300)||(AD0[5]<300))
  83.          Motor_EN=0;
  84.         }
  85.         SFRPAGE = SFRPAGE_SAVE;             // Restore SFR page
  86. }
  87. ……………………

  88. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
36组源程序.zip (105.99 KB, 下载次数: 27)


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

使用道具 举报

沙发
ID:280671 发表于 2018-2-27 20:46 | 只看该作者
这是k60的嘛
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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