是否要先打开ALLEGRO? 不需要(当然你的机器须有CADENCE系统)。生成完封装后在你的输出目录下就会有几千个器件(全部生成的话),默认输出目录为c:\MySym\. Level里面的Minimum, Nominal, Maximum 是什么意思? 对应ipc7351A的ABC封装吗? 是的 能否将MOST, NOMINAL, LEAST三种有差别的封装在命名上也体现出差别? NOMINAL 的名称最后没有后缀,MOST的后缀自动添加“M”,LEAST的后缀自动添加“L”,你看看生成的库名称就知道了。(直插件以及特别的器件,如BGA等是没有MOST和LEAST级别的,对这类器件只有NOMINAL) IC焊盘用长方形好像比用椭圆形的好,能不能生成长方形的? 嗯。。。。基本上应该是非直角的焊盘比矩形的焊盘好,我记不得是AMD还是NS还是AD公司专门有篇文档讨论了这个问题,如果没有记错的话至少有以下好处:信号质量好、更省空间(特别是紧密设计中)、更省锡量。我过去有一篇帖子有一个倒角焊盘的SKILL,用于晶振电路和高速器件(如DDR的滤波电容),原因是对宽度比较大的矩形用椭圆焊盘也不合适,这种情况下用自定义的矩形倒角焊盘就比较好了---你可以从网上另外一个DDR设计的例子中看到。 当然,我已经在程序中添加了一选择项,对一些矩形焊盘可以选择倒角方式. 刚才试了一下,感觉器件的命名的规范性不是太好,另好像不能生成器件的DEVICE文件,我没RUN完。。。 这个程序的命名方法基本参照IPC-7351,每个人都有自己的命名嗜好,仍是不好统一的;我是比较懒的啦,所以就尽量靠近IPC-7351了。 至于DEVICE,的选项已经添加 (这就是批量程序的好处,代码中加一行,重新生产的上千上万个封装就都有新东西了)。 你的库都是"-"的,请问用过ALLEGRO的兄弟,你们的FOOTPRINT认"-"吗?反正我的ALLEGRO只认"_"(下划线) 用“-”应该没有问题的,焊盘的命名我用的是"_"(这个一直没改动过)。 部分丝印画在焊盘上了。 丝印的问题我早已知道,只是尽量避免开(我有个可配置的SilkGap变量),不过工作量比较大,有些已经改过,有些还没有;另外我没有特别费功夫在丝印上的另一个原因是,我通常最后用AUTO-SILK的来合并相关的层,这样既方便快捷也统一各个器件的丝印间距,用AUTO-SILK的话丝印线会自动避开SOLDER-MASK的。 点击allegro后命令行出现E- Can't change to directory: Files\FPM,什么原因? 我想你一定是将FPM安装在一个含空格的目录里面了,比如C:\Program Files\等等之类,在自定义安装目录的时候该目录名不能含有空格,且存放生成的封装的目录名也不能含有空格。你如果用默认安装的话应该是不会有问题的, 默认FPM安装在C:\FPM,默认存放封装的目录为C:\MYSYM 0.04版用spb15.51生成时.allegro会死机.以前版本的Allegro封装生成器用spb15.51生成时没有死机现象 我在生成MELF类封装的时候有过一次死机现象,估计是文件操作错误导致ALLEGRO死机,原因是我没有找到在skill里面直接生成SHAPE焊盘的方法(FLASH和常规焊盘没问题), 查了下资料也没有找到解决方法,所以只得在外部调用SCRIPT来将就一下了。(下次我再查查看),用SCRIPT的话文件访问比较频繁(幸好目前MELF类的器件不多). 解决办法: 1、对MELF类器件单独选择生成,其它的应该可以一次生成。 2、试试最新的版本(当前0.05) 请说明运行在哪类器件的时候ALLEGRO出错,如果不是在MELF附近的话,请告知,谢谢。 用FPM0.04生成的封装好像文件都比较大,比如CAPC、RES等器件,都是300多K,而自己建的或采用PCB Libraries Eval生成的封装一般才几十K到100K左右,不知封装是不是包含了更多的信息? 我的每个封装文件包含了几个文字层(REF,VAL,TOL,DEV,PARTNUMBER等),SILK和ASSEM也是分开的,BOND层和高度信息,还有些定位线(在DISP层),可能这些越来越丰富的信息加大了生成文件的尺寸.你如果想看有什么内容的话,打开所有层就看见了(或REPORT) 非常感谢 LiWenHui 发现的BUG, 已经找到原因,是下面这行: axlDBChangeDesignExtents( '((-1000 -1000) (1000 1000))) 有尺寸空间开得太大,后又没有压缩的原因,现在生成的封装也只有几十K了,0.05版已经修复这个BUG了。 Allegro封装生成器0.04生成do-27封装不正确,生成封装的焊盘的位号为a,c.应该是A,B或者1,2才对. 呵呵,DIODE通常管脚名为AC(A = anode, C = cathode) 也有用AK 或 12的, 极少见AB。 除了DIODE和极个别插件以及BGA外,焊盘名字以数字为主, 下次我给DIODE一个选择项,可以选择AC 或 12 或 AK, 至于TRANSISTER我就不去区分BCE/CBE/ECB/EBC/GDS/GSD/DSG/DGS/SGD/SDG等了,这样会没完没了的,我将对TRANSISTER强制统一以数字编号了,如果用家非要改变,只得在生成库后手工修改。
标签: Footprint Maker 0.08 FPM skill
上传时间: 2018-01-10
上传用户:digitzing
module M_GAUSS !高斯列主元消去法模块 contains subroutine LINEQ(A,B,X,N) !高斯列主元消去法 implicit real*8(A-Z) integer::I,K,N integer::ID_MAX !主元素标号 real*8::A(N,N),B(N),X(N) real*8::AUP(N,N),BUP(N) !A,B为增广矩阵 real*8::AB(N,N+1) real*8::VTEMP1(N+1),VTEMP2(N+1) AB(1:N,1:N)=A AB(:,N+1)=B
标签: fortan Newton 程序 数值分析 方程 非线性
上传时间: 2018-06-15
上传用户:answer123
步骤一 按快捷键Ctrl+N新建A4大小空白横向文档,并填充颜色为浅绿色。 步骤二 选择工具箱中的“贝塞尔工具”绘制荷叶,使用“形状工具”进行节点调整。填充轮廓色和填充色。 步骤三 在工具箱中选择“网状填充工具”设置网格中的行列数为3*3,鼠标框选中间4个节点,统一填充颜色为(R:0,G:153,B:51)。 步骤四 选择“贝塞尔工具”绘制荷叶叶脉,由于所画线条是不连接的单一曲线,所以绘制时可以借助键盘上的“空格”键来进行切换。 步骤五 接着利用“贝塞尔工具”依照前面的方法绘制出不同形态的叶子并Ctrl+G群组。 步骤六 用“贝塞尔工具”绘制荷叶茎部,按F12键调整曲线宽度为3,自定义颜色值为(C:70,M:0,Y:100,K:0),然后执行“对象”→“将轮廓转换为对象”命令,再次按F12键添加宽度为细线的(C:78,M:19,Y:76,K:0)的颜色值,调整顺序到后层。 步骤七 选择一片群组合过的叶子,进行位图模糊处理,放在画面后面,达到近实远虚的视觉效果。 步骤八 选择“贝塞尔工具”绘制花瓣,借助网状填充工具填充粉色到洋红色,按Ctrl键绘制一个正圆,按F12把圆加粗,然后执行“对象”→“将轮廓转换为对象”命令(Ctrl+Shift+Q)。 步骤九 绘制各种形态的荷花造型,并群组图形。
上传时间: 2018-08-03
上传用户:cjmktt
无线电CW通联 基本Q短语,通联实例 A: CQCQCQ DE BA4ALC/5 BA4ALC/5 BA4ALC/5 PSE K B:BA4ALC/5 DE BD4IZL BD4IZL K A:BD4IZL DE BA4ALC/5 GM TNX FER CALL DR OM UR RST 559 55N K B:RR BA4ALC/5 DE BD4IZL GM DR OM TNX 55N RPRT UR 599 5NN FB MY NAME IS YU YU QTH JINAN JINAN BA4ALC/5 DE BD4IZL K A: DR YU OM TNX FB RPRT OP JACK JACK QTH NINGBO NINGBO WX HR IS FINE ES WARM TEMP 20C 20C HW? DE BA4ALC/5 K B:R DR JACK OM WX CLOUDY CLOUDY ES TEMP 15C 15C BT RIG FT80C FT80C ANT DIPOLE DP PWR 100WATTS 1TTW BA4ALC/5 DE BD4IZL K A: BD4IZL DE BA4ALC/5 MY RIG IS IC746PRO IC746PRO ES PWR 100W 1OOW BT ANT 2 ELE YAGI 2ELE YAGI 12MH TNX FER NICE QSO QSL VIA BURO HPE CUAGN BD4IZL DE BA4ALC/5 73 73 GL ES GB TU TU SK.. B:TNX FB CW QSO QSL QRZ.COM CUAGN BA4ALC/5 DE BD4IZL 73 DR JACK TU SK.. A:. B:.
上传时间: 2019-03-05
上传用户:shuyinglee
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//统计成绩 { printf("数学新成绩:"); scanf("%f",&stu[a].sco.math); printf("英语新成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机新成绩:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改学生资料 { printf("学号:%d----修改为:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改为:",stu[a].name); gets(stu[a].name); printf("数学成绩:%.2f----修改为:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英语成绩:%.2f----修改为:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("计算机成绩:%.2f----修改为:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此学生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//删除总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否删除此条记录?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("记录已删除!\n"); } } void delete_student2(int a,int b)//删除学生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查询总函数 { printf("1、按学号查询\n2、按平均分最高查询\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜单调度总函数 { print_menu(); choosemenu(); } void sort_student1(void)//排序总函数 { printf("1、按数学成绩排序\n2、按英语成绩排序\n3、按计算机成绩排序\n4、按平均成绩排序\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//显示全部学生资料 { printf("本班所有学生具体信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//显示学生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//显示表头 { printf(" 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\n"); } void input_student4(int a,int b)//覆盖原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判断学号是否重复 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此学号代表的学生已录入\n1、覆盖原信息\n2、重新输入\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替换!\n"); break; } case 2: { printf("请重新输入学生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//输出菜单 { printf("======欢迎来到学生信息管理系统======\n"); printf(" 1、输入学生资料\n"); printf(" 2、删除学生资料\n"); printf(" 3、查询学生资料\n"); printf(" 4、修改学生资料\n"); printf(" 5、显示学生资料\n"); printf(" 6、统计学生成绩\n"); printf(" 7、排序学生成绩\n"); printf(" 8、保存学生资料\n"); printf(" 9、获取帮助信息\n"); printf(" 10、退出系统\n"); printf("====================================\n"); printf("请选择:"); } void input_student2(void)//输入总函数 { char end; printf("请输入学生信息(在最后一个学生信息录入完成后以“/”结束录入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//输入学生信息 { printf("学号:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("数学成绩:"); scanf("%f",&stu[a].sco.math); printf("英语成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机成绩:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//计算学生平均成绩 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查询并输出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照数学成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英语成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照计算机成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照学号查找学生并输出 { int num; int c; printf("请输入要查询的学号:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此学生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜单选择 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 运行结果: 源文件下载地址: http://115.com/file/clnq138g#一个简单的学生成绩管理系统.rar (请将此地址复制到浏览器地址栏中访问下载页面)
标签: 成绩查询系统
上传时间: 2019-06-08
上传用户:啊的撒旦
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//统计成绩 { printf("数学新成绩:"); scanf("%f",&stu[a].sco.math); printf("英语新成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机新成绩:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改学生资料 { printf("学号:%d----修改为:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改为:",stu[a].name); gets(stu[a].name); printf("数学成绩:%.2f----修改为:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英语成绩:%.2f----修改为:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("计算机成绩:%.2f----修改为:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此学生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//删除总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否删除此条记录?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("记录已删除!\n"); } } void delete_student2(int a,int b)//删除学生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查询总函数 { printf("1、按学号查询\n2、按平均分最高查询\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜单调度总函数 { print_menu(); choosemenu(); } void sort_student1(void)//排序总函数 { printf("1、按数学成绩排序\n2、按英语成绩排序\n3、按计算机成绩排序\n4、按平均成绩排序\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//显示全部学生资料 { printf("本班所有学生具体信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//显示学生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//显示表头 { printf(" 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\n"); } void input_student4(int a,int b)//覆盖原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判断学号是否重复 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此学号代表的学生已录入\n1、覆盖原信息\n2、重新输入\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替换!\n"); break; } case 2: { printf("请重新输入学生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//输出菜单 { printf("======欢迎来到学生信息管理系统======\n"); printf(" 1、输入学生资料\n"); printf(" 2、删除学生资料\n"); printf(" 3、查询学生资料\n"); printf(" 4、修改学生资料\n"); printf(" 5、显示学生资料\n"); printf(" 6、统计学生成绩\n"); printf(" 7、排序学生成绩\n"); printf(" 8、保存学生资料\n"); printf(" 9、获取帮助信息\n"); printf(" 10、退出系统\n"); printf("====================================\n"); printf("请选择:"); } void input_student2(void)//输入总函数 { char end; printf("请输入学生信息(在最后一个学生信息录入完成后以“/”结束录入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//输入学生信息 { printf("学号:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("数学成绩:"); scanf("%f",&stu[a].sco.math); printf("英语成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机成绩:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//计算学生平均成绩 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查询并输出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照数学成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英语成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照计算机成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照学号查找学生并输出 { int num; int c; printf("请输入要查询的学号:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此学生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜单选择 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 运行结果: 源文件下载地址: http://115.com/file/clnq138g#一个简单的学生成绩管理系统.rar (请将此地址复制到浏览器地址栏中访问下载页面) #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!
标签: c语言
上传时间: 2019-06-09
上传用户:啊的撒旦
产品型号:VK36N3B 产品品牌:VINTEK/永嘉 封装形式:SOP8 产品年份:新年份产品 元泰原厂直销,现货更有优势!工程服务,技术支持,让您的生产高枕无忧。 1.概述: VK36N3B具有3个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外 部组件便可实现触摸按键的检测。提供了2位BCD输出功能,可方便与外部MCU之间的通讯,实现设备安装及触摸引脚监测目的。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可减少按键检测错误的发生,此特性保证在不利环境条件的应用中芯片仍具有很高的可靠性。此触摸芯片具有自动校准功能,低待机电流,抗电压波动等特性,为各种触摸按键的应用提供了一种简单而又有效的实现方法。 2. 特性: • 工作电压:2.2V~5.5V • 低待机电流10uA/3V • 低压重置(LVR)电压2.0V • 4S自动校准功能 • 可靠的触摸按键检测 • 无键按下4S进入待机模式 • 防呆功能长按10S复位 • 具备抗电压波动功能 • 输出2位BCD码 • 专用管脚外接电容(1nF-47nF)调整灵敏度 极少的外围组件 我们的优势: 1:我司为VINTEK/台湾元泰半导体股份有限公司/VINKA的独家授权大中华区代理商,产品渠道正宗,确保原装正品,大量库存现货,客户批量不惧假货! 2:公司工程力量雄厚,真诚技术服务支持,搭配原厂服务各种应用产品客户。 3:好价格源自连接原厂直销,你有量,我有价,确保原装的好价格。 VK原厂代理:罗小姐 QQ:461366748 TEL:188 2366 3425 优势代理元泰VKD常用触控按键IC,简介如下: 标准触控IC-电池供电系列 VKD223EB --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯接口 最长响应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD223B --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯接口 最长响应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD233DB --- 工作电压/电流: 2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DH ---工作电压/电流: 2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 有效键最长时间检测16S VKD233DS --- 工作电压/电流: 2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DR --- 工作电压/电流: 2.4V-5.5V/1.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流1.5uA-3V VKD233DG --- 工作电压/电流: 2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DQ --- 工作电压/电流: 2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD233DM --- 工作电压/电流: 2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 (开漏输出) 通讯接口:开漏输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD232C --- 工作电压/电流: 2.4V-5.5V/2.5uA-3V 感应通道数:2 封装:SOT23-6 通讯接口:直接输出,低电平有效 固定为多键输出模式,內建稳压电路 (元泰原厂授权 原装正品保障 工程技术支持 大量现货库存) 标准触控IC-—多键触摸通道系列 VKD104BR --- 工作电压/电流:2.4V-5.5V/13uA-3V 感应通道数/按键数:2 通讯接口:直接输出, toggle输出 封装:SOP-8 VKD104 --- 工作电压/电流:2.4V-5.5V/13uA-3V 感应通道数/按键数:4 通讯接口:直接输出, 锁存输出,开漏输出 封装:DICE VKD104BC --- 工作电压/电流:2.4V-5.5V/13uA-3V 感应通道数/按键数:4 通讯接口:直接输出,锁存输出,开漏输出 封装:SOP-16 VKD104SB --- 工作电压/电流:2.4V-5.5V/13uA-3V 感应通道数/按键数:4 通讯接口:直接输出,锁存输出,开漏输出 封装:SSOP-16 VKD1016B --- 工作电压/电流:2.4V-5.5V/20uA-3V 感应通道数/按键数:16-8 通讯接口:直接输出,锁存输出,开漏输出 封装:SSOP-28 VKD1016L --- 工作电压/电流:2.4V-5.5V/20uA-3V 感应通道数/按键数:16-8 通讯接口:直接输出,锁存输出,开漏输出 封装:SSOP-28 (元泰原厂授权 原装正品保障 工程技术支持 大量现货库存) 标准触控IC——VK36电源供电抗干扰系列 VK3601S --- 工作电压/电流:2.4V-5.5V/4mA-3.3V 感应通道数:1 通讯接口:1 INPUT/1PWM OUT 封装:SOP-8 VK3608BM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:8 通讯接口:BCD码直接输出 封装:SOP-16 VK3606DM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:6 通讯接口:1对1直接输出 封装:SOP-16 VK3606OM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:6 通讯接口:1对1开漏输出 封装:SOP-16 VK3610IM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:10 通讯接口:SCL/SDA/INT通讯口 封装:SOP-16 标准触控IC——VK37低功耗抗干扰系列 VK3702DM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:2 通讯接口:1对1直接输出 封装:SOP-8 VK3702OM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:2 通讯接口:1对1开漏输出 封装:SOP-8 VK3702TM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:2 通讯接口:1对1toggle输出 封装:SOP-8 VK3706DM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:6 通讯接口:1对1直接输出 封装:SOP-16 VK3706OM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:6 通讯接口:1对1开漏输出 封装:SOP-16 VK3708BM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:8 通讯接口:BCD码直接输出 封装:SOP-16 VK3710IM --- 工作电压/电流:3.1V-5.5V/ 3mA-5V 感应通道数:10 通讯接口:SCL/SDA/INT通讯口 封装:SOP-16 标准触控IC——VK38带滑条抗干扰系列 VK3809IP --- 工作电压/电流:2.5V-5.5V/1.1mA-3V 感应通道数:9 通讯接口:IIC/INT通讯口 封装:SSOP-16 VK3813IP --- 工作电压/电流:2.5V-5.5V/1.1mA-3V 感应通道数:13 通讯接口:IIC/INT通讯口 封装:SSOP-20 VK3816IP --- 工作电压/电流:2.5V-5.5V/1.1mA-3V 感应通道数:16 通讯接口:IIC/INT通讯口 封装:SSOP-28 VK3816IP-A --- 工作电压/电流:2.5V-5.5V/1.1mA-3V 感应通道数:16 通讯接口:IIC/INT通讯口 封装:SSOP-28 (元泰原厂授权 原装正品保障 工程技术支持 大量现货库存) MTP触摸 IC——VK36N系列抗电源辐射及手机干扰 VK3601L --- 工作电压/电流:2.4V-5.5V/4UA-3V3 感应通道数:1 1对1直接输出 待机电流小,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOT23-6 VK36N1D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:1 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOT23-6 VK36N2P --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:2 脉冲输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOT23-6 VK3602XS ---工作电压/电流:2.4V-5.5V/60UA-3V 感应通道数:2 2对2锁存输出 低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压 封装:SOP8 VK3602K --- 工作电压/电流:2.4V-5.5V/60UA-3V 感应通道数:2 2对2直接输出 低功耗模式电流8uA-3V,抗电源辐射干扰,宽供电电压 封装:SOP8 VK36N2D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:2 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOP8 VK36N3BT ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码锁存输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOP8 VK36N3BD ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOP8 VK36N3BO ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 BCD码开漏输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP8/DFN8(超小超薄体积) VK36N3D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:3 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N4B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:4 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N4I---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:4 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5D ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N5I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:5 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N6I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:6 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N7B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:7 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N7I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:7 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N8B ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:8 BCD输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N8I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:8 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N9I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:9 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) VK36N10I ---工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:10 I2C输出 触摸积水仍可操作,抗电源及手机干扰 封装:SOP16/DFN16(超小超薄体积) (元泰原厂授权 原装正品保障 工程技术支持 大量现货库存) 1-8点高灵敏度 液体水位检测IC——VK36W系列 VK36W1D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:1 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰 封装:SOT23-6 备注:1. 开漏输出低电平有效 2、适合需要抗干扰性好的产品应用 VK36W2D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:2 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰 封装:SOP8 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W4D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:4 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰 封装:SOP16/DFN16 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W6D ---工作电压/电流:2.2V-5.5V/10UA-3V3 1对1直接输出 水位检测通道:6 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰 封装:SOP16/DFN16 备注:1. 1对1直接输出 2、输出模式/输出电平可通过IO选择 VK36W8I ---工作电压/电流:2.2V-5.5V/10UA-3V3 I2C输出 水位检测通道:8 可用于不同壁厚和不同水质水位检测,抗电源/手机干扰 封装:SOP16/DFN16 备注:1. IIC+INT输出 2、输出模式/输出电平可通过IO选择 *水位检测芯片可用于需要检测水位,缺水,溢出等场合。适合应用于饮水机、净饮机、咖啡机、水壶、洗碗机、制冰机等水相关家用电器和电子产品。 测试环境:在一个玻璃容器外壁(玻璃1-5毫米不等),通过双面电子导热硅胶,把水位检测PCB直接贴在玻璃上面检测水位。 简介: VK36W水位检测系列是抗干扰能力强,穿透能力高的水位检测专用触摸芯片。 拥有1-8点检测点,适合于多种应用段位检测。封装为SOT23-6,SOP8,SOP16 上电就能检测水位点是否有水,水从无水到有水,从有水到无水,都可以检测出来。 检测时可以不接触到水(隔空)在水箱外面检测到水位,也可以用金属探针接触到水来检测水位。 在高干扰或者AC开关电源的应用中也可以正常工作。 应用于多种液体水位检测产品,检测缺水,水位,溢水等多种场景 列如: 1:智能马桶盖,抽水马桶,水蒸锅,净水机,空调扇,洗碗机,加湿器,咖啡机,饮水机,制冰机,鱼 缸加热棒,浮水器,浴缸,洁具 ---- 家用家电系列 2:植物盆溢水,香薰机,负离子发生器,水位漏水溢水报警器等智能家居产品。 3:水杯,储水器等液位检测杯 4:空气净化器,加湿器,雾化器等环境净化设备 PWM应用(LED调光)IC——VK36S系列防水抗干扰 VK36S1 --- 工作电压/电流:2.2V-5.5V/7UA PWN+指示灯输出 水位检测通道:1 应用于台灯及LED调光场合,抗电源/手机干扰,防水 封装:SOT23-6 1键触摸PWN输出调光,单击开关机,长按调光,指示灯输出专用引脚 VK36S2S --- 工作电压/电流:2.2V-5.5V/7UA PWN+指示灯输出 水位检测通道:2 应用于台灯及LED调光场合,抗电源/手机干扰,防水 封装:SOT23-6 2键触摸PWN输出调光,一个按键为开/关机,长按调光,低电平有效 VK3601SS ---工作电压/电流:2.4V-5.5V/4MA-3.3V 1路PWN输出 水位检测通道:1 可选择无级和3段调光,PWM=20KH,抗电源/手机干扰, 封装:SOP8 1键触摸单路调光 无级调光时可选择不断电记忆和亮度缓冲功能 VK36S1R --- 工作电压/电流:2.2V-5.5V/7UA RGB七彩灯灯输出 水位检测通道:1 应用于台灯及LED调光场合,抗电源/手机干扰,防水, 封装:SOP8 1键触摸按键+1路指示灯输出,单击开关机,长按调光,RGB七彩灯灯输出 VK36S1S --- 工作电压/电流:2.2V-5.5V/7UA PWM+双指示灯输出 水位检测通道:1 应用于台灯及LED调光场合,抗电源/手机干扰,防水, 封装:SOP8 1键触摸+双路指示灯输出,1路PWM+1路指示灯输出,多种调光可通过引脚选择 VK36S2S --- 工作电压/电流:2.2V-5.5V/7UA PWM+双指示灯输出 水位检测通道:2 应用于台灯及LED调光场合,抗电源/手机干扰,防水, 封装:SOP8 2键触摸,1键开关/1键调光,低电平有效,多种调光可通过引脚选择 VK36S2D --- 工作电压/电流:2.2V-5.5V/7UA 双路PWM+指示灯输出 水位检测通道:2 应用于台灯及LED调光场合,抗电源/手机干扰,防水, 封装:SOP8 2键触摸,1键开关/1键调光,1路PWM输出,低电平有效,指示灯引脚输出 VK36S3D --- 工作电压/电流:2.2V-5.5V/7UA 双路PWM输出 水位检测通道:3 应用于台灯及LED调光场合,抗电源/手机干扰,防水, 封装:SOP8 3键触摸,1键开关/1键调光/1键调色温,低电平有效,指示灯引脚输出 VK36S9S --- 工作电压/电流:2.2V-5.5V/7UA 1路PWM输出 水位检测通道:9 应用于照明调光,抗电源/手机干扰,触摸积水仍可操作 封装:SOP16 9键触摸,1键开机/8键滑条调光,1路PWM输出,1路指示灯输出 VK36S9D --- 工作电压/电流:2.2V-5.5V/7UA 2路PWM输出 水位检测通道:9 应用于照明调光,抗电源/手机干扰,触摸积水仍可操作 封装:SOP16 9键触摸,1键开机/8键滑条调光调色温,1路指示灯输出,多种模式可选 (元泰原厂授权 原装正品保障 工程技术支持 大量现货库存) 可编程触摸IC-VK54M系列 VK54M2 --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:2 IO:3 &nb
标签: 触摸感应芯片 触摸区域积水仍可正常操作
上传时间: 2020-06-11
上传用户:shubashushi66
IDAQ-8098 控温模块是专为精确控温应用而设计的,采用多 CPU 方案实现采集和 PID 控制分开工 作,采用 Modbus 通信协议,通过 RS-485 通信接口下载控温参数,并实时监测被控温区实时温度、控温 状态和数字量输入输出状态,还可以控制控温的启停等功能。启动控温后,模块能够按照设定的控温参数 自动工作,无须其他设备干预,这样就大大减轻了控制系统的工作负担,提高了整个系统的稳定性和可靠 性。IDAQ-8098 控温模块完全实现系统的温度采集和控制,有效减少了技术部门在该功能上的开发和调试 时间,使产品能够快速占领市场。 ◆ 多 CPU 工作方式,采集热电偶信号和 PID 控制完全分开协同式工作 ◆ 控温方式:增量 PID 加模糊控制,自适应 PID 控制(保存自适应的最佳参数供下次使用) ◆ 8 个控温通道各自独立 PID 控制,对应于 8 个通道的热电偶输入 ◆ PID 采样周期可达 500ms ◆ 控温精度最高能达到±0.5℃ ◆ 五种脉宽输出指示五种控温状态(不控温、加热、恒温、预警和报警) ◆ 可通过 RS-485 串口远程监视工作状态 ◆ 可和 PLC 挂接通讯,组合成最完美最经济最可靠的 IO 控制和被控温区温度控制系统◆ 有效分辨率:16 位 ◆ 通道:8 路差分 ◆ 输入类型:输入类型:热电偶,PT100,0~20mA,0-10V,-20-+20mV,-78-+78mV,-312-+312mV,0-5000mV ◆ 热电偶类型与温度范围: J -200 ~ 1200℃ K -200 ~ 1370℃ T -200 ~ 400℃ E -200 ~ 1000℃ R -50 ~ 1760℃ S -50 ~ 1760℃ B 0 ~ 1820℃ PT100 温度范围:-200 ~ 660℃ ◆ 隔离电压:3000Vdc ◆ 故障与过压保护:最大承受电压±35V ◆ 采样速率:20 采样点/ 秒(总共) ◆ 输入阻抗:20M ◆ 精度:±0.1%( 电压输入) ◆ 零漂移:±3uV/℃
标签: PID温控模块
上传时间: 2021-12-09
上传用户:
序号 题号 题目名称 组别1 A 微电网模拟系统 本科2 B 滚球控制系统 本科3 C 四旋翼自主飞行器探测跟踪系统 本科4 E 自适应滤波器 本科5 F 调幅信号处理实验电路 本科6 H 远程幅频特性测试装置 本科7 I 可见光室内定位装置 本科8 K 单相用电器分析监测装置 本科9 L 自动泊车系统 高职高专10 M 管道内钢珠运动测量装置 高职高专11 O 直流电动机测速装置 高职高专12 P 简易水情检测系统 高职高专
标签: 全国大学生电子设计竞赛
上传时间: 2021-12-11
上传用户:wangshoupeng199
家 庭 总 线 是 智 能 家 居 实 现 的 重 要 基 础 . 是 住 宅 内 部 的 神 经 系 统 . 其 主 要 作 用 是 连 接 家 中的各 种 电子 、 电气 设 备 . 负责 将 家 庭 内 的 各 种 通 信 设 备 ( 包 括 安 保 、 电话 、 家 电 、 视 听 设 备 等 )连 接 在 一 起 . 形 成 一 个 完 整 的家 庭 网 络 。 日 本 是 较 早 推 动 智 能 家 居 发 展 的 国 家 之 一 , 它 较 早 地 提 出 了 家庭 总线 系统 (H O m e B u S S Y S t e m , 简称H B S ) 的概念 . 成 立 了 家庭 总线 (H B S )研 究会 . 并 在 邮政省和 通 产 省 的指 导 下 组 成 了H B S 标 准委 员 会 , 制定 了 日 本 的H B s 标 准 。 按 照 该 标 准 , H B S 系统 由一 条 同 轴 电 缆 和 4 对 双 绞 线 构 成 , 前 者 用 于 传 输 图 像 信 息 . 后者 用 于 传输语 音 、 数据及 控制信 号 。 各 类家用 设 备 与 电气 设 备 均 按 一 定 方式 与H B S 相 连 , 这 些 电气设 备 既 可 以在 室 内进 行 控制 . 也 可 在异地 通 过 电话进行 遥 控 。 为适 应 大型 居住社 区 的需 要 , 1 9 8 8 年年初 , 日 本住 宅信息 化推进协会 又 推 出 了 超级 家庭总 线 (S u p e r H0 m e B u s S y s t e m , 简 称S - H B S ) , 它适 用 于 更 大 的范 围 . 因 为一 个S - H B s 系统可 挂接 数千个家庭 内部 网 。 家庭 智能化要 求诸 多家 电和 网络能够彼此 相容 . 总线协 议是 其精髓 所 在 , 只 有接 E l 畅通 , 家 电才能 “ 听懂 ” 人 发 出的指令 , 因此 总线标准 的物理 层 接 口 形 式 是 智能 家居 亟 待解决 的重 要 问题 之 一 。 目前 比 较成型 的总线标 准 协 议 主 要 是 美 国公 司 提 出 的 , 包 括E c h e l o n 公 司 I)~L o n W o r k s 协议 、 电子 工 业 协 会 (E I A ) 的C E 总线协 议 (C EB u S ) 、 S m a r t Ho u s e L P 的智 能屋 协 议 和×一 1 0 公 司 的X 一 1 0 协 议等。 这 些 协 议 各 有 优 劣 。
标签: 智能家居
上传时间: 2022-03-11
上传用户: