x01.os.10: 输入输出,x01.os.10输入输出


x01.Lab.Download 中下载源代码,进入工程目录,make 后再 bochs,即可见到如下界面:

          

随便打几个字,ok!按 F2,可切换到第二个终端,界面如下:

         

当然,按 F3 还可切换第三个终端,但同第二个基本一样,就不再浪费空间了。

输入输出,涉及到键盘和显示器。键盘,主要是操作 8048 编码器,8042 控制器。显示器,则是操作 VGA 系统的寄存器。方方面面,非一人之力,非一时之功,是一个逐渐完善积累的过程。于渊讲解详细精当,只是切换 tty 时,他的是 Alt + F1,但在我的虚拟机却无反应,所以只好改作 F1 了事。

任务和用户进程作了个简单区分,善莫大焉。

又,添加系统调用 Write, 实现打印功能。但 A,B,C 这三个用户进程运行时,tty 却有点失控的感觉,这是正常现象。

花了一天的时间,终于 OK 了,是为记。


c程序中有几种输入输出,有什不同

5 字符数据的输入输出我们先介绍C标准I/O函数库中最简单的、也是最容易理解的字符输入输出函数putchar()和getchar(),再介绍格式输入输出函数printf()和scanf()函数。3.5.1 putchar函数(字符输出函数)作用:putchar函数的作用是向终端输出一个字符。一般形式: putchar(c);它输出字符变量c的值。◆c可以是字符型变量或整型变量。例3.1 输出单个字符。 #include<stdio.h>
main()
{char a,b,c;<br> a='B';b='O';c='Y';<br> putchar(a);putchar(b);putchar(c);<br> }运行结果: BOY◆也可以输出控制字符。如putchar(‘\n’)输出一个换行符,使输出的当前位置移到下一行的开头。如果将例3.1程序最后一行改为: putchar(a);putchar('\n');putchar(b);putchar('\n')putchar(c);putchar('\n');则输出结果为: B O Y◆也可以输出其他转义字符。如: putchar('\101') (输出字符'A')
putchar('\'') (输出单引号字符')
putchar('\015') (输出回车,不换行,使输出的当前位置移到本行开头)3.5.2 getchar函数(字符输入函数)作用:此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。注意,getchar函数没有参数。一般形式: getchar()函数的值就是从输入设备得到的字符。例3.2 输入单个字符 #include<stdio.h>
main()
{char c;<br> c=getehar();<br> putchar(c);<br> }在运行时,如果从键盘输入字符‘a’并按回车键(按“回车”键,字符才送到内存),就会在屏幕上看到输出的字符‘a’。注意,getchar()只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量(如,例3.2第4行),也可以不赋给任何变量,作为表达式的一部分。例如:▲例3.2第4、5行可以用下面一行代替: putchar(getchar());因为getchar()的值为‘a’,因此putchar函数输出‘a’。▲也可以用printf函数输出: printf("%c",getchar());注意:如果在一个函数中(今为main函数)要调用getchar(或putchar)函数,应该在该函数的前面(或本文件开头)加上“包含命令”#include<stdio.h>。
 

对于达林顿管输入输出关系?

其实,达林顿管跟普通三极管基本是一样的,所不同的是它是由两个三极管组合而成,放大倍数很高,因而更容易饱和。所以,达林顿管仍然是既可以工作于放大状态,也可以工作于开关状态,并非只能用做开关,至于它究竟处于何种状态,要根据具体的电路参数而定,仅就你所提供的实例:

1、达林顿管的集电极必须是要接负载的(可以是电阻,也可以是继电器),不可能把它的E-C极直接接在12V200mA电源的两端,这样做,一来无法取得输出信号,二来会烧掉达林顿管或者电源。它究竟是输出200mA或者是500mA,要看它的集电极负载,比如,如果负载是100Ω,那么它的饱和电流是12V/100Ω=0.12A=120mA(而不是200mA),而TTL可以驱动达500mA,此时,它就处于开关状态;如果负载是12Ω,它的饱和电流是12V/12Ω=1A=1000mA,那么500mA的驱动电流并不足以使其饱和导通,此时,Uce=12V-500mA*12Ω=6V,它就处于放大状态。
2、以上是仅就达林顿管自身而言的,其实,TTL本身是数字电路,它的输出信号就是开关信号,所以,达林顿管也应该按开关电路来设计。
3、要指出,达林顿管导通后不是输出12V,而是输出0V(不考虑压降),只有在截止时才输出12V。
 

相关内容