嵌入式实验指导书_第1页
嵌入式实验指导书_第2页
嵌入式实验指导书_第3页
嵌入式实验指导书_第4页
嵌入式实验指导书_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上机一 Linux 系统下的C语言编译环境(验证型学时)一 上机目的1 学习Linux 环境,熟悉Linux下C语言程序的运行环境,了解所用计算机系统软、硬件配置。2 初步了解在该集成环境下如何编辑、编译、连接和运行一个C程序,即运行一个C程序的全过程。3 通过运行简单的C程序,初步了解C程序的基本结构及特性。二 上机内容1 建立自己的文件夹,以备存放文件。进入Linux系统环境,选择合适的编辑器和编译工具。输入简单C程序(可用教科书上的例题),了解C程序运行的全过程。1、 计算整数m的n次幂.2、 打印最长的输入行运行结果:1 每次上机前,认真预习本次上机实验内容,按老师的要求,需编写的程序

2、,应书写整齐。2 上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。3 上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。4 上机报告应包括以下内容:(1) 上机题目;(2) 算法说明(复杂的可用流程图表示);(3) 程序清单(有条件用打印机打印出来);(4) 运行结果;(5) 对运行情况作分析,以及本次实验所取得的经验。如程序未能通过,应分析错误原因。以下题目三选一。1已知三角形的三边a、b、c(通过键盘输入),编写一个程序求三角形的面积。2 编写程序实现求一元二次方程式的根,ax2+bx+c=0中的a、b、c从键盘输入

3、。3 编写程序实现求任意三个数的平均值。上机二 C语言基本语法实验一 上机目的1 进一步掌握运行一个C语言程序的方法和步骤。2 分清C语言的符号、标识符、保留字的区别。3 掌握C语言的数据类型,会定义整型、实型、字符型变量以及对它们的赋值方法。4 学会数据输入方式和数据输出格式及各种格式转意符。5 学会使用C的运算符以及用这些运算符组成的表达式。三 上机内容1 输入并运行下面程序,分析其运行结果。main() char c1,c2;c1=46;c2=47;printf(“%3c%3c”, c1,c2);printf(“%3d%3d”, c1,c2);将程序第二行改为:int c1,c2;再运行

4、,分析其结果。2 输入并运行下面程序main() int a,b;float c,d;long e,f;unsigned int u,v;char c1,c2;scanf(“%d,%d”,&a,&b);scanf(“%f,%f”, &c,&d);scanf(“%ld,%ld”,&e,&f);scanf(%o,%o”,&u,&v);scanf(“%c,%c”, &c1,&c2);printf(“n”);printf(“a=%4d,b=%4dn”,a,b);printf(“c=%8.2f,d=%8.2fn”,c,d);printf(“e=%16ld,f=%16ldn”,e,f);printf(“u

5、=%o,v=%on”,u,v);printf(“c1=%c,c2=%cn”,c1,c2);运行上面程序,分析结果,特别注意输出C1,C2的值是什么?什么原因?3 先分析下面程序的结果,然后再上机运行,看结果上否一致。main() int x,y,z; x=y=z=3; y=x+ -1; printf(“%4d%4d”,x,y); y=+x 1; printf(%4d%4d”,x,y); y=z - -+1; printf(“%4d%4d”,z,y); y= - -z+1; printf(“%4d%4d”,z,y);运行结果:三 上机要求1 每次上机前,认真预习本次上机实验内容,按老师的要求,需

6、编写的程序,应书写整齐。2 上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。3 上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。4 上机报告应包括以下内容:(6) 上机题目;(7) 算法说明(复杂的可用流程图表示);(8) 程序清单(有条件用打印机打印出来);(9) 运行结果;(10) 对运行情况作分析,以及本次实验所取得的经验。如程序未能通过,应分析错误原因。四、运行思考题,下列程序错误在哪里? main( ) /* 给定半径r,求园的面积s */ float r,s; s=*r*r; printf(“s=%fn”,

7、s) main() /* 给定长和宽l,w,求矩形面积s */ int l,w,s; scanf(“%d%d”,l,w); s=l*w; printf(l,w,s); main() int i;float x;long y; i=100;x=200;y=300; printf(“i=%d,x=%d,y=%dn”,i,x,y); printf(“i=%f,x=%f,y=%fn”,i,x,y); printf(“i=%ld,x=%ld,y=%ldn”,i,x,y); 运行试试看,结果如何?为什么?上机三 C程序实验三(验证型学时)一实验目的1熟悉关系表达式和逻辑表达式的使用。2掌握break和co

