找回密码
 立即注册

QQ登录

只需一步,快速开始

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

pwm按键调节led亮度仿真+单片机源代码

  [复制链接]
跳转到指定楼层
楼主
pwm按键调节led亮度仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

单片机源程序如下:
  1. #include <reg51.h>

  2. typedef unsigned char uint8;
  3. typedef unsigned int  uint16;

  4. sbit down = P3^0;
  5. sbit up = P3^1;

  6. uint8 t = 0;
  7. uint8 PWM_T = 0;   //占空比控制变

  8. void delay_1ms(uint16 t)
  9. {
  10.         uint16 x,y;
  11.         for(x=t;x>0;x--)
  12.                 for(y=120;y>0;y--);
  13. }


  14.          
  15. /****************************************************
  16.                   主程序
  17. ****************************************************/
  18. void main(void)      
  19. {

  20.         TMOD = 0x02;   //定时器0,工作模式2,8位定时模式
  21.         TH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)
  22.         TL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)
  23.         TR0=1;       //启动定时器
  24.         ET0=1;       //允许定时器0中断
  25.         EA=1;        //允许总中断
  26.         P2=0xff;          //初始化P1,输出端口
  27.         PWM_T=30;
  28.          while(1)      
  29.        
  30.          {   
  31.                    if(!up)
  32.                          {
  33.                                 if(PWM_T<250)
  34.                                         {
  35.                                           PWM_T++;
  36.                                         }
  37.                                
  38.                                 delay_1ms(10);
  39.                         }
  40.                  if(!down)
  41.                          {
  42.                                 if(PWM_T>0)
  43.                                         {
  44.                                           PWM_T--;
  45.                                         }
  46.                                
  47.                                 delay_1ms(10);
  48.                         }

  49.        
  50.          }      
  51. }
  52. /****************************************************
  53.                /定时器0中断模拟PWM
  54. ****************************************************/
  55. timer0() interrupt 1  
  56. {
  57.          t++;    //每次定时器溢出加1
  58.          
  59.          if(t==250)   //PWM周期 100个单位
  60. ……………………

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

所有资料51hei提供下载:
-pwm调光.zip (56.56 KB, 下载次数: 216)


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

使用道具 举报

沙发
ID:253425 发表于 2017-12-20 19:42 | 只看该作者
好东西  学习学习
回复

使用道具 举报

板凳
ID:276432 发表于 2018-1-29 09:30 | 只看该作者
要是加个数码管显示怎么加啊
回复

使用道具 举报

地板
ID:64253 发表于 2018-4-12 16:21 | 只看该作者
先看看
回复

使用道具 举报

5#
ID:355402 发表于 2018-6-20 17:53 | 只看该作者
哈可以吧
回复

使用道具 举报

6#
ID:355709 发表于 2018-6-21 09:58 | 只看该作者
效果不错
回复

使用道具 举报

7#
ID:334972 发表于 2018-6-21 15:31 | 只看该作者
缺少按键程序
回复

使用道具 举报

8#
ID:334972 发表于 2018-6-21 15:42 | 只看该作者
按键程序没有,这样子叫我们怎么仿真?浪费墨币
回复

使用道具 举报

9#
ID:585365 发表于 2019-8-20 21:03 | 只看该作者
学习下
回复

使用道具 举报

10#
ID:713781 发表于 2020-3-31 14:13 | 只看该作者
奇偶611 发表于 2018-1-29 09:30
要是加个数码管显示怎么加啊

我也想加一个数码管,你最后做出来了吗
回复

使用道具 举报

11#
ID:713781 发表于 2020-3-31 14:19 | 只看该作者
设计很完美 棒
回复

使用道具 举报

12#
ID:695749 发表于 2020-3-31 15:44 | 只看该作者
设计很好,谢谢分享!
回复

使用道具 举报

13#
ID:713781 发表于 2020-4-4 14:50 | 只看该作者
125844584 发表于 2020-3-31 14:13
我也想加一个数码管,你最后做出来了吗

你当时那个设计出来了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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