12單片機例程分享
0.png (50.16 KB, 下載次數: 64)
下載附件
2018-6-15 03:32 上傳
0.png (42.07 KB, 下載次數: 61)
下載附件
2018-6-15 03:33 上傳
參考1- 點亮LED燈
參考10- 串口查詢方式發送
參考11- 串口查詢方式收發
參考12-串口中斷方式
參考13- 外部中斷0 低電平觸發
參考14- 外部中斷0 下降沿觸發
參考15- 外部中斷1 低電平觸發
參考16- 外部中斷1 下降沿觸發
參考17- 步進電機轉動1
參考18- 步進電機轉動2
參考19- LCD1602液晶屏顯示
參考2- LED燈閃爍
參考20- 0.96寸OLED液晶屏顯示
參考3- PWM呼吸燈
參考4- P4端口8個IO口輸出高低電平
參考5- KEY按鍵控制LED亮滅
參考6- 定時器0
參考7- 定時器1
參考8- 1路1ms方波
參考9- 串口Printf顯示
單片機源程序如下:
- /*******************************************************************
- * 實驗平臺: STC12C5A60S2/STC89C52RC最小系統板
- * 技術人員: 小蜂人工作室
- * 年月時間: 2015.11
- * 簡單說明: 占空比方式改變LED燈顯示
- *******************************************************************/
- #include<reg52.h> /*頭文件包含特殊功能寄存器的定義*/
- //IO引腳定義;
- sbit LED=P1^0; // 用sbit關鍵字定義LED到P1.0端口
- void Delay(unsigned int t); //延時函數聲明
- /*********************************************************/
- /* 主函數 */
- /*********************************************************/
- void main (void)
- {
- // unsigned int Time=1000, PWM=0; //定義周期并賦值 (STC12C5A60S2芯片)
- unsigned int Time=500, PWM=0; //定義周期并賦值 (STC89C52RC芯片)
-
- while (1) //主循環
- {
- LED=1; //P1.0管腳賦值1高電平,熄滅LED燈
- Delay(50000); //延時
- /* 階段1:這個循環中低電平時長從1累加到Time(周期)的值,我們可以看到燈逐漸變亮 */
- for(PWM=1; PWM<Time; PWM++)
- {
- LED=0; //點亮LED
- Delay(PWM);
- LED=1; //熄滅LED
- Delay(Time-PWM);
- }
-
- /*階段2:開始全亮*/
- LED=0;
- Delay(50000); //延時
-
- /* 階段3:這個循環中低電平時長從Time(周期)的值逐減到0,我們可以看到燈逐漸變暗 */
- for(PWM=Time-1; PWM>0; PWM--) //與逐漸變亮相反的過程
- {
- LED=0; //點亮LED
- Delay(PWM);
- LED=1; //熄滅LED
- Delay(Time - PWM);
- }
- }
- }
- /*------------------------------------------------
- 延時函數,含有輸入參數 unsigned int t,無返回值
- 范圍是0~65535
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
2.參考例程.rar
(656.81 KB, 下載次數: 496)
2018-6-14 09:51 上傳
點擊文件名下載附件
12單片機參考例程 下載積分: 黑幣 -5
|