|
里面有關(guān)于 點(diǎn)亮燈 流水燈 數(shù)碼管 LCD1602 舵機(jī) I2C 蜂鳴器 HC-SR04超聲波 的幾種程序
單片機(jī)源程序如下:
- #include <intrins.h>
- void delay(uint z)
- {
- uint i,j;
- for(i=z;i>0;i--)
- for(j=0;j<921;j++);
- }
- //ms級的延時
- void delayms(uint t)
- {
- uint i,j;
- for(i=0;i<t;i++)
- for(j=0;j<120;j++) ;
- }
- //一. 500ms延時子程序程序:.(晶振12MHz,一個機(jī)器周期1us.)
- void delay500ms(void)
- {
- uint8 i,j,k;
- for(i=15;i>0;i--)
- for(j=202;j>0;j--)
- for(k=81;k>0;k--);
- }
-
- /* 計算分析:
- 程序共有三層循環(huán)
- 一層循環(huán)n:R5*2 = 81*2 = 162us DJNZ 2us
- 二層循環(huán)m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5賦值 1us = 3us
- 三層循環(huán): R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6賦值 1us = 3us
- 循環(huán)外: 5us 子程序調(diào)用 2us + 子程序返回 2us + R7賦值 1us = 5us
- 延時總時間 = 三層循環(huán) + 循環(huán)外 = 499995+5 = 500000us =500ms
- 計算公式:延時時間=[(2*R5+3)*R6+3]*R7+5
- */
- //二. 200ms延時子程序 程序:
- void delay200ms(void)
- {
- unsigned char i,j,k;
- for(i=5;i>0;i--)
- for(j=132;j>0;j--)
- for(k=150;k>0;k--);
- }
- //三. 10ms延時子程序 程序:
- void delay10ms(void)
- {
- uint8 i,j,k;
- for(i=5;i>0;i--)
- for(j=4;j>0;j--)
- for(k=248;k>0;k--);
- }
- //四. 1s延時子程序 程序:
- void delay1s(void)//12M晶振,延時999999.00us
- {
- uint8 i,j,k;
- for(i=46;i>0;i--)
- for(j=152;j>0;j--)
- for(k=70;k>0;k--);
- }
- //1us延時
- void delayus(uint time)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
xiangmu.rar
(440.65 KB, 下載次數(shù): 13)
2019-4-18 19:01 上傳
點(diǎn)擊文件名下載附件
|
|