8、ntinue语句的使用,以及它们之间的区别。3熟悉掌握if语句和switch语句的应用。4熟悉掌握循环嵌套编程的使用方法。5掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。6进一步学习调试程序。二实验内容1三个整数a,b,c,由键盘输入这三个数,求三个数中最大的值。main()inta,b,c;printf(“inputa,b,c:”);scanf(“%d;%d;%d”,&a,&b,&c);if(ab)if(bc)printf(“max=%dn”,c);elseprintf(“max=%dn”,b);elseif(ab)?a:b;max=(tc)?t:c;printf(“

9、max=%d”,max);学生可利用此程序,考虑怎样修改求出三个数中的最小值。2先读下面程序,分析出程序的执行结果,然后再上机运行,结果是否一致。main()intx,y=1,z;if(y!=0)x=5;printf(“x=%dt”,x);if(y=0)x=3;elsex=5;printf(“x=%dtn”,x);x=1;if(z0)x=3;elsex=5;printf(“x=%dtn”,x);if(z=y0)x=3elseif(y=0)x=5;elsex=7;printf(“x=%dt”,x);printf(“z=%dtn”,z);if(x=z=y)x=3;printf(“x=%dt”,x)

10、;printf(“z=%dtn”,z);3有一函数:x(x0)y=3x-2(10x50)4x+1(50x100)5x(x100)输入x的值,求y的值。程序如下:main()intx,y,t;printf(“inputx=:”);scanf(%d”,&x);if(x=100)t=10;elset=x/10;switch(t)case0:y=x;break;case1:case2:case3:case4:y=3*x2;break;case5:case6:case7:case8:case9:y=4*x+1;break;case10:y=5*x;printf(“y=%d”,y);运行程序,写出执行结果

11、。本题还可以单独用if语句实现,方法简单,程序可读性好,学生自己编程,上机运行。4从数字1开始到200之间,求能被3整除的数,然后求这些数的累加和,直到和的值不大于100为止。输出这些数及累加和。参考程序如下:main()inti,sum=0;for(i=1;i=200;i+)if(i%3!=0)continue;sum=sum+i;printf(i=%6d”,i);printf(“sum=%6d”,sum);此程序的目的在于理解continue语句的用法。学生可以自己选做一些题目理解break和continue语句之间的区别,以免混淆。注:break语句可以从循环体内跳出循环体外,提前结束循

12、环,接着循环着下面的语句(从第三题可看出)。Continue语句是结束本次循环,即跳过循环体中下面尚未招待的语句,接着进行下一次执行循环的判定。5编写程序,求S=1!+2!+n!的和。6编写程序打印下列图形:ABBBCCCCCDDDDDDDCCCCCBBBA7上机调试下列程序,改正错误。求sum=main()intn,sum;n=1;while(n100)sum+=n;n+;printf(“sum=%fn”,sum);8打印以下图案:*9编程求水仙花数,水仙花数的要求是:abc=a3+b3+c3。三上机要求1上机前认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。2上机输

13、入和调试程序,调试通过后,打印(或手写)出程序清单并把运行结果记录下来。3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。上机四 函数的使用(验证型学时)一上机目的1掌握函数的定义和调用方法。2掌握函数实参与形参的对应关系,以及“值传递”的方式。3掌握函数的嵌套调用和递归函数编写的规律。4学会使用宏替换编写程序,弄清“文件包含”的作用。5学会全局变量和局部变量、动态变量和静态变量的概念和使用方法。二上机内容1通过运行下面程序,熟悉函数的调用方法。main()intx,y,z;x=4;y=12;z=6;fun(x,y,z);printf(“%x=%d;y=

14、%d;z=%dn”,x,y,z);fun(inti,intj,intk)intt;t=(i+j+k)/2;printf(“t=%dn”,t);2 运行下面程序,写出执行结果。main()inti,j,x,y,n,g;i=4;j=5;g=x=6;y=9;n=7;f(n,6);printf(“g=%d;i=%d;j=%dn”,g,I,j);printf(“x=%d;y=%dn”,x,y);f(n,8);f(inti,intj)intx,y,g;g=8;x=7;y=2;printf(“g=%d;i=%d;j=%dn”,g,i,j);printf(“x=%d;y=%dn”,x,y);编写一个判断素数的

