1、3展开工程管理标签、元器件库。4填写图纸信息。(项目名称、图纸名称、版本、序号、作者。) 5元器件绘制。1)创建元件库;2).绘制元器件;3)完善元器件属性;6.修改元器件名字;7. 同一个库中增加其他元器件;8.打开原理图库管理标签。1)元器件放置。2)元器件摆放、连线。(按格点对齐。)3)修改元器件值。4)完成图纸。5)生成Bom表。三PCB图绘制1)封装设计。 1. 确定需要做的PCB封装。 2.获取PCB封装物理尺寸。 3.创建PCB封装文件。 4.创建PCB封装。 5.绘制PCB封装。2)绘制PCB图。 1.创建PCB图。 2.绘制板型:选择Keep-Out Layer,调整格点、重
2、新定位原点、绘制轮廓线。 3.导入元器件。 4.摆放元器件。 5.走线:底层走线:Bottom Layer,处理全部与拉线。 6.规则检查:Tools/Design Rule Check。 7.排除错误。 8.调整丝印,加板名称,调整线宽。四 制作板子单面板腐蚀热转印1.准备热转印纸:A4大小2.打印PCB图:至热转印纸的光滑面3.裁剪单面板:根据图像大小4.打磨单面板覆铜面:去除表面氧化膜5.进行热转印1)将热转印纸的光滑面与单面板覆铜面紧密贴合并用胶带固定;2)送至热转印机反复加热。6.检查:如有断线处用马克笔填补腐蚀1.勾兑腐蚀剂2.进行腐蚀1)将热转印完成的单面板置于装有腐蚀剂的容器中
3、;2)轻轻摇晃容器5-10分钟至腐蚀完全。钻孔1.钻孔:根据图像进行钻孔,注意钻孔力度适中、位置准确2.清洗:砂纸打磨去除铜面黑色石墨覆盖层并冲洗。焊接1.准备元器件:自行购买2.装载元器件3.进行焊接:注意焊点准确四 导入程序并进行调试程序设计流程图五 实验总结在画原理图的时候,我们要正确找到引脚,和摆放引脚的位置,各器件也要一一对应,切不可弄错了,画完后,我们要进行封装,封装的时候我要注意各器件的值,要确保每一步骤都正确无误,直至画pcb的图,进行pcb的图绘制的时候,我们要正确布线,确保每一布线都不会交叉或者合在一块的情况,保证电路的正确运行。出现的问题及解决:封装时没有正确封装,导致器
4、件不行,最后经过检查进行纠正了布线时,线会有一些不合理走位的情况,怕会影响电路运作,所以在有个地方的走线,我们选择了飞线解决了这一问题。第一次导入程序的时候,电源指示灯没亮,但是我们把板子上的电源指示灯拆下,重新装上,第二次就可以使用了。六 附件图Bom表SCH图PCB图程序#include /包含单片机寄存器的头文件intrins.h /包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned intuchar code dispcode1=0xfa,0x82,0xb9,0xab,0xc3, 0x6b,0x7b,0xa
5、2,0xfb,0xeb; /09共阴显示子码uchar code dispcode2=0xfe,0x86,0xbd,0xaf,0xc7, 0x6f,0x7f,0xa6,0xfe,0xee; /09的小数点共阴显示子码/*以下是DS18B20的操作程序 */ sbit DQ=P10;unsigned char time; /设置全局变量,专门用于严格延时/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i4;i+) for(j=0;j33;j+); 延时若干毫秒
6、入口参数:n void delaynms(unsigned char n) unsigned char i;n; delay1ms();将DS18B20传感器初始化,读取应答信号出口参数:flag bit Init_DS18B20(void) bit flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; /先将数据线拉高 for(time=0;time=1; /将dat向右移一位后再赋给dat /等待一个机器周期 DQ = 1; /将数据线人为拉高,为单片机检测DS18B20的输出电平作准备 for(time=0; /延时约6us,使
7、主机在15us内采样 if(DQ=1) dat|=0x80; /如果读到的数据是1,则将1存入dat else dat|=0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入ri ; /延时3us,两个读时序之间必须有大于1us的恢复期 return (dat); /返回读出的十进制数据 向DS18B20写入一个字节数据 void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=0; i /将dat中的各二进制位数据右移1位 /稍作延时,给硬件一点反应时间显示温度的整数部分xvoid displ
8、ay_temp1(unsigned char x) unsigned char j,k,l; /j,k,l分别储存温度的百位、十位和个位 j=x/100; /取百位 k=(x%100)/10; /取十位 l=x%10; /取个位 P2=0xfb; P0=dispcode2l; delaynms(1); P2=0xfd; P0=dispcode1k; P2=0xfe; P0=dispcode1j; /延时1ms给硬件一点反应时间 做好读温度的准备void ReadyReadTemp(void) Init_DS18B20(); /将DS18B20初始化 WriteOneChar(0xCC); /
9、跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 100; /温度转换需要一点时间 Init_DS18B20(); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器,前两个分别是温度的低位和高位 主函数 void main(void) unsigned char TL; /储存暂存器的温度低位 unsigned char TH; /储存暂存器的温度高位 unsigned char TN; /储存温度的整数部分 unsigned char TD; /储存温度的小数部分 delaynms(5); /延时5ms给硬件一点反应时间 whil
10、e(1) /不断检测并显示温度 ReadyReadTemp(); /读温度准备 TL=ReadOneChar(); /先读的是温度值低位 TH=ReadOneChar(); /接着读的是温度值高位 TN=TH*16+TL/16; /实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 /这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL%16)*10/16; /计算温度的小数部分,将余数乘以10再除以16取整, /这样得到的是温度小数部分的第一位数字(保留1位小数) P2=0xf7; P0=dispcode1TD; /显示小数部分 display_temp1(TN); /显示温度的整数部分 delaynms(1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1