pcb定位系统技术报告 电子设计大赛模拟题.docx
- 文档编号:27902471
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:18
- 大小:1.40MB
pcb定位系统技术报告 电子设计大赛模拟题.docx
《pcb定位系统技术报告 电子设计大赛模拟题.docx》由会员分享,可在线阅读,更多相关《pcb定位系统技术报告 电子设计大赛模拟题.docx(18页珍藏版)》请在冰豆网上搜索。
pcb定位系统技术报告电子设计大赛模拟题
全国大学生电子设计竞赛模拟题
PCB坐标定位系统
PCB板坐标定位系统
任务:
在一个10cm(长)×6cm(宽)的PCB覆铜板上,制作一个PCB坐标定位系统,要求如下:
基本要求:
1、当用信号笔点击PCB板平面上的任何位置,可以在LCD上的相应位置显示坐标点;
2、当用信号笔在PCB板平面上绘制简单图形时,能够在LCD上显示所绘制的图形;
3、要求坐标识别精度<=2mm,并尽可能的提高系统分辨率。
提高要求:
1、提高绘制速度,实现即绘制即显示,减小延迟;
2、能够实现图形存储,回放功能。
摘要
本系统以飞思卡尔半导体公司的16位MC9S12XS128单片机为核心,采用数字式CMOS图像传感器OV7620进行数据采集,设计并制作了一个分辨率为64×32的PCB坐标定位系统。
该定位系统可以快速实现坐标显示,图形绘制,图形存储及回放。
将10×6cm的PCB板相对应的像素点显示在龙丘生产的Oled12864迷你型液晶上,并且具有高分辨率。
并且通过按键可以实现不同功能之间的切换。
通过单片机的控制实现各种显示存储功能.
关键词:
MC9S12XS128OV7620PCBOled12864
目录
第一章系统方案比较与选择3
1.1总实现方案3
1.2主控制器方案比较与选择3
1.3液晶模块的选取3
第二章理论分析与计算3
2.1画线算法设计3
2.2画圆算法设计3
2.3描点.划线.简单图形算法设计3
第三章系统电路设计3
3.1系统主板工作原理3
第四章系统程序设计3
4.1系统总流程图3
4.2系统总体模块图3
第五章系统测试与结果3
5.1描点,坐标确定,划线,画圆,图形存储与回放的测试和结果3
5.2表笔的测试结果3
第六章结论3
参考文献3
附1:
系统主板原理图3
附2:
完整的测试结果3
附3:
部分核心源代码3
第一章系统方案比较与选择
1.1总实现方案
方案一:
采用电阻屏的原理,电阻式触摸屏是一种压力传感器,基本上是薄膜加上玻璃的结构,薄膜和玻璃相邻的一面上均涂有ITO(纳米铟锡金属氧化物)涂层,ITO具有很好的导电性和透明性。
当触摸操作时,薄膜下层的ITO会接触到玻璃上层的ITO,经由感应器传出相应的电信号,经过转换电路送到处理器,通过运算转化为屏幕上的X、Y值,而完成点选的动作,并呈现在屏幕上。
考虑电容屏原理,在10×6cm的PCB板做到识别精度<=2mm,我们目标精度是在板上做到64×32个像素点的精度,采用板上层64列,下层32行,组成64×32阵列!
分别扫描行和列以确定坐标点。
然后通过显示在Oled12864型液晶上,做到高精度的显示。
方案二:
采用电容屏的原理,电容技术触摸屏CTP(CapacityTouchPanel)是利用人体的电流感应进行工作的。
电容屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂一层ITO(纳米铟锡金属氧化物),最外层是只有0.0015mm厚的矽土玻璃保护层,夹层ITO涂层作工作面,四个角引出四个电极,内层ITO为屏层以保证工作环境。
当用户触摸电容屏时,由于人体电场,用户手指和工作面形成一个耦合电容,因为工作面上接有高频信号,于是手指吸收走一个很小的电流,这个电流分别从屏的四个角上的电极中流出,且理论上流经四个电极的电流与手指头到四角的距离成比例,控制器通过对四个电流比例的精密计算,得出位置。
可以达到99%的精确度,具备小于3ms的响应速度。
通过电流大小与触点到电极的距离成正比就可以确定触点的坐标。
确定坐标后就可以通过液晶来进行显示。
方案三:
采用OV7620是CMOS彩色/黑白图像传感器。
它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;最高像素为664492,帧速率为30fp8;能够满足一般图像采集系统的要求。
利用OV7620摄像头采集图像数据并对其进行二值化,分离出图像信号将10×6cm的PCB板二值化为白,在其周围贴上黑色胶带并通过程序处理二值化为黑。
然后用黑色的表笔靠近PCB板时形成黑白信号,即可设为高低电平。
然后通过行列扫描就可以确定PCB板上的坐标XY并通过液晶对其进行显示。
通过对三个方案的对比选择,方案一由于要做到64×32个那就要最少考虑到2048个点就要2048个电阻器件,将如此数量器件焊接在10×6cm的PCB板上将是极大焊接工程,考虑到时间的限制,及人工焊接的不稳定性,放弃此方案。
在方案二中测量及数据采集要求极高,在比赛中条件限制。
因此最后我们采用了方案三。
1.2主控制器方案比较与选择
为了完成在短时间快速扫描全屏和存储图形,主控器件必须有较高的CPU工作频率和存储空间。
方案一:
采用51系列加强型STC12C5A60S2作为主控器件,用来实现题目所要求的各种功能。
此方案最大的特点是系统规模可以做得很小,成本较低。
操作控制简单。
但是,我们在利用单片机处理高速信号快速扫描及存储图形时显得吃力,且题目中要求要求坐标识别精度<=2mm,并尽可能的提高系统分辨率,并要做到图形的存储与回放,51系列单片机很难实现这一要求。
方案二:
采用飞思卡尔半导体公司16位MC9S12XS128单片机为核心控制器件,由16位中央处理单元(CPU12X)、128KB程序Flash(P-lash)、8KB RAM、8KB数据Flash(D-lash)组成片内存储器,指令系统与S12兼容CPU工作频率最高可达80MHz,16通道高达12位精度A/D采集模块,7级中断嵌套和7个中断优先级,CRG模块,COP看门狗,实时中断及时钟监视器。
如此能够实现快速扫描和数据处理!
按照题目的要求,综合考虑我们最终选择了方案二,采用16位MC9S12XS128单片机为核心控制器件。
1.3液晶模块的选取
方案一:
采用1602液晶模块程序简单,成本较低,但是局限于其无法对汉字进行显示,及显示的点阵像素有限,并且题目要求功能较多,存在多个功能间的切换,图形的绘制,为了满足各功能间的切换及操作的简单就需要文字性的说明,而1602就无法满足这点
方案二:
采用Oled12864液晶模块,OLED12864是128×64行点阵的OLED单色、字符、图形显示模块。
模块内藏64×64的显示数据RAM,其中的每位数据都对应于OLED屏上一个点的亮、暗状态;其接口电路和操作指令简单,具有8位并行数据接口,读写时序适配6800系列时序强大的显示功能,可以满足题目的所有要求。
综合考虑之后我们决定采用12864液晶模块做为显示模块
第二章理论分析与计算
2.1画线算法设计
通过对摄像头信号的分离,二值化,并对整屏进行行列扫描得到了点的坐标值,而划线要求刚好需要点的坐标。
大家都知道,两点确定一条直线。
高中数学中,我们就知道直线方程有点斜式,截距式,两点式。
用其中任意一个公式我们都能得到一个正确的直线方程。
设计中,先点亮一个点再点亮另外一个点来确定直线,这正好满足两点式的要求。
算法中首先通过起点坐标(X1,Y1)和终点坐标(X2,Y2)来确定线段的方程,然后比较X2-X1与Y2-Y1的大小,若X2-X1>Y2-Y1,则通过X1+1,X1+2…X1+n来确定对应Y的坐标,直到X1+n=Y为止,同理若X2-X1 ,这样我们就得到了起点到终点的所有坐标,再将对应的坐标全部显示出来就实现了两点画线功能。 2.2画圆算法设计 有了两点画线算法,那么两点画圆算法也就简单了,首先通过前后画的2点坐标求出2点的距离,也就是圆的半径R,而我们都知道圆的方程为X*X+Y*Y=R*R,这样一来我们就确定了圆的方程式,然后比较X2-X1与Y2-Y1的大小,若X2-X1>Y2-Y1,则通过X1+1,X1+2…X1+n来确定对应Y的坐标,直到X1+n=Y为止,同理若X2-X1 如果我们将对应的坐标直接显示时会忽略一个问题,那就是对应坐标的点是否超过了点阵屏幕的范围,因此在显示时我们要进行判断,若超出了范围那么对应的点也就不显示。 这样我们就得到了起点到终点的所有有效坐标,再将对应的坐标全部显示出来就实现了两点画圆功能。 2.3描点.划线.简单图形算法设计 通过信号的采集,二值化,确定表笔笔尖为接触点并并通过扫描确定其在PCB板上XY的坐标位置。 通过对点的保持,笔尖滑动就可以确定其他点从而由点连成线。 同理,其他图形的算法原理一样。 第三章系统电路设计 3.1系统主板工作原理 系统主板主要由5V电源模块,3.3V电源模块,按键部分,液晶显示模块,蜂鸣器模块,以及以飞思卡尔半导体公司16位MC9S12XS128单片机为核心控制模块。 5V电源模块: 此设计采用7.2V电池供电,通过稳压芯片LM2940一脚输入三脚输出将7.2V输入转变为5V输出,来给单片机供电。 3.3V电源模块: 3.3V电源输出是由AM1117稳压芯片三脚输入5V二脚输出来进行转换 按键模块: 本系统板中设计了四个按键,通过按键来对不同功能来进行切换演示。 液晶模块: 液晶模块采用龙丘生产的Oled12864液晶来显示,Oled12864液晶具有功能强大,连接简单等优势。 蜂鸣器模块: 蜂鸣器模块主要是用来作为指示作用,当表笔接触到PCB板时蜂鸣器发出接触警报, 图3-1系统主板工作原理图 第四章系统程序设计 4.1系统总流程图 4.2系统总体模块图 第五章系统测试与结果 5.1描点,坐标确定,划线,画圆,图形存储与回放的测试和结果 各模块均调通,将调好的模块连在一起,打开电源,启动进行系统初始化。 按键进入描点模式,用表笔在PCB板上书写,可以看到接触的点点亮,并在OLED12864液晶上显示亮点的精确坐标。 按下按键,进行划线的测试,将表笔在PCB板上任意确定起点滑动在液晶上将显示表笔划过的轨迹,划线测试成功。 按下按键进入画圆功能,通过功能切换很好的实现了画圆的高阶功能! 按键切换进入图形绘制与存储的功能,在PCB上画任意图形,在液晶上显示相应图形断电后再次进入之前图形被保持。 因此实现了功能的存储与回放。 最后经过反复的测试,所有的功能都能很好的实现,系统正常工作。 5.2表笔的测试结果 因为是采用分离摄像头的黑白信号来进行坐标的确定,因此我们选择了黑色表笔,并从黑色表笔笔尖引出导线,链接到128单片机的PB2口,上拉接高电平,并且将PCB铜板接地,如此当表笔接触到铜板时给单片机发送信号,确认进行扫描。 这样就将黑色表笔刚靠近PCB板时的干扰完美去除。 第六章结论 本作品完成了题目的基本要求和发挥部分的全部要求,系统性能良好。 通过对作品的各项进行优化,使系统的性能有了提高。 飞思卡尔半导体公司的16位MC9S12XS128单片机拥有强大的数据处理能力和理想的运行速度,并且使电路简单。 同时也提高了系统的集成度和可靠性。 参考文献 《电子设计制作基础》,王港元,江西科学技术出版社,2011年; 《模拟技术基础》,康华光,高等教育出版社,1998年; 《数字电子技术基础》,阎石著,高等教育出版社,1997年; 《高频电子线路》,张肃文,高等教育出版社,2009; 《嵌入式系统设计实践》,王宜怀,曹金华,北京航空航天大学出版社;2011年; 《电子设计与制版》,赵景波,徐江伟,人民邮电出版社,2009年; 附录 附1: 系统主板原理图 附2: 完整的测试结果 附2—1画圆实物图 附2—2划线实物图 附3: 部分核心源代码 #include #include"derivative.h"/*derivative-specificdefinitions*/ #include #include"LQ12864.h" #include"displaydata.h" #include"moduleinit.h" #include"ledfuncdis.h" #include"key.h" #include"DP_Flash.h" #definerow_start20 #definerow_max40 #defineline_max72 #defineinterval5 #definepenPORTB_PB4 uintArr[4]={0x5555,0x2222,0x3333,0x4444}; uintArr0[4]; ulongaddress=0x007E0000; uintaddr=0x0000; byterow_image; byterow_count,c_flag=0,h_flag=0,cc=0,g_SampleMFlag=0; byteimage_data[row_max][line_max]; byteY_XLen[row_max][2]; byteX_YLen[line_max][2]; byteX_YDis[2][5]= { {"X: 55"}, {"Y: 55"} }; byteshu[]={"0123456789"}; byteg_Orig=0;//起点原点左标是否以确定 voidLED_ON() { DDRE=0x40; PORTE=0x00; } voidLED_OFF() { DDRE=0x20; PORTE=0x00; } voidImageDeal(); voidDisUpdataData(); voidLedDis(ucharkeypos); voiddelay_s(ucharx) { unsignedinti,j,z; for(i=0;i<5000;i++) for(j=0;j<1000;j++) for(z=x;z>0;z--) asmnop; } voiddelay(intz){ intx,y; for(x=10000;x>0;x--) for(y=z;y>0;y--); } voidGetImage() { cc++; while(h_flag! =1); if(0==pen){ ImageDeal(); DisUpdataData(); LedDisDataBase(); } h_flag=0; } voiddelay1(unsignedintz) { while(z--) asmnop; } voidmain(void){ /*putyourowncodehere*/ unsignedchariii,jjj; DisableInterrupts; init_SCI(); init_PLL(); Flash_Init(); delay_s (2); Time_Init(); delay(10); TIE=0x00; EnableInterrupts; delay(100); DDR1AD0=0xaa; ATD0DIENL=0xff; DDRB=0x00; DDRA=0x00;//cameraGPIOINIT LCD_Init(); DisDataInit(0xff); //LinePrintf(0,TitleDis,1); LedDis(0); delay_s (2); TIE=0x05; GetImage(); for(iii=0;iii for(jjj=0;jjj image_data[iii][jjj]=255; for(;;){ //TIE=0x05; GetImage(); while(c_flag==1); //TIE=0x00; c_flag=1; TIE=0x01; if(0==key_flag) { ScanKey(); LedDis(keypos); } } } voidImageDeal() { uchari,j,temp; for(j=1;j for(i=2;i { if(255==image_data[j][i]) { for(i;i { if((0==image_data[j][i])&&(0==image_data[j][i+1])) { temp=i; for(i;i if((255==image_data[j][i])&&(255==image_data[j][i+1])){ CurrentPoint.x=temp; CurrentPoint.y=j; X_YDis[0][2]=shu[CurrentPoint.x/10]; X_YDis[0][3]=shu[CurrentPoint.x%10]; X_YDis[1][2]=shu[CurrentPoint.y/10]; X_YDis[1][3]=shu[CurrentPoint.y%10]; return; } } } } } } } } voidLedDis(ucharkeypos) { if(0==keypos) { LinePrintf(0,funsdis1,1); LinePrintf(2,funsdis2,1); LinePrintf(4,funsdis3,1); LinePrintf(6,funsdis4,1); } if(1==keypos) { LinePrintf(0,funsdis2,1); LinePrintf(2,funsdis3,1); LinePrintf(4,funsdis4,1); LinePrintf(6,funsdis5,1); } else { LinePrintf(0,funsdis3,1); LinePrintf(2,funsdis4,1); LinePrintf(4,funsdis5,1); LinePrintf(6,funsdis6,1);}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pcb定位系统技术报告 电子设计大赛模拟题 pcb 定位 系统 技术 报告 电子设计 大赛 模拟