找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3339|回复: 1
收起左侧

中颖单片机PWM按键控制电机转速SH88F516源程序

[复制链接]
ID:246796 发表于 2017-11-18 04:47 | 显示全部楼层 |阅读模式
实现本功能的中颖MCU源码如下:
  1. /******************************
  2. 说明:
  3. SH88F516单片机继承了3个8位PWM模块,可以分别通过各自的PWMCON寄存器控制PWM模块的时钟,PWMP寄存器控制PWM输出波形的周期,PWMD寄存器控制PWM输出波形的
  4. 占空比,从而产生周期和占空比分别可调整的脉宽调制波形.在PWM输出允许期间可以修改这三个寄存器,但在下一个PWM周期修改才会起作用.        PWM定时器提
  5. 供3个中断源,在每个PWM周期都会产生中断.他们有不同的标志位,共享一个中断向量地址.
  6. 本程序通过按键S1,S2,S3来调节电机转速,S1--慢速  S2--中速  S3--快速
  7. 直流电机的调速实际上是通过改变PWM的占控比来实现的,因而可以实现多档速度的控制.
  8. 要求:打开J14的1脚
  9. ************************/
  10. #include <sh88f516.h>
  11. unsigned char Temp;
  12. void init();
  13. main()
  14. {
  15.         init();
  16.                                        
  17.     while(1) ;
  18. }
  19. void init()
  20. {
  21.         CLKCON = 0x00;                        //系统时钟=osc
  22.         PWM0P = 100;                        //PWM0输出周期   = PWM0P[7-0]*PWM0时钟
  23.         PWM0D = 90;                                //PWM0输出占空比 = PWM0D[7-0]*PWM0时钟                 
  24.         PWM0CON = 0xB1;                        //PWM0控制寄存器; 1000 0001---打开PWM0定时器,并从PWM0管脚输出  占空比极性为高,时钟为系统时钟的1/16
  25.         IENC = 0x70;                    //IENC = 0111 0000B   即 EX4选择寄存器打开4,5,6三个通道
  26.         EXF0 = 0x01;                        //EX4采用下降沿方式触发
  27.         IEN1 = 0x60;                    //IEN1 = 0110 0000B   即 EX4=1 EPWM=1        打开外部中断4  开启PWM中断        不能使用位操作,不具备位寻址功能
  28.         EA = 1;                                        //开启总中断
  29.         Temp = 90;
  30. }
  31. void PWM_INT() interrupt 12  using 3  //PWM0/1/2的中断号共享为12.
  32. {
  33.         if(PWM0CON & 0x02)                                  //判断是否为PWM0中断?
  34.         {
  35.                 PWM0D = Temp;                 //占空比可调
  36.         }
  37.         PWM0CON &= 0xFD;                              //清除中断标志位        PWMIF=0但是这边不能使用位操作,不具备位寻址功能
  38. }
  39. void EX4_INT() interrupt 13  //using 2  //外部中断4的中断号为13.
  40. {
  41.         
  42.         IEN1 &= 0xBF;
  43.         if(IF44)                                                   //高速
  44.                     Temp = 100;        
  45.         if(IF45)                                                   //中速
  46.                     Temp = 90;        
  47.         if(IF46)                                                   //慢速
  48. …………
  49. …………
  50. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码



压缩包里面包含有中颖单片机sh88f516常用功能的源码,中文注释都很详细.
下载地址:http://www.51hei.com/bbs/dpj-98300-1.html



回复

使用道具 举报

ID:310898 发表于 2018-7-21 22:34 | 显示全部楼层
下载研究一下,高手有时间吗,我有个类似的   有偿帮我开发
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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