找回密码
 立即注册

QQ登录

只需一步,快速开始

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

使用51单片机设计的简易方波发生器,可以同时输出多路占空比和频率不同的矩形波

[复制链接]
跳转到指定楼层
楼主
使用51单片机设计的简易方波发生器,可以同时输出多路占空比和频率不同的矩形波


单片机源程序如下:
  1. #include<reg51.h>             //包含51单片机寄存器定义的头文件
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit p10=P1^0;
  5. sbit p11=P1^1;
  6. sbit p12=P1^2;
  7. sbit p13=P1^3;
  8. sbit p14=P1^4;
  9. sbit p15=P1^5;
  10. sbit p16=P1^6;
  11. sbit p17=P1^7;

  12. uchar cnt0,cnt1, cnt2, cnt3, cnt4, cnt5, cnt6, cnt7;
  13. void timeint(void) ;

  14. void main()
  15. {
  16.    
  17.    timeint();//无限循环
  18.    while(1)
  19.    {
  20.             if(cnt0==1)
  21.          {
  22.          p10=0;
  23.          }
  24.              if(cnt0==2)
  25.          {
  26.          p10=1;
  27.          cnt0=0;
  28.          }


  29.          if(cnt1==1)
  30.          {
  31.          p11=0;
  32.          }
  33.              if(cnt1==3)
  34.          {
  35.          p11=1;
  36.          cnt1=0;
  37.          }


  38.          if(cnt2==1)
  39.          {
  40.          p12=0;
  41.          }
  42.              if(cnt2==4)
  43.          {
  44.          p12=1;
  45.          cnt2=0;
  46.          }


  47.          if(cnt3==1)
  48.          {
  49.          p13=0;
  50.          }
  51.              if(cnt3==5)
  52.          {
  53.          p13=1;
  54.          cnt3=0;
  55.          }


  56.          if(cnt4==1)
  57.          {
  58.          p14=0;
  59.          }
  60.              if(cnt4==6)
  61.          {
  62.          p14=1;
  63.          cnt4=0;
  64.          }


  65.          if(cnt5==1)
  66.          {
  67.          p15=0;
  68.          }
  69.              if(cnt5==7)
  70.          {
  71.          p15=1;
  72.          cnt5=0;
  73.          }


  74.          if(cnt6==1)
  75.          {
  76.          p16=0;
  77.          }
  78.              if(cnt6==8)
  79.          {
  80.          p16=1;
  81.          cnt6=0;
  82.          }


  83.          if(cnt7==1)
  84.          {
  85.          p17=0;
  86.          }
  87.              if(cnt7==9)
  88.          {
  89.          p17=1;
  90.          cnt7=0;
  91.          }
  92.    }
  93. }

  94. void timeint(void)
  95. {
  96.    TMOD=0x01;          //使用模式1,16位定时器             
  97.    TH0=0xdc;              //给定初值,这里使用定时器计时0.01s
  98.    TL0=0x00;
  99.    EA=1;            //总中断打开
  100.    ET0=1;           //定时器T0中断打开
  101.    TR0=1;           //定时器T0开关打开
  102. }

  103. void time()interrupt  1    //T0中断服务程序
  104. {

  105.      cnt0++;
  106.      cnt1++;
  107.          cnt2++;
  108.          cnt3++;
  109.          cnt4++;
  110.          cnt5++;
  111.          cnt6++;
  112.          cnt7++;
  113. }
复制代码

所有资料51hei提供下载:
新建文件夹.zip (16.51 KB, 下载次数: 37)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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