虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

a.k.a.

  • 学生成绩guanli

    #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

    上传用户:啊的撒旦

  • 多元散射校正MSC

    function [R,k,b] = msc(A) % 多元散射校正 % 输入待处理矩阵,通过多元散射校正,求得校正后的矩阵 %% 获得矩阵行列数 [m,n] = size(A); %% 求平均光谱 M = mean(A,2); %% 利用最小二乘法求每一列的斜率k和截距b for i = 1:n a = polyfit(M,A(:,i),1); if i == 1 k = a(1); b = a(2); else k = [k,a(1)]; b = [b,a(2)]; end end %% 求得结果 for i = 1:n Ai = (A(:,i)-b(i))/k(i); if i == 1 R = Ai; else R = [R,Ai]; end end

    标签: MSC 多元 散射 校正

    上传时间: 2020-03-12

    上传用户:15275387185

  • --基于运算放大器和模拟集成电路的电路设计-586页-57.6M.pdf

    本书全面阐述以运算放大器和模拟集成电路为主要器件构成的电路原理、设计方法和实际应用。电路设计以实际器件为背景,对实现中的许多实际问题尤为关注。全书共分13章,包含三大部分。第一部分(第1-4章),以运算放大器作为理想器件介绍基本原理和应用,包括运算广大器基础、具有电阻反馈的电路和有源滤波器等。第二部分(第5-8章)涉及运算放大器的诸多实际问题,如静态和动态限制、噪声及稳定性问题。第三部分(第9-13章)着重介绍面向各种应用的电路设计方法,包括非线性电路、信号发生器、电压基准和稳压电源、D-A和A-D转换器以及非线性放大器和锁相环等。 本书可用作通信类、控制类、遥测遥控、仪器仪表等相关专业本科高年级及研究生有关课程的教材或主要参考书,对从事实际工作的电子工程师们也有很大参考价值。

    标签: 57.6 586 运算放大器

    上传时间: 2013-08-04

    上传用户:米卡

  • protel99元件库大全

    protel99元件库大全 protel99元件库大全是由小编收集整理出的用于protel99元件库,包括一些常用的元件库,数量是非常丰富的。 以下是一些常用的protel99元件封装库下载地址及一些相关知识 protel99、DXP lib元件及封装库  protel99se_元件名系表--分立元件库中英文对照 protel99se常用封装库元件&分立元件库 protel99元件库  protel99se 元件库  Protel+DXP常用元件库 Protel DXP中元件库的使用 Protel元件封装库与符号对应总结

    标签: protel 99 元件库

    上传时间: 2013-10-25

    上传用户:zgu489

  • 微电脑型数学演算式隔离传送器

    特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高

    标签: 微电脑 数学演算 隔离传送器

    上传时间: 2014-12-23

    上传用户:ydd3625

  • 高精度程控电压放大器

    摘要本设计以VCA822、MSP430F2012、DAC7611芯片为核心,加以其它辅助电路实现对宽带电压放大器的电压放大倍数、输出电压进行精确控制。放大器的电压放大倍数从0.2倍到20倍以0.1倍为步进设定,输出电压从6mv到600mv以1mv为步进设定,控制误差不大于5%,放大器的带宽大于15MHz。键盘和显示电路实现人机交互,完成对电压放大倍数和输出电压的设定和显示。关键词:程控放大器;高精度;控制电压;电压变换;D/A;A/D。

    标签: 高精度 程控 电压放大器

    上传时间: 2013-11-16

    上传用户:iswlkje

  • 微电脑型数学演算式双输出隔离传送器

    特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)

    标签: 微电脑 数学演算 输出 隔离传送器

    上传时间: 2013-11-24

    上传用户:541657925

  • MCS-51单片机原理及接口技术

    本书全面系统地介绍MCS-51单片机的结构、原理、接口技术、扩展应用等知识,主要内容包括;计算机运算基础,计算机硬件电路基础,单片微型机的组成原理,MCS-51系列单片机的指令系统,汇编语言程序设计,MCS-51单片机的扩展应用,MCS-51单片机接口技术,最新增强型51系列兼容单片机介绍,单片机指令一览表和常用芯片的引脚图等。       本书可作为高等理工科院校非计算机专业计算机原理和单片机课程的教材,也可供工程技术人员参考。 第一章  绪论     第一节  计算机的分类与发展     第二节  计算机的应用     第三节  微型计算机的系统组成     第四节  单片微型计算机的发展及应用     思考题与习题   第二章  计算机运算基础     第一节  数制     第二节  数的表示方法     第三节  数的运算方法     第四节  二进制数加法电路     思考题与习题   第三章  计算机的硬件电路基础     第一节  触发器     第二节  寄存器     第三节  总线结构     第四节  存储器     第五节  模型计算机的工作原理     思考题与习题   第四章  单片微型计算机的组成原理     第一节  微型计算机的结构及指令执行过程     第二节  MCS-51单片计算机的组成原理     第三节  MCS-51存储器配置     第四节  时钟电路及时序     第五节  输入输出瑞口     第六节  复位电路     第七节  MCS-51单片机的引脚功能     思考题与习题   第五章  指令系统     第一节  指令系统概述     第二节  MCS-51单片机指令系统     思考题与习题   第六章  汇编语言程序设计     第一节  汇编语言的基本知识     第二节  简单程序设计     第三节  分支程序设计     第四节  循环程序设计     第五节  查表程序设计     第六节  散转程序设计     第七节  子程序设计     第八节  浮点数及其程序设计     思考题与习题   第七章  MCS-51单片机的扩展应用     第一节  程序存储器的扩展     第二节  外部数据存储器的扩展     第三节  输入/输出与中断     第四节  定时器/计数器     第五节  串行通信     思考题与习题   第八章  MCS-51单片机接口技术     第一节  MCS-51单片机的并行接口电路     第二节  键盘与数码管显示器接口电路     第三节  专用键盘显示器接口芯片8279与单片机的接口     第四节  MCS-51单片机串行口扩展     第五节  单片机与D/A和A/D转换器的接口     思考题与习题   第九章  增强51单片机     第一节  8XC52/54/58系列单片机硬件说明     第二节  8XC51FX硬件说明     第三节  87C51GB单片机     思考题与习题   附录Ⅰ  MCS-51系列单片机指令一览表   附录Ⅱ  MCS-51特殊功能寄存器一览表   附录Ⅲ  MCS-51特殊功能寄存器位地址分布   附录Ⅳ  MCS-51内部RAM的位地址分布   附录Ⅴ  本书选取的芯片的引脚图   附录Ⅵ  常用波特率与其它参数选取关系

    标签: MCS 51 单片机原理 接口技术

    上传时间: 2013-10-18

    上传用户:swz13842860183

  • MCS-51单片机应用设计

    本书从应用的角度,详细地介绍了MCS-51单片机的硬件结构、指令系统、各种硬件接口设计、各种常用的数据运算和处理程序及接口驱动程序的设计以及MCS-51单片机应用系统的设计,并对MCS-51单片机应用系统设计中的抗干扰技术以及各种新器件也作了详细的介绍。本书突出了选取内容的实用性、典型性。书中的应用实例,大多来自科研工作及教学实践,且经过检验,内容丰富、翔实。   本书可作为工科院校的本科生、研究生、专科生学习MCS-51单片机课程的教材,也可供从事自动控制、智能仪器仪表、测试、机电一体化以及各类从事MCS-51单片机应用的工程技术人员参考。 第一章 单片微型计等机概述   1.1 单片机的历史及发展概况   1.2 单片机的发展趋势   1.3 单片机的应用   1.3.1 单片机的特点   1.3.2 单片机的应用范围   1.4 8位单片机的主要生产厂家和机型   1.5 MCS-51系列单片机 第二章 MCS-51单片机的硬件结构   2.1 MCS-51单片机的硬件结构   2.2 MCS-51的引脚   2.2.1 电源及时钟引脚   2.2.2 控制引脚   2.2.3 I/O口引脚   2.3 MCS-51单片机的中央处理器(CPU)   2.3.1 运算部件   2.3.2 控制部件   2.4 MCS-51存储器的结构   2.4.1 程序存储器   2.4.2 内部数据存储器   2.4.3 特殊功能寄存器(SFR)   2.4.4 位地址空间   2.4.5 外部数据存储器   2.5 I/O端口   2.5.1 I/O口的内部结构   2.5.2 I/O口的读操作   2.5.3 I/O口的写操作及负载能力   2.6 复位电路   2.6.1 复位时各寄存器的状态   2.6.2 复位电路   2.7 时钟电路   2.7.1 内部时钟方式   2.7.2 外部时钟方式   2.7.3 时钟信号的输出 第三章 MCS-51的指令系统   3.1 MCS-51指令系统的寻址方式   3.1.1 寄存器寻址   3.1.2 直接寻址   3.1.3 寄存器间接寻址   3.1.4 立即寻址   3.1.5 基址寄存器加变址寄存器间址寻址   3.2 MCS-51指令系统及一般说明   3.2.1 数据传送类指令   3.2.2 算术操作类指令   3.2.3 逻辑运算指令   3.2.4 控制转移类指令   3.2.5 位操作类指令 第四章 MCS-51的定时器/计数器   4.1 定时器/计数器的结构   4.1.1 工作方式控制寄存器TMOD   4.1.2 定时器/计数器控制寄存器TCON   4.2 定时器/计数器的四种工作方式   4.2.1 方式0   4.2.2 方式1   4.2.3 方式2   4.2.4 方式3   4.3 定时器/计数器对输入信号的要求   4.4 定时器/计数器编程和应用   4.4.1 方式o应用(1ms定时)   4.4.2 方式1应用   4.4.3 方式2计数方式   4.4.4 方式3的应用   4.4.5 定时器溢出同步问题   4.4.6 运行中读定时器/计数器   4.4.7 门控制位GATE的功能和使用方法(以T1为例) 第五章 MCS-51的串行口   5.1 串行口的结构   5.1.1 串行口控制寄存器SCON   5.1.2 特殊功能寄存器PCON   5.2 串行口的工作方式   5.2.1 方式0   5.2.2 方式1   5.2.3 方式2   5.2.4 方式3   5.3 多机通讯   5.4 波特率的制定方法   5.4.1 波特率的定义   5.4.2 定时器T1产生波特率的计算   5.5 串行口的编程和应用   5.5.1 串行口方式1应用编程(双机通讯)   5.5.2 串行口方式2应用编程   5.5.3 串行口方式3应用编程(双机通讯) 第六章 MCS-51的中断系统   6.1 中断请求源   6.2 中断控制   6.2.1 中断屏蔽   6.2.2 中断优先级优   6.3 中断的响应过程   6.4 外部中断的响应时间   6.5 外部中断的方式选择   6.5.1 电平触发方式   6.5.2 边沿触发方式   6.6 多外部中断源系统设计   6.6.1 定时器作为外部中断源的使用方法   6.6.2 中断和查询结合的方法   6.6.3 用优先权编码器扩展外部中断源 第七章 MCS-51单片机扩展存储器的设计   7.1 概述   7.1.1 只读存储器   7.1.2 可读写存储器   7.1.3 不挥发性读写存储器   7.1.4 特殊存储器   7.2 存储器扩展的基本方法   7.2.1 MCS-51单片机对存储器的控制   7.2.2 外扩存储器时应注意的问题   7.3 程序存储器EPROM的扩展   7.3.1 程序存储器的操作时序   7.3.2 常用的EPROM芯片   7.3.3 外部地址锁存器和地址译码器   7.3.4 典型EPROM扩展电路   7.4 静态数据存储的器扩展   7.4.1 外扩数据存储器的操作时序   7.4.2 常用的SRAM芯片   7.4.3 64K字节以内SRAM的扩展   7.4.4 超过64K字节SRAM扩展   7.5 不挥发性读写存储器扩展   7.5.1 EPROM扩展   7.5.2 SRAM掉电保护电路   7.6 特殊存储器扩展   7.6.1 双口RAMIDT7132的扩展   7.6.2 快擦写存储器的扩展   7.6.3 先进先出双端口RAM的扩展 第八章 MCS-51扩展I/O接口的设计   8.1 扩展概述   8.2 MCS-51单片机与可编程并行I/O芯片8255A的接口   8.2.1 8255A芯片介绍   8.2.2 8031单片机同8255A的接口   8.2.3 接口应用举例   8.3 MCS-51与可编程RAM/IO芯片8155H的接口   8.3.1 8155H芯片介绍   8.3.2 8031单片机与8155H的接口及应用   8.4 用MCS-51的串行口扩展并行口   8.4.1 扩展并行输入口   8.4.2 扩展并行输出口   8.5 用74LSTTL电路扩展并行I/O口   8.5.1 用74LS377扩展一个8位并行输出口   8.5.2 用74LS373扩展一个8位并行输入口   8.5.3 MCS-51单片机与总线驱动器的接口   8.6 MCS-51与8253的接口   8.6.1 逻辑结构与操作编址   8.6.2 8253工作方式和控制字定义   8.6.3 8253的工作方式与操作时序   8.6.4 8253的接口和编程实例 第九章 MCS-51与键盘、打印机的接口   9.1 LED显示器接口原理   9.1.1 LED显示器结构   9.1.2 显示器工作原理   9.2 键盘接口原理   9.2.1 键盘工作原理   9.2.2 单片机对非编码键盘的控制方式   9.3 键盘/显示器接口实例   9.3.1 利用8155H芯片实现键盘/显示器接口   9.3.2 利用8031的串行口实现键盘/显示器接口   9.3.3 利用专用键盘/显示器接口芯片8279实现键盘/显示器接口   9.4 MCS-51与液晶显示器(LCD)的接口   9.4.1 LCD的基本结构及工作原理   9.4.2 点阵式液晶显示控制器HD61830介绍   9.5 MCS-51与微型打印机的接口   9.5.1 MCS-51与TPμp-40A/16A微型打印机的接口   9.5.2 MCS-51与GP16微型打印机的接口   9.5.3 MCS-51与PP40绘图打印机的接口   9.6 MCS-51单片机与BCD码拨盘的接口设计   9.6.1 BCD码拨盘   9.6.2 BCD码拨盘与单片机的接口   9.6.3 拨盘输出程序   9.7 MCS-51单片机与CRT的接口   9.7.1 SCIBCRT接口板的主要特点及技术参数   9.7.2 SCIB接口板的工作原理   9.7.3 SCIB与MCS-51单片机的接口   9.7.4 SCIB的CRT显示软件设计方法 第十章 MCS-51与D/A、A/D的接口   10.1 有关DAC及ADC的性能指标和选择要点   10.1.1 性能指标   10.1.2 选择ABC和DAC的要点   10.2 MCS-51与DAC的接口   10.2.1 MCS-51与DAC0832的接口   10.2.2 MCS-51同DAC1020及DAC1220的接口   10.2.3 MCS-51同串行输入的DAC芯片AD7543的接口   10.3 MCS-51与ADC的接口   10.3.1 MCS-51与5G14433(双积分型)的接口   10.3.2 MCS-51与ICL7135(双积分型)的接口   10.3.3 MCS-51与ICL7109(双积分型)的接口   10.3.4 MCS-51与ADC0809(逐次逼近型)的接口   10.3.5 8031AD574(逐次逼近型)的接口   10.4 V/F转换器接口技术   10.4.1 V/F转换器实现A/D转换的方法   10.4.2 常用V/F转换器LMX31简介   10.4.3 V/F转换器与MCS-51单片机接口   10.4.4 LM331应用举例 第十一章 标准串行接口及应用   11.1 概述   11.2 串行通讯的接口标准   11.2.1 RS-232C接口   11.2.2 RS-422A接口   11.2.3 RS-485接口   11.2.4 各种串行接口性能比较   11.3 双机串行通讯技术   11.3.1 单片机双机通讯技术   11.3.2 PC机与8031单片机双机通讯技术   11.4 多机串行通讯技术   11.4.1 单片机多机通讯技术   11.4.2 IBM-PC机与单片机多机通讯技术   11.5 串行通讯中的波特率设置技术   11.5.1 IBM-PC/XT系统中波特率的产生   11.5.2 MCS-51单片机串行通讯波特率的确定   11.5.3 波特率相对误差范围的确定方法   11.5.4 SMOD位对波特率的影响 第十二章 MCS-51的功率接口   12.1 常用功率器件   12.1.1 晶闸管   12.1.2 固态继电器   12.1.3 功率晶体管   12.1.4 功率场效应晶体管   12.2 开关型功率接口   12.2.1 光电耦合器驱动接口   12.2.2 继电器型驱动接口   12.2.3 晶闸管及脉冲变压器驱动接口 第十三章 MCS-51单片机与日历的接口设计   13.1 概述   13.2 MCS-51单片机与实时日历时钟芯片MSM5832的接口设计   13.2.1 MSM5832性能及引脚说明   13.2.2 MSM5832时序分析   13.2.3 8031单片机与MSM5832的接口设计   13.3 MCS-51单片机与实时日历时钟芯片MC146818的接口设计   13.3.1 MC146818性能及引脚说明   13.3.2 MC146818芯片地址分配及各单元的编程   13.3.3 MC146818的中断   13.3.4 8031单片机与MC146818的接口电路设计   13.3.5 8031单片机与MC146818的接口软件设计 第十四章 MCS-51程序设计及实用子程序   14.1 查表程序设计   14.2 散转程序设计   14.2.1 使用转移指令表的散转程序   14.2.2 使用地地址偏移量表的散转程序   14.2.3 使用转向地址表的散转程序   14.2.4 利用RET指令实现的散转程序   14.3 循环程序设计   14.3.1 单循环   14.3.2 多重循环   14.4 定点数运算程序设计   14.4.1 定点数的表示方法   14.4.2 定点数加减运算   14.4.3 定点数乘法运算   14.4.4 定点数除法   14.5 浮点数运算程序设计   14.5.1 浮点数的表示   14.5.2 浮点数的加减法运算   14.5.3 浮点数乘除法运算   14.5.4 定点数与浮点数的转换   14.6 码制转换   ……    

    标签: MCS 51 单片机 应用设计

    上传时间: 2013-11-06

    上传用户:xuanjie

  • MCS51-单片机组成与原理

    内容提要: MCS51单片机是超大规模集成电路技术发展的结果,是微型计算机发展中的一个重要开支。            MCS51-单片机组成与原理            MCS51指令系统            8098单片机的结构原理,应用与实践。 第一章 单片微型计算机概述 第二章 MCS-51单片机组成和原理 第三章 MCS-51指令系统  第四章 MCS-51终端系统与定时器/计数器 第五章 8098单片机的结构原理 第六章 8098指令系统 第七章 8098中断 定时器与I/0寄存器 第八章 8098高速输入输出单元HSIO 第九章 8098 A/D和PWM原理及应用 第十章 单片机串行通信 第十一章 单片机扩展储存器的设计 第十二章 单片机I/0及定时器扩展 第十三章 单片机与D/A及A/D转换器接口 第十四章 单片机的显示器和键盘接口

    标签: MCS 51 单片机

    上传时间: 2013-11-25

    上传用户:wuchunwu