【技术分享】基于嵌入式电路设计与制作
0赞
一、硬件实现系统PCB板的制作
1打印:打印时应将上层(红线)进行镜像。再在打印属性里将多余属性
的层线删除。
在打印预览页面确认无误之后选择1:1比例打印。打印时应选用油性纸,以防纸张在热转移时因过热而燃烧。
2热转移:将打印好的纸紧贴铜板,再包上一层油纸进行热转移。最好过三次。
在第二面进行热转移时应仔细对齐以防焊盘错位。
(可以用铁丝加已固定)
转移三次拆纸时,应注意将纸全部拆除,否则会导致下一步的腐蚀不彻底。
3腐蚀:腐蚀选择三氯化铁或浓盐酸与双氧水的混合液。建议选择前者(不会产生刺激性气体、但成本较高)。在腐蚀过程中,应将板子在液体中来回漂动以加快腐蚀效率。腐蚀时注意安全。
4钻孔:打孔应垂直,一气呵成。在打孔打磨好后建议先用万用表测试相应的钻孔是否都联通,减小后续调试的难度。
5焊接:建议先焊接高度低的原件再焊接高度高的原件(易于操作)。注意
正反面。焊接时的正确操作应该是:将焊锡靠在引脚与焊盘上,再将烙铁靠在焊锡上,待焊锡化开后用烙铁将其弄成锥形。焊接时动作应劲尽量快并保持整个板子的美观。
二、系统硬件调试
对于我们初学者来说,大多数同学焊接好了的板子不能立刻有相应的效果,应该进行调试。在调试时建议使用万用表二极管档或200欧档,
若能有导通时鸣叫的万用表最好。若数码管的某一位不亮,对照PCB原理图检测相应的位码引脚及相应的连线。若不同位码的相同码不亮,对照PCB原理图检测相应的段码引脚及相应的连线。芯片的引脚编码是从昨上开始编码的,编码为”U”型,从1开始的。
调试过程漫长又枯燥,需要极大的耐性。调试时应保持良好的心态。
软件实现
TinyHMI
键盘显示板调试程序:
#include"595_cfg.h"
#include"595.h"
#include"delay100us.h"
#include<8051.h>
#include"Port.h"
#ifndef TinyHMI_cfg
#define TinyHMI_cfg
#define uchar unsigned char
#define uint unsigned int
#define
Sck_CP
P0_0
#define
RCK_STR
P0_1
#define
DAT_D
P0_2
#define
KEY
P0_3
#define _nop_()
static
code
TinyHMI_duan[]={{0x00},{0x3f},{0x06},{0x5b},{0x4f},{0x66},{0x6d},{0x7d},{0x07},{0x7f},{0x6f}};
static code TinyHMI_wei[]={{0x00},{0x01},{0x02},{0x04},{0x08},{0x10},{0x20},{0x40},{0x80}};
uint keyvalue;
void TinyHMI_STR(void)
RCK_STR =1;
=1;
char delay100us(unsigned int uiDly)
unsigned char k;
}while (--k!=0);
}while (--uiDly!=0);
return 0;
void TinyHMI_Display(unsigned char Data
//8
位串入并出带锁存送数子程序
unsigned char i;
for (i=0;i<8;i++){
DAT_D=Data&0x80;
Data<<=1;
TinyHMI_CP();
void TinyHMI_Show(unsig,unsigned j)
TinyHMI_Display(TinyHMI_duan[i+1]);
TinyHMI_Display(~TinyHMI_wei[j+1]);
TinyHMI_STR();
delay100us(22);
void TinyHMI_Scan(void)
unsigned i;
for (i=0;i<9;i++){
TinyHMI_Display(TinyHMI_duan[i]);
TinyHMI_Display(~TinyHMI_wei[i]);
TinyHMI_STR();
if(KEY==0)keyvalue=i;
if(keyvalue==1)TinyHMI_Show(1,0);
if(keyvalue==2)TinyHMI_Show(2,1);
if(keyvalue==3)TinyHMI_Show(3,2);
if(keyvalue==4)TinyHMI_Show(4,3);
if(keyvalue==5)TinyHMI_Show(5,4);
if(keyvalue==6)TinyHMI_Show(6,5);
if(keyvalue==7)TinyHMI_Show(7,6);
if(keyvalue==8)TinyHMI_Show(8,7);
delay100us(22);
void main(void)
while(1)
TinyHMI_Scan();
三、实现效果
初始时八位依次显示