注意 單片機必須是52rc不能用60s2
*/
#include"main.h"
#include"peizhi.h"
#include"smg.h"
#include"eeprom.h"
sfr WDT_CONTR=0XE1;
unsigned char HighRH = 0; //高電平重載值的高字節
unsigned char HighRL = 0; //高電平重載值的低字節
unsigned char LowRH = 0; //低電平重載值的高字節
unsigned char LowRL = 0; //低電平重載值的低字節
/***********************按鍵定義**********************************/
bit d1 = 1;
bit d2 = 1;
bit d3 = 1;
uint8 ci;
uint8 ca = 0;
uint8 ca1 = 0;
uint16 cb = 0;
void key(); //按鍵函數聲明
void ConfigPWM(unsigned int fr, unsigned char dc); //頻率和占空比調節函數
void main()
{
bit q1 = 1;
bit q2 = 1;
bit q3 = 1;
ca = EEPROMReadByte(0);
cb = EEPROMReadByte(1)*255+EEPROMReadByte(2);
EA = 1; //開總中斷
peizhit1(1); //配置T0定時2ms
while(1)
{
ConfigPWM(cb, ca); //頻率100Hz,占空比10%
if(d1 != q1)
{
q1 = d1;
if(d1 == 0)
{
ca1++;
if(ca1 >= 2)
{
ca1 = 0;
}
}
}
if(ca1 == 1)
{
if(d2 != q2)
{
q2 = d2;
if(d2 == 0)
{
ca++;
EEPROMSectorErase(0);
EEPROMWriteByte(0,ca);
EEPROMWriteByte(2,cb);
EEPROMWriteByte(1,cb>>8);
if(ca >= 99)
{
ca = 99;
}
}
}
if(d3 != q3)
{
q3 = d3;
if(d3 == 0)
{
if(ca>0)
{
ca--;
EEPROMSectorErase(0);
EEPROMWriteByte(0,ca);
EEPROMWriteByte(2,cb);
EEPROMWriteByte(1,cb>>8);
}
}
}
}
if(ca1 == 0)
{
if(d2 == 0)
{
cb++;
EEPROMSectorErase(0);
EEPROMWriteByte(0,ca);
EEPROMWriteByte(2,cb);
EEPROMWriteByte(1,cb>>8);
if(cb >= 200)
{
cb = 200;
}
}
if(d3 == 0)
{
if(cb>0)
{

[
1] [
2]

關鍵字:STC89C52RC 單片機 頻率 占空比
引用地址:
基于STC89C52RC單片機制作的頻率及占空比均可調程序
推薦閱讀最新更新時間:2025-06-04 15:34
STM32CUBEIDE(11)----輸出PWM及修改PWM頻率與占空比
概述 本章STM32CUBEMX配置STM32F103輸出PWM,并在示波器中查看效果。 需要樣片的可以加Qun申請:615061293。 生成例程 使用STM32CUBEMX生成例程,這里使用NUCLEO-F103RB開發板 查看原理圖,PA8設置為PWM輸出管腳。 生成獨立的文件。 工作過程 查看下面工作原理圖可以得知,時鐘可以由內部Internal clock產生或者外部ETR。 同時可以設置復位,使能,向上/向下,計數。 查看下列文檔可以得知,定時器主要有TIMx_CNT、TIMx_PSC、TIMx_ARR、TIMx_RCR控制。 同時預分頻器(TIMx_PSC)范圍位1-65535。 查看TIMx
[單片機]
如何利用STM32通用定時器實現輸出兩路占空比和頻率可調的互補PWM
MCU:STM32F334C8T6 PWM即脈寬調制,可以用來驅動電機,驅動全橋電路等,用過STM32的知道,用它的定時器可以很容易實現PWM輸出,使用高級定時器的TIMx_CHy和TIMx_CHyN可以輕易實現互補PWM(complementary PWM)波形的輸出。 高級定時器資源有限,本文利用通用定時器(General-purpose timers)實現互補PWM輸出,在高級定時器資源不夠時不失為一個好方法。 STM32的定時器PWM有兩種模式:PWM mode 1和PWM mode 2 工作原理: PWM mode 1 - In upcounting, channel 1 is active as lon
[單片機]
avr頻率占空比可調波形輸出子函數
#ifndef _KPWM_H_ #define _KPWM_H_ /*************avr頻率占空比可調波形輸出子函數**************/ ///形參:Fclk賦值設定頻率(單位為k) 范圍: 1K 到 256K /// rat設定占空比(單位為百分比)eg:40 則輸出方波占空比為百分之四十 //頻率誤差小于2%,占空比誤差小于5% //PWM頻率計算公式為f=fox/N(1+TOP) fox為晶振頻率 N為分頻系數 TOP為計數計數最大值 //TOP的反算公式為TOP=FOX/NFclk-1 //在15模式下計數最大值為OCR1A //比較值放在OCR1B //15模式下時鐘1到達OCR1B時OC1B
[單片機]
STC89C52RC單片機超聲波測距程序
網絡上集的STC89C52RC單片機超聲波測距程序及 電子制作 實物,使用單片機最小系統進行試驗,超聲波部分使用HC-SR04模塊,測量范圍:4-300cm,實際測量上最長可達到5.70m。下面是實物圖,文章后面附源程序。 4-300cn,實際測量上最長可達到5.7m #include 'AT89X51.H' //頭文件 unsigned char code fseg ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char code segbit ={0x80,0x40
[單片機]
51單片機測速度或測方波頻率兩用程序
#include reg52.h #include intrins.h #define uchar unsigned char //定義一下方便使用 #define uint unsigned int unsigned char code tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; char DAT ={0}; uint count; char flag; uint t=0; uint x ; //unchar num; //uchar temp; void DELAY_MS (unsign
[單片機]
一種基于MSP430單片機的交流頻率檢測系統
1 引言
由于頻率信號具有抗干擾性強、易于傳輸、測量準確度較高等優點,因此許多非頻率量的傳感信號都轉換為頻率量來進行測量和處理。因此頻率測量方法愈來愈引起關注和研究。
頻率測量是測量和控制系統領域的最基本測量之一。當今用的最多的測量信號頻率的儀器是頻率計,由于頻率計在測量過程中需要一個時基信號作為測量信號頻率的時基。時基信號一般是由本機振蕩電路發生的,盡管現在多用石英晶體振蕩器,但是仍然不能保證時基信號的精度,因此頻率計的測量精度也就成了問題。傳統的頻率測量方法有兩種 :一種是測頻法,在一定時間間隔T內測出待測信號重復變化次數N,頻率即為 ;另一種方法是測周法,在被測信號的一個周期內測出標準高頻信號f的個數N,則被測
[單片機]
ZDS2022示波器百集實操視頻之83:正占空比搜索
大家好,之前我們在第38期百集實操視頻中,我們與大家分享了ZDS2022示波器脈寬搜索的功能。示波器搜索功能實用、方便。但有用戶對ZDS2022示波器的搜索功能還不是很熟悉。事實上,ZDS2022示波器全硬件搜索功能強大,不僅速度快,而且包括邊沿、脈寬、上升/下降時間、周期/頻率、占空比和欠幅多種搜索類型。 本期視頻我們就來見證下ZDS2022示波器的正占空比搜索功能。 我們按下【Horiz】鍵,將儲存深度設為最大值112Mpts,轉動水平時基旋鈕將水平時基調到5ms/div,按下【Measure】鍵,打開搜索設置選項,將搜索使能設為ON,將搜索模式設為正占空比,限定符設為小于,小于值設為30%,按下【Single】按鍵,
[測試測量]
電子制作者設計的AVR數字顯示頻率表
這是一款體積非常小巧的電子制作,但是功能異常強大,可以非常容易地嵌入安裝在儀表面板上,適合愛好者自制或用于改造老式儀表。 電路僅用了兩塊集成電路,CD4069用于小信號的放大和整形,AT90S2313則是一塊精簡指令的高速 單片機 ,它在8M時鐘下的性能超過了51系列在100M時鐘下的性能,在電路中擔任測量、運算和顯示驅動。大多數的數顯頻率計采用一個“秒閘門”計數,因而在低頻時測量誤差加大,也無法顯示小數,而本電路采用了脈沖寬度和密度雙重測量技術,輔以高速浮點運算,因而測量精度高,并能自動轉換量程,顯示小數。例如測量的結果可能是 0.543,261.4等等,利用它測量交流電頻率,你可以看到結果一般在 49.82-50.
[單片機]