主要程序代码有 单片机与LED数码管接口 LED大屏幕显示器和接口 字符LCD 液晶显示和接口 单片机与键盘接口 A/D转换器接口 D/A 转换器接口 串行通信基础 MCS-51的串行接口 MCS-51单片机双机通信 RS-232C串行通信总线标准及其接口 存储器的扩展 串行口的I/O口扩展 数字钟的设计与制作 单片机温度检测记录系统
上传时间: 2016-04-12
上传用户:eruth
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*运动员*/ { char name[20]; int score; /*分数*/ int range; /**/ int item; /*项目*/ }ATH; typedef struct schoolstruct /*学校*/ { int count; /*编号*/ int serial; /**/ int menscore; /*男选手分数*/ int womenscore; /*女选手分数*/ int totalscore; /*总分*/ ATH athlete[MaxSize]; /**/ struct schoolstruct *next; }SCH; int nsc,msp,wsp; int ntsp; int i,j; int overgame; int serial,range; int n; SCH *head,*pfirst,*psecond; int *phead=NULL,*pafirst=NULL,*pasecond=NULL; void create(); void input () { char answer; head = (SCH *)malloc(sizeof(SCH)); /**/ head->next = NULL; pfirst = head; answer = 'y'; while ( answer == 'y' ) { Is_Game_DoMain: printf("\nGET Top 5 when odd\nGET Top 3 when even"); printf("\n输入运动项目序号 (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n这个项目已经存在请选择其他的数字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n项目不存在"); printf("\n请重新输入"); goto Is_Game_DoMain; } switch ( overgame%2 ) { case 0: n = 3;break; case 1: n = 5;break; } for ( i = 1 ; i <= n ; i++ ) { Is_Serial_DoMain: printf("\n输入序号 of the NO.%d (0<x<=%d): ",i,nsc); scanf("%d",&serial); if ( serial > nsc ) { printf("\n超过学校数目,请重新输入"); goto Is_Serial_DoMain; } if ( head->next == NULL ) { create(); } psecond = head->next ; while ( psecond != NULL ) { if ( psecond->serial == serial ) { pfirst = psecond; pfirst->count = pfirst->count + 1; goto Store_Data; } else { psecond = psecond->next; } } create(); Store_Data: pfirst->athlete[pfirst->count].item = overgame; pfirst->athlete[pfirst->count].range = i; pfirst->serial = serial; printf("Input name:) : "); scanf("%s",pfirst->athlete[pfirst->count].name); } printf("\n继续输入运动项目(y&n)?"); answer = getchar(); printf("\n"); } } void calculate() /**/ { pfirst = head->next; while ( pfirst->next != NULL ) { for (i=1;i<=pfirst->count;i++) { if ( pfirst->athlete[i].item % 2 == 0 ) { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 5;break; case 2:pfirst->athlete[i].score = 3;break; case 3:pfirst->athlete[i].score = 2;break; } } else { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 7;break; case 2:pfirst->athlete[i].score = 5;break; case 3:pfirst->athlete[i].score = 3;break; case 4:pfirst->athlete[i].score = 2;break; case 5:pfirst->athlete[i].score = 1;break; } } if ( pfirst->athlete[i].item <=msp ) { pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score; } else { pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score; } } pfirst->totalscore = pfirst->menscore + pfirst->womenscore; pfirst = pfirst->next; } } void output() { pfirst = head->next; psecond = head->next; while ( pfirst->next != NULL ) { // clrscr(); printf("\n第%d号学校的结果成绩:",pfirst->serial); printf("\n\n项目的数目\t学校的名字\t分数"); for (i=1;i<=ntsp;i++) { for (j=1;j<=pfirst->count;j++) { if ( pfirst->athlete[j].item == i ) { printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break; } } } printf("\n\n\n\t\t\t\t\t\t按任意建 进入下一页"); getchar(); pfirst = pfirst->next; } // clrscr(); printf("\n运动会结果:\n\n学校编号\t男运动员成绩\t女运动员成绩\t总分"); pfirst = head->next; while ( pfirst->next != NULL ) { printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore); pfirst = pfirst->next; } printf("\n\n\n\t\t\t\t\t\t\t按任意建结束"); getchar(); } void create() { pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct)); pfirst->next = head->next ; head->next = pfirst ; pfirst->count = 1; pfirst->menscore = 0; pfirst->womenscore = 0; pfirst->totalscore = 0; } void Save() {FILE *fp; if((fp = fopen("school.dat","wb"))==NULL) {printf("can't open school.dat\n"); fclose(fp); return; } fwrite(pfirst,sizeof(SCH),10,fp); fclose(fp); printf("文件已经成功保存\n"); } void main() { system("cls"); printf("\n\t\t\t 运动会分数统计\n"); printf("输入学校数目 (x>= 5):"); scanf("%d",&nsc); printf("输入男选手的项目(x<=20):"); scanf("%d",&msp); printf("输入女选手项目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
标签: 源代码
上传时间: 2016-12-28
上传用户:150501
郭天祥版教程用 安装方法是先将V6.12安装程序用复制到某个目录下,如复制到D:\keilC51 然后执行D:\keilC51\setup\setup.exe 安装程序,选择安装Eval Version版进 行安装。
上传时间: 2017-06-19
上传用户:359981736
#include "iostream" using namespace std; class Matrix { private: double** A; //矩阵A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //为向量b分配空间并初始化为0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //为向量A分配空间并初始化为0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析构中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"请输入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"请输入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"个:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分别求得U,L的第一行与第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分别求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"计算U得:"<<endl; U.Disp(); cout<<"计算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
标签: 道理特分解法
上传时间: 2018-05-20
上传用户:Aa123456789
%球体 close all; G=6.67e-11; R=2;%球体半径 p=4.0;%密度 D=10.0;%深度 M=(4/3)*pi*R^3*p;%质量 x=-20:1:20; g=G*M*D./((x.^2+D^2).^(3/2)); Vxz=-3*G*M*D.*x./((x.^2+D^2).^(5/2)); Vzz=G*M.*(2*D^2-x.^2)./((x.^2+D^2).^(5/2)); Vzzz=3*G*M.*(2*D^2-3.*x.^2)./((x.^2+D^2).^(7/2)); subplot(2,2,1) plot(x,g,'k-'); xlabel('水平距离(m)'); ylabel('重力异常值'); title('球体重力异常Δg'); grid on subplot(2,2,2) plot(x,Vxz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vxz'); grid on subplot(2,2,3) plot(x,Vzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzz'); grid on subplot(2,2,4); plot(x,Vzzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzzz'); grid on %% %水平圆柱体 close all G=6.67e-11; p=10.0;%线密度 D=100.0;%深度 x=-200:1:200; g=G*2*p*D./(x.^2+D^2); Vxz=4*G*p*D.*x./(x.^2+D^2).^2; Vzz=2*G*p.*(D^2-x.^2)./(x.^2+D^2).^2; Vzzz=4*G*p.*(D^2-3.*x.^2)./((x.^2+D^2).^3); subplot(2,2,1) plot(x,g,'k-'); xlabel('水平距离(m)'); ylabel('重力异常值'); title('水平圆柱体重力异常Δg'); grid on subplot(2,2,2) plot(x,Vxz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vxz'); grid on subplot(2,2,3) plot(x,Vzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzz'); grid on subplot(2,2,4); plot(x,Vzzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzzz'); grid on %% %垂直台阶 G=6.67e-11; p=4.0;%密度 h1=50.0;%下层深度 h2=40.0;%上层深度 x=-100:1:100; g=G*p.*(pi*(h1-h2)+x.*log((x.^2+h1^2)./(x.^2+h2^2))+2*h1.*atan(x./h1)-2*h2.*atan(x./h2)); Vxz=G*p.*log((h1^2+x.^2)./(h2^2+x.^2)); Vzz=2*G*p.*atan((x.*(h1-h2))./(x.^2+h1*h2)); Vzzz=2*G*p.*x*(h1^2-h2^2)./((h1^2+x.^2).*(x.^2+h2^2)); subplot(2,2,1) plot(x,g,'k-'); xlabel('水平距离(m)'); ylabel('重力异常值'); title('垂直台阶重力异常Δg'); grid on subplot(2,2,2) plot(x,Vxz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vxz'); grid on subplot(2,2,3) plot(x,Vzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzz'); grid on subplot(2,2,4); plot(x,Vzzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzzz'); grid on %% %倾斜台阶 G=6.67e-11; p=4.0;%密度 h1=50.0;%下层深度 h2=40.0;%上层深度 a=pi/6;%倾斜角度 x=-500:1:500; g=G*p.*(pi*(h1-h2)+2*h1.*atan((x+h1*cot(a))./h1)-2*h2.*atan((x+h2*cot(a))./h1)+x.*sin(a)^2.*log(((h1+x.*sin(a).*cos(a)).^2+x.^2.*sin(a)^4)./((h2+x.*(sin(a)*cos(a))).^2+x.^2.*sin(a)^4))); Vxz=G*p.*(sin(a)^2.*log(((h1*cot(a)+x).^2+h1^2)./((h2*cot(a)+x).^2+h2^2))-2*sin(2*a).*(atan((h1/sin(a)+x.*cos(a))./(x.*sin(a)))-atan((h2/sin(a)+x.^cos(a))./(sin(a).*x)))); Vzz=G*p.*(0.5*sin(2*a)^2.*log(((h1*cot(a)+x).^2+h1^2)./((h2*cot(a)+x).^2+h2^2))+2*sin(a)^2.*(atan((h1/sin(a)+x.*cos(a))./(x.*sin(a)))-atan((h2/sin(a)+x.*cos(a))./(x.*sin(a))))); Vzzz=2*G*p*sin(a)^2.*((x+2*h2*cot(a))./((h2*cot(a)+x).^2+h2^2)-(x+2*h1*cot(a))./((h1*cot(a)+x).^2+h1^2)); subplot(2,2,1) plot(x,g,'k-'); xlabel('水平距离(m)'); ylabel('重力异常值'); title('倾斜台阶重力异常Δg'); grid on subplot(2,2,2) plot(x,Vxz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vxz'); grid on subplot(2,2,3) plot(x,Vzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzz'); grid on subplot(2,2,4); plot(x,Vzzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzzz'); grid on %% %铅锤柱体 G=6.67e-11; p=4.0;%密度 h1=50.0;%下层深度 h2=40.0;%上层深度 a=3;%半径 x=-500:1:500; g=G*p.*((x+a).*log(((x+a).^2+h1^2)./((x+a).^2+h2^2))-(x-a).*log(((x-a).^2+h1^2)./((x-a).^2+h2^2))+2*h1.*(atan((x+a)./h1)-atan((x-a)./h1))-2*h2.*(atan((x+a)./h2)-atan((x-a)./h2))); Vxz=G*p.*log((((x+a).^2+h1^2).*((x-a).^2+h2^2))./(((x+a).^2+h2^2).*((x-a).^2+h1^2))); Vzz=2*G*p.*(atan(h1./(x+a))-atan(h2./(x+a))-atan(h1./(x-a))+atan(h2./(x-a))); Vzzz=2*G*p.*((x+a)./((x+a).^2+h2^2)-(x+a)./((x+a).^2+h1^2)-(x-a)./((x-a).^2+h2^2)+(x-a)./((x-a).^2+h1^2)); subplot(2,2,1) plot(x,g,'k-'); xlabel('水平距离/m') ylabel('重力异常值') title('铅垂柱体重力异常') grid on subplot(2,2,2) plot(x,Vxz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vxz'); grid on subplot(2,2,3) plot(x,Vzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzz'); grid on subplot(2,2,4); plot(x,Vzzz); xlabel('水平距离(m)'); ylabel('导数值'); title('Vzzz'); grid on
上传时间: 2019-05-10
上传用户:xiajiang
keil C51 v6.12 完全解密版的安装说明 安装方法是先将V6.12安装程序复制到某个目录下,如复制到D:\keilC51 然后执行D:\keilC51\setup\setup.exe 安装程序,选择安装Eval Version版进 行安装。 注册码:K199U-20071-12A9U 当出现Please insert the add-on disk的提示画面,可按next按钮(不用 插入软盘)。 安装好之后就可以使用,没有代码大小的限制,这是完全版,比 Eval版增 加浮点库等内容。
上传时间: 2020-03-20
上传用户:mimeme
常用接插件USB座 SD卡 TF卡 RJ45 AD集成库ALITUM库49个合集(原理图库+PCB封装库),集成封装库型号列表:Library Component Count : 49Name Description----------------------------------------------------------------------------------------------------3F07 立体声耳机插座6.3mm插簧 6.3mm插簧Battery 备份电池CON 2X16 DIN41612 DIN 41612CON 2X32 DIN41612 DIN 41612CON50A D Connector 15 VGAD Connector 9 串口DB25 并口DG141 DIMM-100 接插件EMIF 接插件FIN 散热片FPC-30P FPC排线连接器FPC-40P FPC排线连接器HR5803 以太网接口HR911103A 网络接口HR911105A 以太网接口Header 10 接插件Header 10X2 接插件Header 14X2A 接插件Header 15X2 接插件Header 16 接插件Header 16X2 接插件Header 17X2 接插件Header 2 接插件Header 2X2 接插件Header 3 接插件Header 30 接插件Header 32X2 接插件Header 4 接插件Header 40 接插件Header 5X2 接插件Header 6 接插件Header 7X2 接插件Header 8 接插件Header 8X2 接插件Header_AMP50 控制器接插件LCD_CON37 LCD接口Light_Pipe 灯柱PJ-306 立体声耳机插座PWRCON 直流电源端子RCA RCA Phono JackSDCARD SD卡自弹SDCARD-M TF卡槽SU-25-3 接线叉USB USB接口USB_M Micro/Mini USBZIF20 接插件
上传时间: 2021-11-21
上传用户:slq1234567890
程控可编程线性电源广泛应用于集成电路测试和各种实验过程中,电源的性能、可靠性和易操作性是其关键指标。本文以ATmega128单片机为控制核心,以ADS8341模数转换器、 AD5624数模转换器,设计了一款三通道输出的程控可编程线性电源样机。阐述该电源的系统架构、结构、操作系统、液晶显示界面以及通信协议等设计内容。对样机进行了测试,给出了该电源的常用指标,该样机已长时间应用于高速高精度A/D转换器和D/A转换器的测试中。
上传时间: 2022-03-28
上传用户:canderile
AR0231AT7C00XUEA0-DRBR(RGB滤光)安森美半导体推出采用突破性减少LED闪烁 (LFM)技术的新的230万像素CMOS图像传感器样品AR0231AT,为汽车先进驾驶辅助系统(ADAS)应用确立了一个新基准。新器件能捕获1080p高动态范围(HDR)视频,还具备支持汽车安全完整性等级B(ASIL B)的特性。LFM技术(专利申请中)消除交通信号灯和汽车LED照明的高频LED闪烁,令交通信号阅读算法能于所有光照条件下工作。AR0231AT具有1/2.7英寸(6.82 mm)光学格式和1928(水平) x 1208(垂直)有源像素阵列。它采用最新的3.0微米背照式(BSI)像素及安森美半导体的DR-Pix™技术,提供双转换增益以在所有光照条件下提升性能。它以线性、HDR或LFM模式捕获图像,并提供模式间的帧到帧情境切换。 AR0231AT提供达4重曝光的HDR,以出色的噪声性能捕获超过120dB的动态范围。AR0231AT能同步支持多个摄相机,以易于在汽车应用中实现多个传感器节点,和通过一个简单的双线串行接口实现用户可编程性。它还有多个数据接口,包括MIPI(移动产业处理器接口)、并行和HiSPi(高速串行像素接口)。其它关键特性还包括可选自动化或用户控制的黑电平控制,支持扩频时钟输入和提供多色滤波阵列选择。封装和现状:AR0231AT采用11 mm x 10 mm iBGA-121封装,现提供工程样品。工作温度范围为-40℃至105℃(环境温度),将完全通过AEC-Q100认证。
标签: 图像传感器
上传时间: 2022-06-27
上传用户:XuVshu
A) 实现虚拟存储B) 实现对文件的按名存取C) 实现对文件的按内容存取D) 实现对文件的 高速输入输出(17) 分页显示当前文件 ... A) 执行SPLIB B) 执行SPDOS C) 装载拼音模块D) 装载五笔字型输入模块(32) 在汉字输入状态下,按下Shift+a组合键后,输入了__。
上传时间: 2013-12-23
上传用户:zhoujunzhen