里面有关于 点亮灯 流水灯 数码管 LCD1602 舵机 I2C 蜂鸣器 HC-SR04超声波 的几种程序
单片机源程序如下:
- #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,一个机器周期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--);
- }
-
- /* 计算分析:
- 程序共有三层循环
- 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us
- 二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us
- 三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us
- 循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us
- 延时总时间 = 三层循环 + 循环外 = 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黑下载附件…………
复制代码
所有资料51hei提供下载:
xiangmu.rar
(440.65 KB, 下载次数: 13)
|