LED控制,流星管,長度、速度、延時等參數(shù)隨機(jī),MCU用STC12C5410,c語言
上傳時間: 2017-07-17
上傳用戶:qiaoyue
單片機(jī)應(yīng)用關(guān)于交通燈的控制,帶二十秒,十秒,0.5秒延時
標(biāo)簽: 單片機(jī)應(yīng)用 交通燈 控制
上傳時間: 2013-12-06
上傳用戶:懶龍1988
一個用PIC控制LED數(shù)碼管(三個數(shù)碼管并排用的那種)的程序,可以延時顯示幾組數(shù)
上傳時間: 2017-08-14
上傳用戶:清風(fēng)冷雨
8位七段碼動態(tài)掃描控制VHDL設(shè)計。動態(tài)掃描模塊,延時模塊,譯碼模塊。設(shè)計采用狀態(tài)機(jī)思路。
標(biāo)簽: VHDL 動態(tài)掃描 8位 七段碼
上傳時間: 2014-12-08
上傳用戶:1966640071
介紹Verilog HDL, 內(nèi)容包括: – Verilog應(yīng)用 – Verilog語言的構(gòu)成元素 – 結(jié)構(gòu)級描述及仿真 – 行為級描述及仿真 – 延時的特點及說明 – 介紹Verilog testbench • 激勵和控制和描述 • 結(jié)果的產(chǎn)生及驗證 – 任務(wù)task及函數(shù)function – 用戶定義的基本單元(primitive) – 可綜合的Verilog描述風(fēng)格
上傳時間: 2013-12-19
上傳用戶:shanml
在本課中,我們要用一個按鍵來實現(xiàn)跑馬燈的 10 級調(diào)速。這又會涉及到鍵的去抖的問 題。 本課的試驗結(jié)果是,每按一次按鍵,跑馬速度就降低一級,共 10 級。 這里我們又增加了一個變量 speedlever,來保存當(dāng)前的速度檔次。 在按鍵里的處理中,多了當(dāng)前檔次的延時值的設(shè)置。 請看程序: ―――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標(biāo)準(zhǔn)內(nèi)核的頭文件 sbit P10 = P1^0; //頭文件中沒有定義的 IO 就要自己來定義了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //長定時溢出標(biāo)記,預(yù)置是 0 uchar speed=10; //設(shè)置一個變量保存默認(rèn)的跑馬燈的移動速度 uchar speedlever=0; //保存當(dāng)前的速度檔次 char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的 //一個按鍵控制的 10 級變速跑馬燈試驗 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預(yù)定的寫入 P1 的值 uchar ledi; //用來指示顯示順序 uint n; RCAP2H =0x10; //賦 T2 的預(yù)置值 0x1000,溢出 30 次就是 1 秒鐘 RCAP2L =0x00; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //主程序循環(huán) { if(ldelay) //發(fā)現(xiàn)有時間溢出標(biāo)記,進(jìn)入處理 { ldelay=0; //清除標(biāo)記 P1=ledp[ledi]; //讀出一個值送到 P1 口 ledi++; //指向下一個 if(ledi==4) { ledi=0; //到了最后一個燈就換到第一個 } } if(!K1) //如果讀到 K1 為 0 { for(n=0;n<1000;n++); //等待按鍵穩(wěn)定 while(!K1); //等待按鍵松開 for(n=0;n<1000;n++); //等待按鍵穩(wěn)定松開 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //檔次和延時之間的預(yù)算法則,也可以用查表方法,做出 不規(guī)則的法則 } } } //定時器 2 中斷 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比較一個變化的數(shù)值,以實現(xiàn)變化的時間溢出,同時限制了最慢速 度為 1 秒 { t=0; ldelay=1;//每次長時間的溢出,就置一個標(biāo)記,以便主程序處理 } } ―――――――――――――――――――――― 請打開 lesson11 目錄的工程,編譯,運行,看結(jié)果: 按 K1,速度則降低一次,總共 10 個檔次。
上傳時間: 2017-11-06
上傳用戶:szcyclone
LED 一般是恒流操作的,如何改變 LED 的亮度呢?答案就是 PWM 控制。在一定的 頻率的方波中,調(diào)整高電平和低電平的占空比,即可實現(xiàn)。比如我們用低電平點亮一個 LED 燈,我們假設(shè)把一個頻率周期分為 10 個時間等份,如果方波中的高低電平占空比是 9:1, 這是就是一個比較暗的亮度,如果方波中高低電平占空比是 10:0,這時,全部是高電平, 燈是滅的。如果占空比是 5:5,就是一個中間亮度,如果高低比是 1:9,是一個比較亮的 亮度,如果高低是 0:10,這時全部是低電平,就是最亮的。 實際上應(yīng)用中,電視屏幕墻中的幾十百萬 LED 象素都是這樣控制的,而且每一個象素 都有紅綠藍(lán) 3 個 LED,每個 LED 可以變化的亮度是幾百到幾萬或者更多的級別,以實現(xiàn)真 彩色的顯示。還有在您的手機(jī)中,背光燈的亮度如果是可以變化的,也應(yīng)該是這種工作方式。 目前的城市彩燈也有很多都使用了 LED,需要控制亮度是也是 PWM 控制。 下面來分析我們的例程,在這個例程中,我們將定時器 2 溢出定為 1/1200 秒。每 10 次脈沖輸出一個 120HZ 頻率。這每 10 次脈沖再用來控制高低電平的 10 個比值。這樣,在 每個 1/120 秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制 LED 燈的 10 個 級別的亮度。 為什么輸出方波的頻率要 120HZ 這么高?因為如果頻率太低,人眼就會看到閃爍感 覺。一般起碼要在 60HZ 以上才感覺好點,120HZ 就基本上看不到閃爍,只能看到亮度的變 化了。 下面請看程序,程序中有比較多的注釋: ――――――――――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標(biāo)準(zhǔn)內(nèi)核的頭文件 sbit P10 = P1^0; //要控制的 LED 燈 sbit K1= P3^2; //按鍵 K1 uchar scale;//用于保存占空比的輸出 0 的時間份額,總共 10 份 char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的 //模擬 PWM 輸出控制燈的 10 個亮度級別 void main(void) // 主程序 { uint n; RCAP2H =0xF3; //賦 T2 的預(yù)置值,溢出 1 次是 1/1200 秒鐘 RCAP2L =0x98; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //程序循環(huán) { ;//主程序在這里就不斷自循環(huán),實際應(yīng)用中,這里是做主要工作 for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度 scale++; if(scale==10)scale=0; } } //1/1200 秒定時器 2 中斷 timer2() interrupt 5 { static uchar tt; //tt 用來保存當(dāng)前時間在一秒中的比例位置 TF2=0; tt++; if(tt==10) //每 1/120 秒整開始輸出低電平 { tt=0; if(scale!=0) //這里加這一句是為了消除滅燈狀態(tài)產(chǎn)生的鬼影 P10=0; } if(scale==tt) //按照當(dāng)前占空比切換輸出高電平 P10=1; } ―――――――――――――――――― 在主程序中,每延時一段時間,就自動換一個占空比,以使亮度自動變化,方便觀察。 編譯,運行,看結(jié)果。 可以看到,LED 的亮度以每種亮度 1 秒左右不斷變化,共有 10 個級別。
上傳時間: 2017-11-06
上傳用戶:szcyclone
STM32F407VGT6精確脈沖控制步進(jìn)電機(jī)源碼,采用STM32F407VGT6芯片,拋棄單脈沖輸出方式,直接使用普通PWM輸出方式精確輸出脈沖個數(shù),每個脈沖都可以改變頻率和占空比。PWM+中斷,簡單粗暴。#include "sys.h"#include "delay.h"#include "pwm1.h"#include "pwm2.h"#include "pwm3.h"//注釋見pwm1.c文件extern int count2;int main(void){ delay_init(168); //初始化延時函數(shù) TIM2_Init(1,167); TIM3_Init(1,167); TIM5_Init(1,167); // delay_ms(1000); TIM2_OUTPUT(); TIM3_OUTPUT(); TIM5_OUTPUT(); while(1) { //TIM2每次輸出完10個脈沖后間隔100ms再次輸出 if(count2 >= 10){ delay_ms(100); TIM2_OUTPUT(); } }
標(biāo)簽: stm32f407vgt6 脈沖控制 步進(jìn)電機(jī)
上傳時間: 2021-10-26
上傳用戶:xsr1983
本文介紹了基于SG3525的全橋逆變SWPM控制波形電路,包括正弦波發(fā)生電路、整流電路、SWPM脈沖產(chǎn)生電路、延時死區(qū)調(diào)整電路。該電路簡單、易于實現(xiàn),為正弦波逆變器SWPM電路設(shè)計提供一種借鑒。
上傳時間: 2022-04-03
上傳用戶:
本文所研究的課題為電磁感應(yīng)加熱控制系統(tǒng)的設(shè)計與實現(xiàn)。文章介紹了電磁感應(yīng)加熱的工作原理,系統(tǒng)預(yù)設(shè)功能要求及具體實現(xiàn)方案,分析了系統(tǒng)硬件電路和控制軟件設(shè)計的整個過程,最終研制出一款功能完備、人機(jī)交互友好、工作穩(wěn)定、性能優(yōu)良的電磁感應(yīng)加熱系統(tǒng)。 該系統(tǒng)硬件電路部分主要包括主工作電路,IGBT驅(qū)動電路,同步電路和功率整定電路,鍋具檢測電路,電源電路,各種保護(hù)電路及主控制電路。保護(hù)電路具體包括上電延時保護(hù)IGBT,整流橋輸出過壓保護(hù),IGBT集電極過壓保護(hù),市電過壓、欠壓保護(hù),負(fù)荷電流過大保護(hù),IGBT過溫保護(hù),鍋底過溫保護(hù)。主控制電路采用三星單片機(jī)作為主控芯片,通過調(diào)節(jié)PWM信號占空比控制輸出功率。系統(tǒng)主要實現(xiàn)了功率控制、定時/預(yù)約、無鍋檢測、暫停、異常報警(無鍋報警、市電過壓/欠壓報警、負(fù)荷電流過大報警、IGBT溫度傳感器失效報警、IGBT溫度過高報警、鍋底溫度傳感器失效報警、鍋底溫度過高報警)等功能,設(shè)置了6個按鍵可供用戶操控,配置的液晶顯示屏可以實時顯示系統(tǒng)當(dāng)前狀態(tài)信息。 該系統(tǒng)控制軟件設(shè)計部分,依據(jù)模塊化程序設(shè)計思想,把系統(tǒng)預(yù)設(shè)功能需求劃分為各個功能模塊,然后分別設(shè)計了各功能模塊的軟件,最終完成了系統(tǒng)控制軟件的設(shè)計。實現(xiàn)了系統(tǒng)的智能化,包括功率自動調(diào)節(jié)匹配,鍋具自動檢測,定時控制,預(yù)約時間到自動開機(jī),異常自動保護(hù)報警,液晶屏實時顯示系統(tǒng)狀態(tài)信息。經(jīng)過反復(fù)對系統(tǒng)軟硬件聯(lián)調(diào),測試系統(tǒng)性能,結(jié)果表明本控制系統(tǒng)運行安全、穩(wěn)定、可靠,達(dá)到了設(shè)計要求。
標(biāo)簽: 電磁感應(yīng) 液晶顯示 控制系統(tǒng)
上傳時間: 2022-06-09
上傳用戶:20125101110
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1