15、函数,在主函数输入一个整数,输出是否是素数的信息。参考程序如下:#include”match.h”main()intm;printf(“Pleaseinputadatam=:”);scanf(“%d”,m);prime(m);prime(intn)inti,k;k=n/2;for(i=2;i=k+1)printf(“Thisisaprimenumber”);elseprintf(“Thisisntaprimenumber”);4 先读懂程序,分析出结果,然后上机运行此程序。#defineFUE(K)K+3.14159#definePR(a)printf(“a=%dt”,(int)(a)#def

16、inePRINT(a)PR(a);putchar(n)#definePRINT2(a,b)PR(a);PRINT(b)#definePRINT3(a,b,c)PR(a);PRINT2(b,c)#defineMAX(a,b)(ab?b:a)main()intx=2;PRINT(x*FUE(4);intf;for(f=0;f0,n0,要显示出计算结果。编程并上机调试。#includelongintack(intm,intn)longintvalue;if(m0|ny?x:y;returnz;(3) intf(x,y,z)intx,y;intz;:(5)intf(intn)/*定义求n!的函数*/i

17、fnn14 写一递归函数,将读入的整数按位分开后以相反顺序输出。5 写一函数digh(m,k),它将回送整数m从右边开始的第k个数字的值,例如digh(8542,3)=5,digh(12,4)=0.6 定义一个宏swap(x,y),完成对两个整数x,y的交换。7 定义一个宏max(x,y,z)从三个数x,y,z中找出最大数。上机五 数组的使用(验证型学时)一上机目的1掌握数组的概念和使用方法。2掌握数组初始化的方法。3学会字符数组和字符串的应用。4学会用数组名作函数的参数。二上机内容1有一数组,内放10个整数,要求找出最小的数和它的下标。然后把它和数组中最前面的元素对换位置。编写程序,上机运行

18、,并记录下结果。提示:数组的10个元素可用输入函数scanf()通过键盘输入进去,找出数组中最小的元素可通过循环语句和条件语句来实现。设min是存放数组中最小元素的变量,arrayk为一个暂存单元。实现最前面的元素与最小元素对换可通过下面语句实现:arrayk=array0;array0=min;参考程序如下:main()i,array10,min,k=0;printf(“Pleaseinput10datan”);for(i=0;i10;i+)scanf(“%d”,&arrayi);printf(“Beforeexchang:n”);for(i=0;i10;i+)printf(“%5d”,ar

19、rayi);min=array0;for(i=1;iarrayi)min=arrayi;k=i;arrayk=array0;array0=min;printf(“Afterexchange:n”);for(i=0;i10;i+)printf(“%5d”,arrayi);printf(“k=%dtmin=%dn”,k,min)2在一个已排好序的数列中(由小到大)再插入一个数,要求仍然有序。编程并上机运行。提示:编程时应考虑到插入的数的各种可能性(比原有所有的数大;比原有所有的数小;在最大数和最小数之间)。参考程序如下:#includemain()inti,n;folata,x20,y21;pri

20、ntf(“Pleaseinputnvaluen”);scanf(“%d”,&n);printf(“Pleaseinputvalue(fromsmalltobig)n”);for(i=0;ixi&in)yi=xi;i+;yi=a;for(i=i+1;in+1;i+)yi=xi-1;printf(“n”);for(i=0;in+1;i+)printf(“%8.2f”,yi);if(i+1)%5=0)puts(“n”);3将一个一维数组中的值按逆序存放,要求分别输出正序和逆序排列数据。编写一程序,一班级有n名学生要求按他们姓名的顺序排列(按汉语拼音的字母顺序从小到大),并按序输出。参考和程序如下:#

