嘻嘻嘻,雪藏一年后的发表。。。
LCD判忙函数
在编写LCD程序时需要加入一个“判忙”函数,是为了防止写入数据时数据丢失。
判忙,忙的时候就等待,不忙的时候就执行写数据,写时序的操作
被当做赋值函数的函数必须是有返回值的函数
无参无返回值函数 void faction() { } //前面的void就是返回值的类型 ‘void’是空的意思,就是说返回值是空,也就是无返回值的意思
有参无返回值函数 void faction(int i){ } //参数为整形的函数,且也是无返回值的。
无参有返回值函数 int faction(){ } //返回值为int 型的函数,且是无参的。
有参有返回值函数 char faction(int i) //返回值为char的函数,且参数是int 型
1 形式参数:就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。
2 实际参数:就是在执行时,调用函数或过程时,传递给函数或过程的参数。通俗讲就是实际值。
3 参数嘛,就是一个可变量,它随着使用者的不同而发生变化。举个例子,在中学的时候学过sin(x)函数,这里的x就是形式参数,当你需要求1的正弦值时,你会使用sin(1),这里的1就是实际参数。
4 形参和实参间的关系:两者是在调用的时候进行结合的,通常实参会将取值传递给形参,形参去之后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者。
T0、T1都有一个16位的加1计数器,
T0由8位特殊功能寄存器TH0和TL0组成,
T1由8位特殊功能寄存器TH1和TL1组成。
加1计数器的初值可以通过程序进行设定,设定不同的初值,就可以获得不同的计数值或定时时间。
管脚硬件连接配置
Echo回波引脚为RX
Trig触发信号控制端为TX
定时/计数器的初始化编程
在使用定时/计数器前必须对其进行初始化:
(1)设置工作方式(设置TMOD中的各位):M1M0;
(2)计算定时/计数器的初值,并将初值送入TH、TL中;
(3)启动计数器工作(TR=1);
(4)若采用中断方式则应将对应的定时/计数器及CPU开中断;
延时函数
12MHz晶振
void delay_ms(unsigned int n)//延时n毫秒
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
void delay_m(unsigned int n) //延时n秒
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<21738;j++);
}
void delay_10um(unsigned int n) //延时n秒
{
while(n--);
}
uchar----定义的变量只能是8位二进制数,即0~255
uint------定义的可以达16位二进制数,0~65535
float 类型的最大正有限大值的常量,最大正有限大值为2的127次方;
float 类型数据的最小正非零值的常量,最小正非零值为2的-149次方;
GPIO也是外设的一种,然后外设是需要提供时钟信号工作,以便于设置GPIO的数据传输速度的高速/低速输出,所以有关数据的传输都是在时钟信号的基础上的。