欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2843|回復: 0
打印 上一主題 下一主題
收起左側

用ADC0808實現的PWM信號

[復制鏈接]
跳轉到指定樓層
樓主
ID:235200 發表于 2019-8-2 19:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
2019年電子設計競賽即將進行,其中電機和舵機的控制需需要用到PWM,我編寫了一個電位器調節PWM的仿真程序,希望能對你有所幫助。#include <regx52.h>//#include "ADC0809.h"
#define uchar unsigned char
#define uint unsigned int
sbit  CLOCK=P2^4;
sbit  START=P2^5;
sbit  EOC= P2^6;
sbit  OE=P2^7;

uchar addata,k;
uint tmp,high;
void adc0809();
void delay(uchar t)
  {
    uchar i,j;
    for (i=0;i<t;i++)
     for (j=0;j<123;j++);

    }

main()
{
   TMOD=0x11;              //定時計數器1設置方式1
   TH0=(65536-500)/256;               //初值0.5ms
   TL0=(65536-500)%256;
         TH1=0xff;
   TL1=0xf0;
   EA=1;
         ET0=1;
   ET1=1;                  //允許定時計數器1中斷以便產生CLOCK時鐘
         TR0=1;
         TR1=1;
   while(1)
   {
   START=0;
   OE=0;
   START=1;          //啟動ADC轉換
   START=0;
    while (!EOC)
    {
      adc0809();             //ADC轉換
      tmp=addata*196;        //數據處理,1個單位代表19.6mV  測出電壓在0-50000mv間
                  high=tmp/500;
    }
   }
}

void adc0809()       //讀ADC0809子程序
{
   P1=0xff;          //P1全部置一準備讀數據
   OE=1;
   addata=P1;        //讀出轉換數據賦與addata
   OE=0;             //讀數完畢
}

DS1() interrupt 1
{
        k++;               //中斷1次為0.5ms
        if (k<high)
                P3_0=1;          //輸出高電平
         else
                 P3_0=0;         //輸出低電平
        if (k==100)
                k=0;             //PWM周期為0.5*100ms
        TH0=(65536-500)/256;               //初值0.5ms
  TL0=(65536-500)%256;
}

void time1() interrupt 3
{
   CLOCK=~CLOCK;
   TH1=0xff;
   TL1=0xf0;
  }

ADC0808實現的PWM.rar

53.15 KB, 下載次數: 25, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表