21、include“stdio.h”voidstrup(charstr)main()charstr20;charname2020;inti,j,t,n;printf(“Pleaseinputnamenumberofsortingn”);scanf(“%d”,&n);printf(“Pleaseinputnamen”);for(i=0;in;i+)gets(namei);strup(namei);for(i=0;in;i+)for(j=i+1;jn;j+)for(k=0;k+)if(nameiknamejk)strcpy(str,namej);srycpy(namej,namei);strcpy(n

22、amei,str);break;for(i=0;i=a&stri=z)stri=stri+A-a;实现将一个mn矩阵转置,最后输出原矩阵和转置后的矩阵。打印输出杨辉三角形。1111211331146411510101三上机要求1上机前认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。2上机输入和调试程序,调试通过后,打印(或手写)出程序清单并把运行结果记录下来。3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师上机六 指针(验证型学时)一上机目的1掌握指针变量的定义,会使用指针变量。2掌握指针与变量、指针与数组、指针与字符串的关系。3

23、学会用指针作为函数参数的方法。三上机内容1有三个整数x,y,z,设置三个指针变量p1,p2,p3,分别指向x,y,z。然后通过指针变量使x,y,z三个变量交换顺序,即原来x的值给y,把y的值给z,z的值给x。x,y,z的原值由键盘输入,要求输出x,y,z的原值和新值。读懂下面程序,并上机运行,把结果打印出来。程序如下:main()intx,y,z,t;int*p1,*p2,*p3;printf(“Pleaseinput3numbers:”);scanf(“%d,%d,%d”,&x,&y,&z);p1=&x;p2=&y;p3=&z;printf(“oldvaluesare:n”);printf(

24、“%d%d%dn”,x,y,z);t=*p3;*p3=*p2;*p2=*p1;*p1=t;printf(“newvaliesare:n”);printf(“%d%d%dn”,x,y,z);请学生考虑第6行8行为什么不写成:*p1=&x;*p2=&y,*p3=&z;而第11行14行不写成:t=p3,p3=p2,p2=p1;p1=t。2编写一个函数sort,使20个整数由小到大的顺序排列。在主函数中输出排好序的数。本程序编写函数部分要求要用指针来解决。参考程序如下:main()int*p,a20,i;printf(“Pleaseinput10numbersn”);for(i=0;i10;i+)sc

25、anf(“%d”,&ai);printf(“Theoriginalarrayis:”);for(p=data;pdata+20;p+)if(p-&data0)%5=0)printf(“n”);printf(“%4d”,*p);sort(data,20);printf(“thepresentarrayis:”);for(p=data;pdata+20;p+)if(p-&data0%5=0)printf(“n”);printf(“%4d”,*p);voidsort(intarray,intn)int*p1,*p2,t;for(p1=array;p1array+(n-1);p1+)for(p2=p1

26、+1;p2*p2)t=*p1;*p1=*p2;*p2=t;3有一个3*4的矩阵,矩阵元素为:2468357910111213编写一程序实现矩阵的转置。上机调试并运行。下面给出利用指针变量实现矩阵转置的程序段同学们可做参考。move(p1)int*p1;inti,j,t;for(i=0;i3;i+)for(j=i;j4;j+)t=*(p1+3*i+j);*(p1+3*i+j)=*(p1+3*j+i);(p1+3*j+i)=t;4有一个整型二维数组,大小为m*n,找出最大值所在的行和列,以及该最大值。此程序要求用一个函数max实现最大值的寻找,并在max函数中最好使用指针解决,m和n为该函数的形参

27、,数组元素的值在主函数中输入。参考程序如下:main()voidmaxval(intarr4,intm,intn);intarray34,i,j,l,c;printf(“inputlinesofarray:”);scanf(%d”,&l);printf(“inputcolumnofarray:”);scanf(“%d”,&c);printf(“inputdatausecommabetweendatan”);for(i=0;i1;i+)for(j=0;jc;j+)scanf(“%d”,&arrayij);printf(“n”);for(i=0;i1;i+)for(j=0;jc;j+)printf

