|
這是我以前做的一個課程設計,通過藍牙APP發送指令,能夠調節燈帶亮度。燈帶通過晶閘管控制的。控制部分:
1.png (1.51 MB, 下載次數: 160)
下載附件
2018-5-11 00:42 上傳
硬件整體圖:
2.png (1006.62 KB, 下載次數: 170)
下載附件
2018-5-11 00:43 上傳
單片機源程序如下:
- #include <STC15.h>
- #include "OLED_Init.h"
- #include "UART.h"
- #include "pwm.h"
- void main()
- {
- Init_OLED();
- UartInit();
- Init_T0_PWM();
-
- EA = 1;
-
- while(1)
- {
- writeTime();
- RH(); //讀取溫度
- OLED_ShowString(48,2,timeData,16); //顯示當前時間
- OLED_ShowNum(48,4,Temperature,2,16); //顯示溫濕度
- OLED_ShowNum(48,6,Humidity,2,16);
- }
- }
復制代碼-
- /*------------------------------------------------------------------*/
- /* If you want to use the program or the program referenced in the */
- /* article, please specify in which data and procedures from STC */
- /*------------------------------------------------------------------*/
- #include <stc15.h>
- #include "PWM.h"
- /************* 功能說明 **************
- 本程序演示使用定時器做軟件PWM。
- 定時器0做16位自動重裝,中斷,從T0CLKO高速輸出PWM。
- 本例程是使用STC15F/L系列MCU的定時器T0做模擬PWM的例程。
- PWM可以是任意的量程。但是由于軟件重裝需要一點時間,所以PWM占空比最小為32T/周期,最大為(周期-32T)/周期, T為時鐘周期。
- PWM頻率為周期的倒數。假如周期為6000, 使用24MHZ的主頻,則PWM頻率為4000HZ。
- ******************************************/
- #define ZQ 10 //ZD:周期=ZD*100US
- #define ZB
- #define PWM_HIGH_MIN 0 //限制PWM輸出的最小占空比。用戶請勿修改。
- #define PWM_HIGH_MAX 10 //20級光強度調節
- sbit PWM_OUT = P0^0; //定義PWM輸出引腳。
- typedef unsigned char u8;
- typedef unsigned int u16;
- typedef unsigned long u32;
- unsigned int PWM_Temp=0,PWM_ZB=1;
- /****************定時器1初始化****************/
- void Init_T0_PWM(void) //100微秒@22.1184MHz
- {
- AUXR |= 0x80; //定時器時鐘1T模式
- TMOD &= 0xF0; //設置定時器模式
- TMOD |= 0x01; //設置定時器模式
- TL0 = 0x5C; //設置定時初值
- TH0 = 0xF7; //設置定時初值
- TF0 = 0; //清除TF0標志
- TR0 = 1; //定時器0開始計時
- ET0 = 1;
- }
- /********************* Timer0中斷函數************************/
- void timer0_int (void) interrupt 1 using 1
- {
- TL0 = 0x5C; //設置定時初值
- TH0 = 0xF7; //設置定時初值
-
- if(PWM_Temp==ZQ) PWM_Temp=1;
-
- if(PWM_ZB >= PWM_HIGH_MAX) PWM_ZB = PWM_HIGH_MAX; //如果寫入大于最大占空比數據,則強制為最大占空比。
- if(PWM_ZB <= PWM_HIGH_MIN) PWM_ZB = PWM_HIGH_MIN; //如果寫入小于最小占空比數據,則強制為最小占空比。
-
- if(PWM_ZB>=PWM_Temp) {PWM_OUT=1;}else{PWM_OUT=0;}
- PWM_Temp++;
- }
復制代碼
0.jpg (39.83 KB, 下載次數: 142)
下載附件
2018-5-11 05:15 上傳
所有資料51hei提供下載:
藍牙調光程序.rar
(85.94 KB, 下載次數: 29)
2018-5-11 00:44 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|