找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机通过蓝牙串口调pwm的问题

[复制链接]
跳转到指定楼层
楼主
ID:669393 发表于 2021-1-29 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想弄个蓝牙串口调pwm的程序,pwm输出接的是开发板上LED灯,发现单独的pwm程序没问题,单独的蓝牙也能正常控制,可是两个程序加起来后,LED灯变得一闪一闪的,根本不是正常pwm输出的现象,也没法用手机控制,不知道是程序的问题,还是定时器0中断和串口中断优先级的问题?用的是stc89c52的单片机,是不是pwm得用定时器2,才能用蓝牙正常控制呢。。

单片机源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit pwm_out = P1^0;

  5. uint num = 200;
  6. uint pwm = 0;

  7. void UART_Init()
  8. {
  9.         SM0 = 0;
  10.         SM1 = 1;
  11.         REN = 1;
  12.         EA = 1;
  13.         ES = 1;
  14.         TMOD = 0x20;
  15.         TH1 = 0xfd;
  16.         TL1 = 0xfd;
  17.         TR1 = 1;;
  18. }
  19. void time0int()
  20. {
  21.         TMOD = 0x02;
  22.         TH0 = 220;
  23.         TL0 = 220;
  24.         TR0 = 1;
  25.         EA = 1;
  26.         ET0 = 1;
  27. }
  28. void time0() interrupt 1
  29. {
  30.         TR0 =0;
  31.         TH0 = 220;
  32.         TL0 = 220;
  33.         pwm++;
  34.         if(pwm == 500)
  35.         pwm_out = pwm = 0;
  36.         if(num == pwm)
  37.         pwm_out = 1;
  38.         TR0 = 1;
  39. }
  40. void UART() interrupt 4
  41. {
  42.         if(RI)
  43.         {
  44.                 RI = 0;
  45.                 switch(SBUF)
  46.                 {
  47.                         case 0x02: if(num<=450) num+=50; break;
  48.                         case 0x01: if(num >50); num-=50;; break;
  49.                 }        
  50.         }        
  51. }
  52. void main()
  53. {
  54.         time0int();
  55.         UART_Init();
  56.         while(1);
  57. }
复制代码



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

使用道具 举报

沙发
ID:390416 发表于 2021-1-30 10:27 | 只看该作者
你这程序写法有问题 你参考这个贴子
这是串口贴   http://www.51hei.com/bbs/dpj-200927-1.html
这是PWM贴 http://www.51hei.com/bbs/dpj-200820-1.html
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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