28、(“%5d”,arrayij);printf(“n”);maxval(array,l,c);voidmaxval(intarr4,intm,intn)inti,j,max,line=0,col=0;int(*p)4;max=arr00;p=arr;for(i=0;im;i+)for(j=0;jn;j+)if(max*(*(p+i)+j)max=*(*(p+i)+j);line=i;col=j;printf(“themaximumvalueis%d”,max);printf(“thelineis:%d,line);printf(“thecolumnis:%dn”,col);5在主函数中输入10个

29、等长的字符串。用另一个函授数对它们排序,然后输出这10个已排好序的字符串。要求用指针解决问题,编好程序上机运行。三上机要求1上机前认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。2上机输入和调试程序,调试通过后,打印(或手写)出程序清单并把运行结果记录下来。3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。四思考题1下列语句中有哪些是不正确的?int*p=&i,i,j;(2)floatx,y,int*p;p=&x;(3)inti,j;i=10;j=20;int*p-&i,*q=&j;(4)int;i,j,*p3=1,2,3,*q=

30、&i+2;(5)intm,n,*pm,a10;p=&a10;(6)int*p=128;(7)inta=10,*p=a;(8)fun()inti,j;staticint*pi=&i;(9)inti=10,*pi;*pi=i;(10)char*ps,s20;s=”good”;ps=s;2先想想,再上机试试,下面的程序输出什么结果?为什么?main()inti=10,j=20,*pi=&i,*pj=&j;floatx=30,y=40,*px=&x,*py-px,unsignedm=pi-qj,n=py-px,k=&py-&px;printf(“i=%d,j=%dn*pi=%d,*pj=%dn”,i,

31、j,*pi,*pj);printf(“&u=%u,&j=%u,pj=&un”,&i,&pi,&j,pj);printf(“x=%f,y=%y;*px=%f,*py=%fn”,x,y,*px,*py);printf(“&x=%u,px=%u,&y=%u,py=%un”&x,px&y,py,);printf(“%pi=%u,%py=%u;&px=%u,%py=%un”,&pi,&pj,&px,&py);printf(“pi+1=%u,pj-1=%un”,pi+1,pj-1);printf(“pi-pj=%u,py-px=%u,&py-&px=%u”,m,n,k);先看下面程序两种处理方式的差别,再

32、上机验证一下你的判断。main()inti,a10,b10,*p=b,*q=&a0;for(i-0;i10;i+)/*输入10个整数*/scanf(“%d”,&ai);for(i=0;i10;i+,q+)pi=*q;for(i=0;i10;i+)printf(“%d”,ai);printf(“n”);for(i=0;i10;i+)printf(“%d”,bi;printf(“n”);for(i=0;i10;i+,p+);printf(“%7d”,*p);printf(“n”);上机七 结构体、参照与共同体(验证型学时)一.上机目的1 掌握结构体类型变量的定义和使用。2 掌握结构体类型数组的概念

33、和使用。3 学会使用结构体指针变量。4 熟悉共同体的概念与使用。二上机内容1阅读下面的程序并上机实现,熟悉结构的访问方法structstudentcharname10charsex;floatscore;stu=“lifang“,f,98;main()stuctstudent*p;p=&stu;printf(“n&stu=%x,or%u”,p,p);printf(“n%s,%c”,%f”,,stu.sex,stu.Score);printf(“n%s,%c,%f”,(*p).name,(*p).sex,(*p).score);printf(“n%s,%c,%f”,p-name,

34、p-sex,p-score);2下表为学生学习情况,编写一个C程序,用冒泡法对此学生学习情况表按程绩(grade)从高到低进行排序。学号(num)姓名(name)性别(sex)年龄(age)成绩(grade)101WangyiM1682.7102ZhaoyiM1799.0103LimingM1585.6104GaobenF1677.8105ChenpingF1767.4106ZhangjingF1699.5107HandongM1582.7108MengguangM1660.5109XucongF1794.5110ChengchengF1696.7对程序要求如下:(1) 定义结构体类型为:St

35、ruct结构体名intnum;charname15;charsex;intage;doublegrade;(2)在程序中用一个结构体指针数组,其中每一个指针元素指向结构体类型数组的各元素。(3)要求先输出排序前的情况,再输出排序后的结果(表的框线可以不要)。方法提示:冒泡排序过程为:从前到后扫描结构体数组中各元素,比较相邻两元素中成绩(grade)的大小,若发现逆序就交换,最后使最小者换到最后。第二轮同样可以把剩余元素中成绩最小者换到后面,剩余元素排序原理相同。实际排序过程中,并不交换结构体数组的各元素,由于用指针指向各元素,所以只是交换指针数组中的各指针。因此,排序的最后结果,其结构体数组中

36、的各元素的存贮顺序关系并没有改变,而只是按结构体指针数组中各指针元素顺序指向的结构体数组元素关于成绩(grade)是有序的三上机要求1上机前认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。2上机输入和调试程序,调试通过后,打印(或手写)出程序清单并把运行结果记录下来。3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。四思考题1.下述有关结构体、共用体、枚举型的定义哪些是不对的?(1)structainta;floatx;(2)structsintx,y;charc;(3)strcutcharm10;inti.j;x,y;(4)st

37、rcutstrstrings10;chara10;(5)uniondataintI;charch;longintl;unionda,da2;unionsa,b;unionsintI;charch;floatx;enume1a1,z,3,b,;enume2red,ytllow=8,blue=7;enume3inta1;floata2;上机八 调用DOS和BIOS中断(验证型学时)一、背景介绍(本实验为根据大纲要求补充内容,属于教材内容之外)。C语言直接驱动硬件实现PC机的串口操作熟悉C语言的人都知道,虽然C语言是一门高级语言,拥有很多高级语言的特性,但是作为一种由低级语言到高级的过渡,他又继承了

38、很多低级语言的特性,那就是可以直接操作计算机的硬件设备。本人近日在学习有关PLC网络方面的知识的时候接触到了这方面的知识特拿来和大家分享。C语言实现串口通信功能的调用可分为三个层次,它们是:高级语言层(速度较慢)、BIOS功能调用以及直接驱动硬件,以下的方法就是基于BIOS功能调用的。首先,简单介绍一下何谓BIOS。BIOS的全称是ROM-BIOSROMBasicI/OSystem(只读存储器基本输入输出系统)。它是一组固化到微机主板上一个ROM芯片上的子程序,主要功能包括:(1)驱动系统中所配置的常用外设(即驱动程序),如显示器、键盘、打印机、磁盘驱动器、通信接口等。(2)开机自检,引导装入

39、。(3)提供时间、内存容量及设备配置情况等参数。使用BIOS中断调用与DOS系统功能调用类似,用户也无须了解相关设备的结构与组成细节,直接调用即可。为了实现BIOS调用,在BIOS中提供了大量的中断调用,供我们操作不同的硬件设备,它们是:INT05H;打印屏幕内容功能调用INT10H;显示中断调用INT12H;测定内存容量调用INT14H;异步通行功能调用INT16H;键盘中断调用INT17H;打印机控制调用INT1AH;时钟调用二、上机要求:、了解bios和dos调用的基本知识、学会使用bios和dos调用基本编程、学会使用bios串口通讯三、上机内容(一)串口通讯在众多的中断调用功能中于串

40、口通讯有关的事INT14H中断调用,为了实现串口通信对它的入口参数和出口参数作了如下的约束:功能入口参数出口参数异步通信口初始化(功能编码=0)AH=0DX=通信口号AL=初始化参数AH中为通信线路状态AL中为Modem状态写字符到异步通信口(功能编码=1)AH=1AL=要发送的字符DX=通信口号若成功AH的D7=0若失败AH的D7=1AH的D0D6为通信线路状态从异步通信口读数据(功能编码=2)AH=2DH=通信口号若成功AH的D7=0若失败AH的D7=1AH的D0D6为通信线路状态AL=所读取得字符读取异步通信口状态(功能编码=3)AH=3DX=通信口号AH中为通信线路状态AL中为Modem状态现在,再将通信线路控制寄存器的各位意义简要介绍如下:D7D6D5D4D3D2D1、D0访问寄存器0=允许访问发送、接收中断允许1=允许访问除数寄存器设置停顿0=不设停顿1=使Modem发连续停顿信号固定奇偶位0=不用1=使用D5D4D3=111恒0101恒1校验选择0=奇1=偶校验允许0=无校验1=有校验停止位0=1位1=1.5/2位数据位选择00=5位01=6位10=7位11=8位1、通讯口初始化模块;r.h.al=0xfb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论