完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、设计要求:
主芯片:STM32F103R6 IC测试座:DIP18 (18个引脚) 有四只开关:分别为“向上选择”、“向下选择”、“确定”、“退出” 用一个LCD12864显示操作和结果的界面 二、展示内容: LCD12864显示内容: 第一屏:见图 显示可检测的器件的列表,被选中的型号反白显示 第二屏:见图 标题为被检测的器件的型号+testing…,下面有两行,第一行显示器件是否完好,如果有故障,在第二排显示是哪个部件出现故障。最后一排有状态显示,三种内容,没有测量时显示“开始测量”,正在测量时显示“测量中…”,测量完成后,显示“测量结束” 三、操作说明: (1)开机,显示第一屏 (2)按“向上选择”和“向下选择”,可以依次选中列表中的器件,再按下“确认”键,可以选中该器件,进入第二屏,最下显示“开始测量” (3)按“确认”键,开始测量,测量完成后,最下显示“测量结束”,并把结果在第二行和第三行的提示后显示。 (4)按“退出”键,回到第一屏。 四、测试芯片: (1)74HC00 四与非门 (2)74HC02 四或非门 (3)74HC04 六非门 五、效果展示: 部分代码展示(检测函数)(因水平有限,且半夜赶出来的,未优化代码,欢迎大佬指正哈) u16 pinout[3][4]={{0xE493,0xEDB7,0xF6DB,0xDB6F},{0xE493,0xD24B,0xC927,0xDB6F},{0xEAAB,0xD557,0xEAAB,0xD557}}; int test[16]; void testing(int dis) //该函数为设置引脚电位函数 { int i,flage; for(flage=0;flage<4;flage++) { GPIO_Write(GPIOB,pinout[dis][flage]); for(i=0;i<16;i++) { if(i<8) { IC74HC251_OE1_0; IC74HC251_OE2_1; } else { IC74HC251_OE1_1; IC74HC251_OE2_0; } if(i==0 || i==2 || i==4 ||i==6 || i==8 || i==10 || i==12 || i==14) { IC74HC251_S0_0; } else { IC74HC251_S0_1; } if(i==0 || i==1 || i==4 ||i==5 || i==8 || i==9 || i==12 || i==13) { IC74HC251_S1_0; } else { IC74HC251_S1_1; } if(i==0 || i==1 || i==2 ||i==3 || i==8 || i==9 || i==10 || i==11) { IC74HC251_S2_0; } else { IC74HC251_S2_1; } test=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0); } compare(dis,flage); } } int error[4][16]; int errpart[6]; void compare(int dis,int flage) //该函数为比对函数 { int i,j,winflage=0,position=80; u16 n=pinout[dis][flage]; int a[16]; for (i = 0; i != 16; ++i) { a = n % 2; n /= 2; } for(i=0;i<16;i++) { if(test==a) { error[flage]=0; } else { error[flage]=1; } } if(flage==3) { for(i=0;i<4;i++) { for(j=0;j<16;j++) { if(error[j]==0) { winflage++; if(winflage==64) { LCD_DIS_Char(3,50,"TRUE",MIDDLE,0); } } else { if(dis==2) { if(j<5 && j>2){errpart[0]=1;} if(j<7 && j>4){errpart[1]=1;} if(j<9 && j>6){errpart[2]=1;} if(j<11 && j>8){errpart[3]=1;} if(j<13 && j>10){errpart[4]=1;} if(j<15 && j>12){errpart[5]=1;} } else { if(j<6 && j>2){errpart[0]=1;} if(j<9 && j>5){errpart[1]=1;} if(j<12 && j>8){errpart[2]=1;} if(j<15 && j>11){errpart[3]=1;} } } } } if(winflage!=64){ LCD_DIS_Char(4,50,"FLASE",MIDDLE,0); j=0; for(i=0;i<6;i++) { if(errpart==1) { position=position+(i-j)*8; LCD_DIS_Number(6,position,i+1,MIDDLE); }else j++; } } } } |
|
|
|
只有小组成员才能发言,加入小组>>
4542个成员聚集在这个小组
加入小组3343 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4270 浏览 1 评论
4299 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 14:21 , Processed in 0.528142 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号