制作虽简单,工艺一样全。 先上主制板 ![]() 从盒中拿出来看不同角度 ![]() 此DIY有三块板合成 ![]() ![]() 下面介绍手功制板步骤,一般分排、画、刻、钻、修、涂、焊几步 排是排版,先在纸上排好走线,尽量少挑线,要求美观艺术点, ![]() 画是画稿,把走线图用铅笔按纸上的图画在覆铜板上,(此过程没留图,反正也简单,就是同纸上的抄一边。这里有方法,可以把脚多的或元件位置定死的先钻眼定位。 ![]() 上面是数码管,下面是按钮先定位钻孔,这样画稿就方便多了。 刻是刻线,用刀把画上的铅笔线刻掉, ![]() 钻是钻孔,先用冲子在覆铜面定位,再手钻打孔。 ![]() 修是修理,把那些尖角、毛刺之类的修理整洁,并用砂纸打亮, ![]() 涂是用松香酒精液涂满两面,还有防潮的效果呵, ![]() ![]() ![]() ![]() ![]() ![]() 下楼继续 以上三块覆铜板已变线路板,大家说的PCB。接下来是焊 先焊挑线 ![]() ![]() 接着再焊 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 接着再焊 ![]() ![]() 最后发些DIY的副件 ![]() ![]() ![]() ![]() ![]() ![]() ![]() #p#分页标题#e# ![]() ![]() ![]() ![]() ![]() ![]() 再来一张。。。。。。。 ![]() 今日烧友为贴正名,谢之,为名副其实,补C 码一段。 段选P2口gfabced-dp.{0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0,0x7f} 位选:p1.2-p1.7. #include<reg52.h> sbit SEG1=P2^7; //小数点显示 sbit SEG2=P1^2; //段时十位 sbit SEG3=P1^3; //时个 sbit SEG4=P1^4; //分十 sbit SEG5=P1^5; //分个 sbit SEG6=P1^6; //秒十 sbit SEG7=P1^7; //秒个 unsigned char code num[]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0,0x7f}; int s=0,m=0,h=0; //定义三个全局变量s,m,h,用于存放秒分时的数值 void timer(void) interrupt 1 using 1{ int i; if(i==19) //若i=20,则是1秒,我的如果是20的话会稍慢,所以改为19 { s++; //秒数自加1 i=0; //对i清零 } if(s==60) //如果到了60秒,则对秒数清零,并同时分加一 { m++; s=0; } if(m==60) //如果到了60分,则对分数清零,并同时时数加一 { h++; //时数自加1 m=0; //对分清零 } if(h==24) //如果到了24q时,则对时数清零 { h=0; //对时清零 } i++; //每中断一次,i的值加1 TH0=(65536-52800)/256; //再给定时器赋初始值 TL0=(65536-52800)%256; } void init(void)//定时器初始函数,对定时器初始化 { EA=1; //允许所有的中断请求 TMOD=0x01; //设定时器0的工作模式为方式1 即16位定时器 ET0=1; //允许定时器0的中断请求 TH0=(65536-52800)/256; //定时时间为50ms,初始值要根据具体情况微调 TL0=(65536-52800)%256; TR0=1; //打开定时器0,开始定时 } void main() { unsigned int i; //定义一个变量,用于数码管延时 init(); //调用定时器初始化函数,对定时器进行初始化 while(1) //死循环,让数码管不断显示 { //下面是只让时十位显示,其他的关闭 i=100; //赋值给变量 SEG2=0; //三极管导通,只让该位显示,其他段关闭 P2=num[h/10]; //分离出时的十位,让数码管显示 while(i--); //延时一下,让眼睛视觉残留 SEG2=1; //关闭该位 //下面是只让钟个位显示 ,其他的关闭 i=100; //重新赋值给变量 SEG3=0; //三极管导通,只让该位显示,其他段关闭 P2=num[h%10]; //分离出时的个位,让数码管显示 SEG1=0; //在该位显示小数点 while(i--); //延时一下,让眼睛视觉残留 SEG3=1; //关闭该位 SEG1=1; //下面是只让分十位显示 ,其他的关闭 i=100; //赋值给变量 SEG4=0; //三极管导通,只让该位显示,其他段关闭 P2=num[m/10]; //分离出分的十位,让数码管显示 while(i--); //延时一下,让眼睛视觉残留 SEG4=1; //关闭该位 //下面是只让分个位显示 ,其他的关闭 i=100; //重新赋值给变量 SEG5=0; //三极管导通,只让该位显示,其他段关闭 P2=num[m%10]; //分离出分的个位,让数码管的显示 SEG1=0; //在该位显示小数点 while(i--); //延时一下,让眼睛视觉残留 SEG5=1; //关闭该位 SEG1=1; //下面是只让秒十位显示 ,其他的关闭 i=100; //赋值给变量 SEG6=0; //三极管导通,只让秒十位显示,其他段关闭 P2=num[s/10]; //分离出秒的十位,让数码管的显示 while(i--); //延时一下,让眼睛视觉残留 SEG6=1; //关闭该位 //下面是只让秒个位显示 ,其他的关闭 i=100; //重新赋值给变量 SEG7=0; //三极管导通,只让秒个位显示,其他段关闭 P2=num[s%10]; //分离出秒的个位,让数码管显示 while(i--); //延时一下,让眼睛视觉残留 SEG7=1; //关闭该位 } } #p#分页标题#e# 收音机程序: /////////////////////////////////////////////////////////////////////////////////////////////////////这 uchar code tab[]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0,0x7f}; //数码管段码表 /////些 sbit led1=P1^4; //频率显示的数码管位选端口 100兆,P2.4端口 /////是 sbit led2=P1^5; //频率显示的数码管位选端口 10兆,P2.5端口 /////端 sbit led3=P1^6; //频率显示的数码管位选端口 1兆,P2.6端口 /////口 sbit led4=P1^7; //频率显示的数码管位选端口 0.1兆,P2.7端口 /////, sbit SDA=P3^2; //接在TEA5767的数据端口 /////可 sbit SCL=P3^1; //接在TEA5767的时钟端口 /////以 sbit KEY1=P1^2; //频率增加按键端口 /////自 sbit KEY2=P1^1; //频率减小按键端口 /////行 #define duan P2 //频率显示的数码管段选P0端口 /////修 /////////////////////////////////////////////////////////////////////////////////////////////////////改 //unsigned char radio_write_data[5]={0x33,0x8e,0x70,0x16,0x80}; //要写入TEA5767的数据,107.9M江苏旅游台 //unsigned char radio_write_data[5]={0x32,0x8e,0x70,0x16,0x80}; //要写入TEA5767的数据,105.8M 南京音乐台 //unsigned char radio_write_data[5]={0x31,0xd7,0x70,0x16,0x80}; //要写入TEA5767的数据,104.3M南京体育台 //unsigned char radio_write_data[5]={0x30,0x9a,0x70,0x16,0x80}; //要写入TEA5767的数据,101.7M南京经济台城市调频 unsigned char radio_write_data[5]={0x30,0x50,0x70,0x16,0x80}; //要写入TEA5767的数据,101.1M江苏交通广播网 //unsigned char radio_write_data[5]={0x2f,0xa5,0x70,0x16,0x80}; //要写入TEA5767的数据,99.7M江苏金色调频 //unsigned char radio_write_data[5]={0x2c,0xc9,0x70,0x16,0x80}; //要写入TEA5767的数据,97.5M江苏文艺台 //unsigned char radio_write_data[5]={0x2c,0xc9,0x70,0x16,0x80}; //要写入TEA5767的数据,93.7M江苏经济台居家广播 //unsigned char radio_write_data[5]={0x2b,0xb0,0x70,0x16,0x80}; //要写入TEA5767的数据,91.4M江苏广播 //unsigned char radio_write_data[5]={0x2a,0xe1,0x70,0x16,0x80}; //要写入TEA5767的数据,89.7M江苏音乐台 unsigned long frequency=101100; //开机初始化的电台频率为101.1MHz unsigned int pll=101100; //计算频率合成时用的变量 void Delayus(unsigned char x) { for(;x>0;x--); } void iic_start() { SDA=1; Delayus(4); SCL=1; Delayus(4); SDA=0; Delayus(4); SCL=0; Delayus(4); } void iic_stop() { SCL=0; Delayus(4); SDA=0; Delayus(4); SCL=1; Delayus(4); SDA=1; Delayus(4); } void iic_ack() { SDA=0; Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); SDA=1; Delayus(4); } bit iic_testack() { bit ErrorBit; SDA=1; Delayus(4); SCL=1; Delayus(4); ErrorBit=SDA; Delayus(4); SCL=0; return ErrorBit; } void iic_write8bit(unsigned char input) { unsigned char temp; for(temp=8;temp>0;temp--) { SDA=(bit)(input&0x80); Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); input=input<<1; } } void delays (unsigned char b) //按键消抖用的延时程序 { unsigned char i; for(b;b>0;b--) for(i=0;i<250;i++); } void radio_write(void) { unsigned char i; iic_start(); iic_write8bit(0xc0); //TEA5767写地址 if(!iic_testack()) { for(i=0;i<5;i++) { iic_write8bit(radio_write_data); iic_ack(); } } iic_stop(); } //将显示的频率算好后写到TEA5767芯片里面实现调节,不用考虑TEA5767用于搜台的相关位:SM,SUD void search() { pll=(unsigned int)((float)((frequency+225))/(float)8.192); //计算合成频率数据,频率单位:k radio_write_data[0]=pll/256; //将算好的频率高位数据写入TEA5767 radio_write_data[1]=pll%256; //将算好的频率低位数据写入TEA5767 radio_write_data[2]=0x70; //这是TEA5767开立体声,关静音 radio_write_data[3]=0x16; //中国制式,采用32768晶振,软静音关,立体声消噪声开 radio_write_data[4]=0x80; //6.5M锁相环开,去加重时间75US radio_write(); } void delay() { uchar k; for(k=0;k<100;k++); } void desplay(uint aa) { duan=tab[aa/1000]|0x80; //关这位数码管的小数点 led1=0; delay(); led1=1; duan=tab[aa%1000/100]|0x80; //关这位数码管的小数点 led2=0; delay(); led2=1; duan=tab[aa%100/10]&0x7f; //点亮这位数码管的小数点 led3=0; delay(); led3=1; duan=tab[aa%10]|0x80; //关这位数码管的小数点 led4=0; delay(); led4=1; } void main() { radio_write(); //写入初始化电台频率 while(1) { if(!KEY1) //手动设置频率,+0.1MHz; { delays(250); //延时消抖 frequency+=100; if(frequency>108500) //频率如果大于108.5MHz frequency=87500; //频率设定为87.5MHz search(); desplay(frequency/100); //调用显示 } if(!KEY2) //手动设置频率,-0.1MHz; { delays(250); //延时消抖 frequency-=100; if(frequency<87500) //频率如果小于87.5MHz frequency=108500; //频率设定为108.5MHz search(); desplay(frequency/100); //调用显示 } desplay(frequency/100); //调用显示 } }
#p#分页标题#e#
![]() 发贴留念,以前做的刀刻板 ![]() ![]() ![]() ![]() (责任编辑:admin) |