在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機驅(qū)動CPLD的PWM正弦信號發(fā)生器設計

            單片機驅(qū)動CPLD的PWM正弦信號發(fā)生器設計

            作者: 時間:2013-02-06 來源:網(wǎng)絡 收藏

            下面用硬件描述語言來設計CPLD 的內(nèi)部電路,這里給出VerilogHDL 版本的參考代碼。

              module Mini51b_(P0,ALE,P27,WR,);// 模塊電路命名和端口說明。

              input [7:0]P0;// 數(shù)據(jù)輸入接MCU 數(shù)據(jù)P0 口

              input ALE,P27,WR;// 幾個MCU 讀寫控制引腳

              output ;//PWM 信號輸出

              wire [7:0]addr;// 內(nèi)部地址線

              reg [7:0]daPWMc,daPWMs;// 定義計數(shù)器和占空比設定寄存器

              reg [3:0]divPWM,divPWMc;// 分頻控制變量

              reg PWM;// 輸出鎖存器

              assign addr = ALE?P0 : addr; // 低八位地址鎖存

              always @(negedge WR)// 在MCU 寫信號有效時執(zhí)行寄存器設定

              begin

              case({P27,addr[4:0]}) // 根據(jù)地址選擇寄存器

              6'b10_1000: daPWMs = P0;// 寫帶地址的寄存器

              6'b10_1001: divPWM = P0[3:0];// 寫帶地址的寄存器

              default:begin// 其它地址則讓寄存器保持不變

              daPWMs = daPWMs;

              divPWM = divPWM;

              end

              endcase

              end

              always @(posedge ALE) begin// 這里利用MCU 的ALE 做時鐘信號

              if(divPWMc == divPWM) begin // 與分頻系數(shù)比較

              divPWMc=0;

              if(daPWMc100) daPWMc = daPWMc+1; //PWM 調(diào)整精度1%

              else daPWMc = 0;

              if(daPWMs daPWMc) PWM = 0;//PWM 發(fā)生器

              else PWM = 1;

              end

              else divPWMc = divPWMc+1;// 時鐘分頻

              end

              endmodule

              關于單片機與CPLD 之間的接口請讀者參考本刊前幾期筆者撰寫的文章。

              與之對應的MCU 測試程序為:

              #include reg51.h>

              #include absacc.h>

              #define PWM XBYTE[0xffe8]

              #define DIV XBYTE[0xffe9]

              void main()

              {

              DIV = 15; //PWM 信號頻率計算晶振22.1184M/6/100/

             ?。―IV+1)=2.30K(實測2.281K)

              PWM=50; // 設定占空比50%,前面計數(shù)器范圍為0~99

              while(1) ;

              }

            pwm相關文章:pwm原理


            負離子發(fā)生器相關文章:負離子發(fā)生器原理
            分頻器相關文章:分頻器原理
            塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理
            脈寬調(diào)制相關文章:脈寬調(diào)制原理
            離子色譜儀相關文章:離子色譜儀原理


            評論


            相關推薦

            技術專區(qū)

            關閉