【单片机自学笔记】(7):最小系统板焊接,开发板的控制、烧录程序注意事项、通过指针引用数组、定义和使用结构体变量

/ 最小系统板实操 /

一开始控制不了风扇,没达到与其效果,推测是焊接有些地方锡太多,导致连到了旁边

通过一个晚上用小刀挂掉那些可能短路的地方后,最终能让风扇转起来,并且DS18B20温度传感器有效果,四位数码管的显示也没啥大问题了。

/ 焊接注意事项 /

电烙铁头如果是黑的,是因为有氧化层,很难融化锡,先尝试在吸了水的高温海绵上将其抹去,如果没效果再用砂纸或小刀弄去后,再重新给电烙铁上锡。

长时间不用时也需要关掉电源并且给点锡在烙铁头上,防止其氧化

使用过程中不需要清理烙铁头上的锡,除非是锡挂太多。

挂锡:氧化了的烙铁头即使一直接触锡条也不能将其融化,需要在合适的温度下给电烙铁头上一层锡,然后就能很快的将锡融化。

/ 烧录程序 /

烧录器的RXD对应单片机的TXD(transmit data)

烧录器的TXD对应单片机的RXD(receive data)

需要另外再接VCC(接入电源正极)和VSS(公共接地端电压)

烧录程序时型号一定要选对!!!

/ 开发板 /

/使用keil5注意事项/

使用keil编译之前一定要把生成hex文件的选项勾上。

 

用keil5给普中的开发板写程序的时候,要把晶振频率改成11.0592MHz

void delay1s()

{

  for(int i = 1000;  i > 0;  i--)

     for(int j = 110;  j = 0; j++)

}    //里面j=113或114时更准、

库函数#include<intrins.h>

intrins 翻译过来就是“本质”“函数”的意思。

其中led = 0xfe提前在while函数前初始化,然后while函数里都用led,不然如果while函数里的第二个led直接用0xfe的话,每次都会重新初始化。导致板子上只能让D2一直亮。

循环左/右移函数

而且_crol_或_cror_时,数据并不会像用<<时那样丢失。例如执行一次_crol_(0x80) 时,只会把左边第一个1给先拿出来,让其他七位的数都往左移一位之后,把刚才的1放回到右边第一位去,所以并不需要用 for函数来控制循环8次。

直接用<<左移运算符时,如果是0x01,左移移位后,右边第一位会自动补0,所以在流水灯程序中得把循环次数控制在8次以内。而且开发板低点位才是点亮led,所以要一个灯亮的话,就得用led = ~(0x01<<1);

用stc烧录软件的时候单片机类型一定要选对。

syntax  句法、语构

Keil C51中的unsigned int是16位的,最大只能显示65535

/c语言/

!和~的区别

C语言中,!是非,~是取反

!是逻辑运算符,~一般用于设置标志位

/ 通过指针引用数组 /

[ ]变址运算符,即将a[i]按a+i计算地址

*和++同优先级,结合方向从右而左

*(p++)  先取*p的值,然后使P加1

*(++p)  先使p加1,再去*p

C编译都是 形参数组名 当做指针变量来处理

当数组名做函数参数的时候,如果形参数组中各元素的值发生变化,实参数组元素的值也随之变化。(形参的值就是实参数组首元素的地址)

二维数组a的有关指针变量(c语言247页数组int a[3][4])

表示形式

含义

a

二维数组名,指向a[0]

2000

a[0],*(a+0),*a

0行0列元素地址

2000

a+1, &a[1]

1行起始地址

2016

a[1],*(a+1)

1行0列元素a[1][0]的地址

2016

*[1]+2,*(a+1)+2,&a[1][2]

1行2列元素a[1][2]的地址

2024

*(a[1]+2), *(*(a+1)+2),a[1][2]

1行2列元素a[1][2]的值

13

/ 定义和使用结构体变量 /

stract  结构体名

{成员表列

}变量名表列;

例:

stract  Student

{

int num;

char name[20];

char sex;

int age[];

}student1, student2;  // 声明类型的同时定义变量

student1 = {10101, “li lin”, ‘M’, 18};    //初始化

引用结构体

student1.num    //表示变量a中的num成员

printf(“num:%ld\nname%s\n”,student1.num, student1.name );

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值