找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机舵机控制OLED屏幕显示角度源程序

[复制链接]
跳转到指定楼层
楼主
ID:496492 发表于 2019-8-1 23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
辉盛的舵机可以转动,银燕的转不了。分享出来希望有人能解决

  1. //////////////////////////////////////////////////////////////////////////////////         
  2. //              ----------------------------------------------------------------
  3. //              GND    电源地
  4. //              VCC  接5V或3.3v电源
  5. //              SCK   P1^0(SCL)D1
  6. //              SDA   P1^1(SDA)D2
  7. //              RES  接P12
  8. //              DC   接P13
  9. //              CS   接P14               
  10. //              ----------------------------------------------------------------
  11. //******************************************************************************/
  12. #include "reg52.h"
  13. #include <oled.h>
  14. #define  u8 unsigned char
  15. #define  u32 unsigned int
  16. sbit pwm1=P2^0;
  17. sbit pwm2=P2^1;
  18. sbit duoji=P2^2;
  19. u8 count=0;
  20. u8 biaoshi=0;
  21. u8 jiaodu=12;

  22. void delay()
  23. {
  24.         u8 i,j,k;
  25.         for(k=0;k<50;k++)
  26.         for(i=0;i<250;i++)
  27.         for(j=0;j<250;j++)
  28.                                         ;
  29. }

  30. void xianshi()
  31. {
  32.         OLED_ShowCHinese(32,0,0);
  33.         OLED_ShowCHinese(48,0,1);
  34.         OLED_ShowCHinese(64,0,2);
  35.         OLED_ShowCHinese(80,0,3);
  36.        
  37.         OLED_ShowCHinese(0,2,1);
  38.         OLED_ShowString(16,2,":");
  39.         OLED_ShowNum(32,2,jiaodu,6,16);
  40.         OLED_ShowNum(32,4,count,6,16);

  41. }

  42. void main()
  43. {
  44.         TMOD=0X10;                                        //T1工作方式1
  45.         TH1=(65536-456)/256;//
  46.         TL1=(65536-456)%256;//一毫秒的初值
  47.         EA=1;//总中断
  48.         ET1=1;//T1中断允许
  49.         TR1=1;//启动T1开始计数
  50.         OLED_Init();                        //初始化OLED  
  51.         while(1)
  52.         {
  53.                 if(jiaodu<17)
  54.                 {jiaodu ++;        delay();}
  55.                 else
  56.                 {jiaodu =12;        delay();}
  57.                 xianshi();       
  58.         }
  59. }

  60. void zhongduan() interrupt 3  //T1中断类型为3
  61. {
  62.         TH1=(65536-92)/256;//
  63.         TL1=(65536-92)%256;//一毫秒的初值
  64.         if(count < jiaodu)
  65.                 duoji = 1;
  66.         else
  67.                 duoji = 0;
  68.         count++;
  69.         count = count%200;
  70. }
复制代码


舵机控制OLED 屏幕显示.zip

65.7 KB, 下载次数: 29, 下载积分: 黑币 -5

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:496492 发表于 2019-8-4 14:07 | 只看该作者
已解决,不是程序问题,I/O口输出电压过高导致,加一个LED完美解决
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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