#include<stdio.h> #include<windows.h> int xuanxiang; int studentcount; int banjihao[100]; int xueqihao[100][10]; char xm[100][100]; int xuehao[100][10]; int score[100][3]; int yuwen; int shuxue[000]; int yingyu[100]; int c[100]; int p; char x[1000][100]="",y[100][100]="";/*x学院 y专业 z班级*/ int z[100]; main() { void input(); void inputsc(); void alter(); void scbybannji(); printf("--------学生成绩管理-----\n"); printf("请按相应数字键来实现相应功能\n"); printf("1.录入学生信息 2.录入学生成绩 3.修改学生成绩\n"); printf("4.查询学生成绩 5.不及格科目及名单 6.按班级输出学生成绩单\n"); printf("请输入你要实现的功能所对应的数字:"); scanf("%d",&xuanxiang); system("cls"); getchar(); switch (xuanxiang) { case 1:input(); case 2:inputsc(); case 3:alter(); /*case 4:select score(); case 5:bujigekemujimingdan();*/ case 6:scbybanji; } } void input() { int i; printf("请输入你的学院名称:"); gets(x); printf("请输入你的专业名称:"); gets(y); printf("请输入你的班级号:"); scanf("%d",&z); printf("请输入你们一个班有几个人:"); scanf("%d",&p); system("cls"); for(i=0;i<p;i++) { printf("请输入第%d个学生的学号:",i+1); scanf("%d",xuehao[i]); getchar(); printf("请输入第%d个学生的姓名:",i+1); gets(xm[i]); system("cls"); } printf("您已经录入完毕您的班级所有学生的信息!\n"); printf("您的班级为%s%s%s\n",x,y,z); /*alter(p);*/ } void inputsc() { int i; for(i=0;i<p;i++) { printf("\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t录入学生的成绩\n\n\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t%s\n",xm[i]); printf("\n"); printf("\t\t\t\t数学:"); scanf("%d",&shuxue[i]); printf("\n"); getchar(); printf("\t\t\t\t英语:"); scanf("%d",&yingyu[i]); printf("\n"); getchar(); printf("\t\t\t\tc语言:"); scanf("%d",&c[i]); system("cls"); } } void alter() { int i;/*循环变量*/ int m[10000];/*要查询的学号*/ int b;/*修改后的成绩*/ char kemu[20]=""; printf("请输入你要修改的学生的学号"); scanf("%d",&m); for (i=0;i<p;i++) { if (m==xuehao[i]) { printf("%s的数学成绩为%d,英语成绩为%d,c语言成绩为%d,xm[i],shuxue[i],yingyu[i],c[i]"); printf("请输入你想修改的科目");} } gets(kemu); getchar(); if (kemu=="数学"); { scanf("%d",&b); shuxue[i]=b;} if (kemu=="英语"); { scanf("%d",&b); yingyu[i]=b;} if (kemu=="c语言"); { scanf("%d",&b); c[i]=b; } printf("%s的数学成绩为%d,英语成绩为%d,c语言成绩为%d,xm[i],shuxue[i],yingyu[i],c[i]"); } void scbybannji() { int i; char zyname[20]; int bjnumber; printf("请输入你的专业名称"); scanf("%s",&zyname); printf("请输入你的班级号"); scanf("%d",&bjnumber); for (i=0;i<p;i++) { if (zyname==y[i]); if (bjnumber==z[i]); printf("专业名称%s班级号%d数学成绩%d英语成绩%dc语言成绩%d,y[i],z[i],shuxue[i],yingyu[i],c[i]"); } }
标签: c语言
上传时间: 2018-06-08
上传用户:2369043090
CPU:MSP430系列单片机的CPU和通用微处理器基本相同,只是在设计上采用了面向控制的结构和指令系统。MSP430的内核CPU结构是按照精简指令集和高透明的宗旨而设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的仿真指令。这样可以提高指令执行速度和效率,增强了MSP430的实时处理能力。存储器:存储程序、数据以及外围模块的运行控制信息。有程序存储器和数据存储器。对程序存储器访问总是以字形式取得代码,而对数据可以用字或字节方式访问。其中MSP430各系列单片机的程序存储器有ROM、OTP、EPROM和FLASH型。外围模块:经过MAB、MDB、中断服务及请求线与CPU相连。MSP430不同系列产品所包含外围模块的种类及数目可能不同。它们分别是以下一些外围模块的组合:时钟模块、看门狗、定时器A、定时器B、比较器A、串口0、1、硬件乘法器、液晶驱动器、模数转换、数模转换、端口、基本定时器、DMA控制器等。
上传时间: 2022-07-28
上传用户:slq1234567890
现代的计算机追求的是更快的速度、更高的数据完整性和灵活性。无论从物理性能,还是从电气性能来看,现今的并行总线都已出现了某些局限,无法提供更高的数据传输率。而SATA以其传输速率快、支持热插拔、可靠的数据传输等特点,得到各行业越来越多的支持。 目前市场上的SATA IP CORE都是面向IC设计的,不利于在FPGA上集成,因此,本文在Xilinx公司的Virtex5系列FPGA上实现SATAⅡ协议,对SATA技术的推广、国内逻辑IP核的发展都有一定的意义。 本文将SATAⅡ协议的FPGA实现划分成物理层、链路层、传输层和应用层四个模块。提出了物理层串行收/发器设计以及物理链路初始化方案。分析了链路层模块结构,给出了作为SATAⅡ链路层核心的状态机的设计。为满足SATAⅡ协议3.0Gbps的速率,采用扩大数据处理位宽的方法,设计完成了链路层的16b/20b编码模块,同时为提高数据传输可靠性和信号的稳定性,分别实现了链路层CRC校验模块和并行扰码模块。在描述协议传输层的模块结构的基础上,给出了作为传输层核心的状态机的设计,并以DMA DATA OUT命令的操作为例介绍了FIS在传输层中的处理过程。完成了命令层协议状态机的设计,并实现了SATAⅡ新增功能NCQ技术,从而使得数据传输更加有效。最后为使本设计应用更加广泛,设计了基于AHB总线的用户接口。 本设计采用Verilog HDL语言对需要实现的电路进行描述,并使用Modelsim软件仿真。仿真结果表明,本文设计的逻辑电路可靠稳定,与SATAⅡ协议定义功能一致。
上传时间: 2013-06-16
上传用户:cccole0605
ASIC对产品成本和灵活性有一定的要求.基于MCU方式的ASIC具有较高的灵活性和较低的成本,然而抗干扰性和可靠性相对较低,运算速度也受到限制.常规ASIC的硬件具有速度优势和较高的可靠性及抗干扰能力,然而不是灵活性较差,就是成本较高.与传统硬件(CHW)相比,具有一定可配置特性的场可编程门阵列(FPGA)的出现,使建立在可再配置硬件基础上的进化硬件(EHW)成为智能硬件电路设计的一种新方法.作为进化算法和可编程器件技术相结合的产物,可重构FPGA的研究属于EHW的研究范畴,是研究EHW的一种具体的实现方法.论文认为面向分类的专用类可重构FPGA(ASR-FPGA)的研究,可使可重构电路粒度划分的针对性更强、设计更易实现.论文研究的可重构FPGA的BCH通讯纠错码进化电路是一类ASR-FPGA电路的具体方法,具有一定的实用价值.论文所做的工作主要包括:(1)BCH编译码电路的设计——求取实验用BCH码的生成多项式和校验多项式及其相应的矩阵并构造实验用BCH码;(2)建立基于可重构FPGA的基核——构造具有可重构特性的硬件功能单元,以此作为可重构BCH码电路的设计基础;(3)构造实现可重构BCH纠错码电路的方法——建立可重构纠错码硬件电路算法并进行实验验证;(4)在可重构纠错码电路基础上,构造进化硬件控制功能块的结构,完成各进化RLA控制模块的验证和实现.课题是将可重构BCH码的编译码电路的实现作为一类ASR-FPGA的研究目标,主要成果是根据可编程逻辑电路的特点,选择一种可编程树的电路模型,并将它作为可重构FPGA电路的基核T;通过对循环BCH纠错码的构造原理和电路结构的研究,将基核模型扩展为能满足纠错码电路需要的纠错码基本功能单元T;以T作为再划分的基本单元,对FPGA进行"格式化",使T规则排列在FPGA上,通过对T的控制端的不同配置来实现纠错码的各个功能单元;在可重构基核的基础上提出了纠错码重构电路的嵌套式GA理论模型,将嵌套式GA的染色体串作为进化硬件描述语言,通过转换为相应的VHDL语言描述以实现硬件电路;采用RLA模型的有限状态机FSM方式实现了可重构纠错码电路的EHW的各个控制功能块.在实验方面,利用Xilinx FPGA开发系统中的VHDL语言和电路图相结合的设计方法建立了循环纠错码基核单元的可重构模型,进行循环纠错BCH码的电路和功能仿真,在Xilinx公司的Virtex600E芯片进行了FPGA实现.课题在研究模型上选取的是比较基本的BCH纠错码电路,立足于解决基于可重构FPGA核的设计的基本问题.课题的研究成果及其总结的一套ASR-FPGA进化硬件电路的设计方法对实际的进化硬件设计具有一定的实际指导意义,提出的基于专用类基核FPGA电路结构的研究方法为新型进化硬件的器件结构的设计也可提供一种借鉴.
上传时间: 2013-07-01
上传用户:myworkpost
在单片机与外部环境通信的时候,就需要有一种转换器来把模拟信号变为数字信号,以便能够输送给单片机进行处理。而单片机送出的控制信号,也必须经过变换器变成模拟信号,才能为控制电路所接受。这种变换器就称为数模(D/A)转换器和模数(A/D)转换器。
上传时间: 2013-08-06
上传用户:ydd3625
提出一种基于USB的彩色CCD高清图像采集系统设计方案。图像数据的来源采用的是SONY公司的 ICX205AK芯片,结合USB2.0接口,复杂可编程逻辑器件CPLD设计了一个高速的彩色CCD图像采集系统。文中详细阐述了系统内不同模块的硬件电路设计思路和软件运行流程。整个系统由电源系统、CCD传感器、A/D模数转换器、CPLD控制器、USB2.0高速接口、上位机控制程序等各个部分组成。本系统的硬件电路可以协调正常工作完成分辨率为140万的高清图像采集,最高采集帧率达7.5 frame/s。
上传时间: 2013-10-24
上传用户:tianming222
深入浅出AVR单片机思路清晰,以AVR单片机为载体,介绍了初学单片机所必须掌握的专业知识。书中语言严谨但不乏幽默风趣,配以大量的照片、图示和实例程序,使读者在愉悦中完成专业知识的学习,并培养了学习嵌入式系统的兴趣。本书在讲述AVR单片机的同时,更注重于对读者学习和设计能力的启发、培养,帮助他们养成“从实践中来,到实践中去”的科学方法论,为进一步的学习创造了基础。 本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法,然后熟悉ICCAVR集成开发环境并搭建实验开发装置,接着从实际应用出发,启发式地介绍AVR单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。 第1篇 Are you ready? 第1章 学会阅读Datasheet 1.1 如何阅读PDF文件,如何获得Datasheet文件 1.2 Datasheet告诉我们些什么 1.3 如何看懂AVR的Datasheet 1.4 如何得到帮助 1.5 汇编语言执行时间的计算方法 1.6 ATmega48/88/168常用熔丝的作用及其配置方法 1.7 对误烧写为外部时钟模式的解锁方法 实例1 阅读74HC595 Datasheet 第2章 深入开发环境 2.1 认识ICC编译环境 2.2 事半功倍的代码生成器 2.3 ICC之不得不说的故事 2.4 AVR最小系统和下载线DIY 实例2 AVR最小系统DIY第2篇 Let\'s go! 第3章 从跑马灯开始 3.1 输入/输出界面 3.1.1 单片机的输入/输出设备——引脚 3.1.2 “芯”里有数——数码管显示 3.1.3 单片机的输入/输出设备——从按键到键盘 3.2 用ATmega48/88/168单片机端口驱动数码管 3.3 操纵ATmega48/88/168单片机端口 3.4 端口内建上拉电阻的使用 3.5 端口位操作 实例3 跑马灯 实例4 数码管的显示(上) 实例5 数码管的显示(下) 实例6 矩阵键盘 第4章 对不起接个电话 4.1 十万火急——中断 4.2 中断的特性 4.3 使用中断时的注意事项 4.4 ATmega48/88/168单片机有哪些中断源 4.5 如何编写一个中断的服务程序代码 4.6 ATmega48/88/168单片机中断的开关控制 4.7 ATmega48/88/168中断标志位 4.8 ATmega48/88/168中断优先级 4.9 ATmega48/88/168单片机中断向量 4.10 中断与查询之争 4.11 用查询方式响应外设中断 4.12 中断误触发 4.13 前后台与原子操作 实例7 中断唤醒的键盘扫描 实例8 旋转编码器 第5章 一秒究竟有多长 5.1 单片机与时间 5.2 软件延时 5.3 不需要加载的“自由计时器” 5.4 通过重加载控制定时中断周期 5.5 使用代码生成器生成定时器1初始化代码 5.6 定时器的其他工作模式 5.7 PWM波及其应用简介 5.8 人类能看懂的电子时钟——实时时钟简介 实例9 闪烁的灯 实例10 渐明渐暗的灯 实例11 复杂闪烁控制 第6章 电量低 6.1 从猜数游戏到A/D转换器 6.2 ATmega48/88/168的A/D转换器 6.3 ATmega48/88/168单片机中与A/D相关的引脚 6.4 ATmega48/88/168单片机中与A/D相关的寄存器 6.5 使用A/D时需要注意些什么 6.6 怎样知道A/D转换完成 6.7 读取A/D的转换结果 6.8 使用代码生成器生成ADC初始化代码 6.9 书写具有工程结构的初始化代码 6.10 电量计原理概述 …… 第7章 正在过收费站 第8章 包装的学问 第9章 傻孩子求职记 第10章 MISSION UPDATE第3篇 Code Name C 第11章 朝花夕拾 第12章 指针都是纸老虎 第13章 来自身边的启示 第14章 初识嵌入式系统
上传时间: 2014-05-05
上传用户:佳期如梦
8.1 模拟接口概述单片机的外部设备不一定都是数字式的,也经常会和模拟式的设备连接。 例如单片机来控制温度、压力时,温度和压力都是连续变化的,都是模拟量,在单片机与外部环境通信的时候,就需要有一种转换器来把模拟信号变为数字信号,以便能够输送给单片机进行处理。而单片机送出的控制信号,也必须经过变换器变成模拟信号,才能为控制电路所接受。这种变换器就称为数模(D/A)转换器和模数(A/D)转换器。CPU与模拟外设之间的接口电路称为模拟接口。在这一章里将介绍单片机与 A/D及D/A转换器接口,以及有关的应用。 8.2 DAC及其接口一、DAC介绍:1.DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2.DAC的参数:描述D/A转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 二、典型DAC芯片及其接口一、DAC介绍:1.DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2.DAC的参数:描述D/A转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 8.3 ADC及其接口DAC 0832的结构DAC 0832的引脚DAC 0832的接口DAC 0832的应用DAC0832是CMOS工艺,双列直插式20引脚。① VCC电源可以在5-15V内变化。典型使用时用15V电源。② AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。③ 参考电压VREF接外部的标准电源,VREF一般可在+10V到—10V范围内选用。
标签: 模拟接口
上传时间: 2013-10-10
上传用户:ukuk
C51单片机是我们生活中最常用的系列,MCS-51系列单片机有4个并行口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,况且常常因扩展I2C和SPI的器件需占用某些P1口,迫使用户不得不扩展并行口以满足实际的需要。习惯上,常用的并行口接口芯片有8255、8155,这两种芯片功能比较齐全,可以使用在相对比较复杂的系统中,但如是对一般的系统而言,这些功能往往闲置不用。那么就可以选用一些本来闲置不用的口线作为选通信号来进行并行口的扩展,这样就能充分利用单片机有限的I/O资源,在本设计中是将P1口扩展成一个或几个8位并行口,在每一个八位口上接入8个发光二极管做为输出,二极管是做开关量来使用的,在这里设计了跑马灯和流水灯程序,做到对开关量的开断控制;配合开关量的控制笔者设计了一个共阳LED数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。这样整个系统即有了数字信号输出和模拟信号输出,也有数码管显示功能,实用性能大提高了。2、 基于89C51的系统硬件设计2.1 并行口的扩展的电路设计 众所周知,C51系列的单片机都有四个I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我们通常仅仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以这次设计,我们就是使用闲置不用的P3口做为选能信号线来将P1口进行并行口扩展。 (1) 种方式的并行口扩展优点 连线简单; 不占用存储器空间; (2) 编程也方便灵活。但也有很大的缺点 并行口扩展能力有限,(如使用74LS573(74LS373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的四个选通信号。) 如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选能信号,此时,仅选能信号就占用了一个8位并行口,这对在I/O端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。在本次的设计中,采用芯片74HC573(带三态输出的八进制透明D型锁存器)对P1口进行了一个8位并行口的扩展,选通信号选用P3口的P3.3引脚。原理图如图1所示:
上传时间: 2013-11-18
上传用户:dbs012280
源代码\用动态规划算法计算序列关系个数 用关系"<"和"="将3个数a,b,c依次序排列时,有13种不同的序列关系: a=b=c,a=b<c,a<b=v,a<b<c,a<c<b a=c<b,b<a=c,b<a<c,b<c<a,b=c<a c<a=b,c<a<b,c<b<a 若要将n个数依序列,设计一个动态规划算法,计算出有多少种不同的序列关系, 要求算法只占用O(n),只耗时O(n*n).
上传时间: 2013-12-26
上传用户:siguazgb