1、第7章 可编程接口芯片,可编程接口概术 可编程并行输入输出接口芯片8255A 可编程定时计数器接口芯片8253,可编程接口概术一个简单的具有输入功能和输出功能的可编程接口电路如下图,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器FF。,通过对寄存器FF写入相应的命令字可使该I/O口工作输入或输出方式,CPU,外设,用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口,对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。,目前常用
2、的可编程芯片有如下几种: 8255A 并行I/O接口 8253 计数器/定时器 8251 串行I/O 8259A 中断控制器,7.1 可编程并行输入输出接口芯片8255A,一、功能8255A是一种通用的可编程并行IO接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,通用性强。使用灵活,可为CPU与外设之间提供并行输入输出通道。,二、 8255A的内部结构,并行输入输出端口,A组和B组控制,数据总线缓冲器,读写控制电路,图72 8255A内部结构,8255A
3、具有3个带锁存或缓冲的数据端口,可进行并行数据传送。 8255A内部结构如图72,基本组成为:,A口:PA7PA0A组C口高4位:PC7PC4 CPU 数据缓冲器 两组 C口低4位:PC3PC0 B组3种工作方式 B口:PB7PB0读/写控制电路其中A口、B口分别为8位I/O口,可进行数据输入/输出,C口即可作为8位I/O口,也可分别作为A口、B口与CPU 或外设连接的状态联络线。,8位C口,三、 8255A的管脚分配,1、与外设连接的管脚 我们已经知道8255A有三个数据端口,每个端口是8位的,由此可推算与外设相连接的管脚共有24位。其中A口有PA7PA0八个I/O引脚,B口有PB7PB0八
4、个I/O引脚,C口有PC7PC0八个I/O引脚。特别地对于PC7PC0,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。,与I/O口有关的引脚(用于连接外设)A口:8位,PA7PA0作输入/输出口B口:8位,PB7PB0C口:8位,PC7PC0,作输入或输出口,或是A口、 B口与CPU 或外设连接的状态联络线。,2、与CPU连接的管脚 包括数据线D7D0,读写控制线和,复位线RESET,以及和CPU地址线相连接的片选信号、端口地址控制线A0和A1。,数据线:D7D0控制线:RD WR RESET,8255A端口地址控制引脚CS(片选) A1 A0 I/O口0
5、0 0 A口地址低2位0 0 1 B口地址低2位0 1 0 C口地址低2位0 1 1 控制口地址低2位,3、电源线和地线 8255A的电源引脚为VCC和GND。VCC为电源线,一般取5V 。GND为电源地线。,四、 8255A的工作方式及编程,1、8255A的工作方式8255A有三种工作方式,它们是: (1)方式0基本输入输出方式;与CPU同步传送,A口、B口、C口均适用。 (2)方式1选通输入输出方式;适用于A口、B口, C口作联络线。当外设速度慢于CPU时,可用查询或中断方式进行有条件异步传送。(需查询外设是否准备好)(3)方式2双向传送方式。分时输入或输出,只有A口适用,需PC7PC3提
6、供“联络”信号,此时,B口可工作在方式0或方式1。,2、8255A编程 所谓8255A编程,就是用户在使用8255前,用户可用软件来定义端口的工作方式,选择所需要的功能。,与8255A工作方式有关的3个“字” (1)方式控制字:8位,(2)C口置“1”清“0”控制字 置“1”又称为置位操作,而清“0”称为复位操作。,(3)读出状态字 当8255A由程序设定在方式1或方式2工作时,C口就根据不同的情况,产生或接收“联络”信号。如果这时我们对C口进行读操作,则读出的内容就包含两部分内容,一部分是那些作为I/O线上的内容,另一部分是与“联络”状态有关的内容。,方式1的输入状态字,五、8255A的三种
7、工作方式,1、8255A工作在方式0(重点掌握)例1:8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的数字。,电路,LED数码管,段码表,分析题意:(1)A口方式0输入,B口方式0输出 (2)将A口输入信息从B口输出 (3)8255A工作需初始化,即写入相应的方式控制字 (包括工作方式控制字和C口置位/清0控制字, 写入同一控制口中,无顺序) (4)8255A有4个I/O口,应有4个对应的口地址 (5)从图7.5可知,8255A有A1 A0两个地址端, 可接CPU的A2 A1,
8、得出A口、B口、C口及控制口的低8位地址, 高8位由片选信号得出。CPU 的A0端应作为奇偶口地址的 选择端,可与片选信号组合。由硬件可得:,A15 A14A7 A6 A5 A4 A3 A2 A1 A0 I/O口 地址,1 0 1 0 0 0 0 0 A口 8020H假设为0 0 1 0 B口 8022H1 0 0 C口 8024H1 1 0 控制口 8026H(6)8255A控制字为90H(C口没有用假设为0) 则:8255A初始化程序为;MOV DX,8026HMOV AL,90HOUT DX,AL (7)PA3PA0输入不同二进制,PB7PB0所接七段数码管,显示相应的十进制数,可用XL
9、AT换码指令。,接138译码器的C B A, MOV AL,90H ;设置8255方式字 MOV DX,8026H OUT DX ,AL MOV DX,8020H ;取A口地址 IN AL, DX ;取键盘信息 AND AL, 0FH ;屏蔽高4位 MOV BX, TABLE1 ;取段码表首地址 XLAT ;查表得段码 MOV DX,8022H ;取B口地址 OUT DX,AL ;输出显示,例2:已知8255A的端口地址为02E1H02E7H,请实现对端口C的PC2置位和PC4复位。 解: MOV DX,02E7H ;大于8位的端口地址送DXMOV AL,05H ;位操作控制字0000 010
10、1OUT DX,AL ;置位PC2MOV AL,08H ;位操作控制字0000 1000OUT DX,AL ;复位PC4,例3:请在8255A的C端口的PC7位输出一个正脉冲(设原来PC7=0)。 解:程序段如下 MOV AL, 0FH ;置位PC7,操作控制字00001111 OUT CTRL_PORT, AL ;写入控制端口 MOV AL, 0EH ;复位PC7,操作控制字 00001110 OUT CTRL_PORT, AL ; 写入控制端口,注意:端口C置位/复位控制字只对端口C的某一个位进行操作,其他位不受影响。必须写入控制端口。,2、8255A工作在方式1输入,A口的选通信号,当其
11、有效时,外设把数据打入A口的输入缓冲器,A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据。,A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU从A口取数,中断允许信号。,8255A工作在方式1(输入)时序图,8255A工作在方式1(输入)当A口已接受外设数据后,有两种方式通知CPU取数:其一用条件查询方式,通过查询缓冲器是否“满”,即IBFA是否为高电平来取数。其二用中断方式。,在条件传送中,一般要有所谓的“握手”信号来协调数据的传送。“握手”信号至少要有两位信号线,其中一位是由接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外
12、设发给接口,功能是向接口提供外设的信息。显然在8255A的选通输入方式中STBA和IBFA是一对“握手”信号。,例2:8255A的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。,例题2电路图,这个系统的工作过程如下:,1、用户通过改变K0K7,产生新的键信息;,2、按下开关K,产生选通信号,数据进入A口的缓冲器,,3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其
13、他数据;(是一个A口的“忙”信息),4、CPU取走这个数据,LED熄灭; 5、转步骤1。,设8255的I/O地址分布为88H8EH,相应的程序段如下:mov al,10111001b ;命令字设置A口为方式1的输入out 8eh,al ;命令字送入控制口 loop1: in al,8ch ;取C口的状态线test al,00100000b ;测试IBFA信息(高为“忙”)jz loop1 ;等待用户设定新的键值mov cx,0ffffh ;延时,LED灯亮(相对于步骤3) loop2:loop loop2 ;(为了使用户看清楚)in al,88h ;取数。LED灯灭(相对于步骤4)out 8A
14、h,al ;更新B口的显示jmp loop1 ;重复,8255A初始化,3、8255A工作在方式1输出,外设回答信号。由外设发出。当其有效时,表示外设已接收数据。,A口的输出缓冲器“满”信号,当其有效时表示A口的输出缓冲器已暂存一个有效数据。,A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU送数给A口,中断允许信号。,8255A工作在方式1(输出)时序图,例如:当A口已接受外设数据后,有两种方式通知CPU取数:其一用条件查询方式,通过查询缓冲器是否“满”,即IBFA是否为高电平来取数。其二用中断方式。,在这种方式下,OBFA和ACKA是一对“握手”信号。 OBFA是
15、8255A产生,当其有效时,告诉外设A口已有一个新数据。 ACKA是外设产生,当其有效时,通知A口外设已把数据取走。,例3:8255A的A口工作在方式1的输出,接有8个发光二极管,现要求把内存中的10个数,通过A口发送给发光二极管以二进制的形式供用户抄录。,例题3电路图,这个系统的工作过程如下: 1、 CPU把内存中的一个数据写入A口; 2、 LED灯亮,告诉用户LED显示的是新数据; 3、 用户抄录数据; 4、 用户按下开关K,发ACK信号,告诉CPU数据已取走; 5、转第一步继续。,设8255的I/O地址分布为88H8EH,相应的程序段如下: mov al,10100000 ;命令字定义A
16、口方式1输出out 8eh, al mov cx,10 ;送10个数mov bx,offset xx ;数组指针送bxloop1: mov al,bx ;取数out 88h,al ;送数到A口loop2: in al,8ch ;取C口状态线and al,80h ;测试IBOAjnz loop2 ;用户尚未抄录数据,检测;等待,此时; LED灯亮(对应步骤2) call delay ;给用户抄录数据时间 inc bx ;用户已抄录数据,LED灯灭(对 应步 骤4)准备送下一个数loop loop1 ;循环10次,4、8255A工作在方式2双向,外设回答信号。由外设发出。当其有效时,表示外设已接收
17、数据。,A口的输出缓冲器“满”信号,当其有效时表示A口的输出缓冲器已暂存一个有效数据。,A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU访问A口,中断允许信号。,中断允许信号。,A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据,A口的选通信号,当其有效时,外设把数据打入A口的输入缓冲器,如果设定某个8255A的A口和B口分别工作在方式2和方式1下,则这个8255A的C口的I/O功能将不在存在。当然如果B口是工作在方式0下,则C口还有3根线可作I/O线用。,六、8255应用举例(了解内容),1、与打印机接口 例4:在某一8086系统中接有一
18、个打印机,8255A作为输出接口。工作在方式0,试编一程序将缓冲区BUFF内的400H个字节的ACK码送打印机打印。,打印机具体工作过程如下: 1、数据线D7D0出现有效数据; 2、STB有效,通知打印机,接口给打印机一个数据,数据从数据线进入打印机; 3、BUSY有效,告诉接口,打印机正在打印数据。打印完毕,BUSY变为无效,表示打印结束。,print_data proc ;打印子程序,入口在dl中 print1: in al,c_port ;无条件读C口数据test al, 00010000b ;测试busy线 jnz print1 ;busy有效,循环测试mov al,dl out a_
19、port,al ;打印数据进入A口mov al,00000000b ;发选通信号out ctrl_port,almov al,00000001bout ctrl_port,alret ;返回主程序 print_datA endp,2、人机交互接口动态显示例5、常用的显示称为动态显示,它采用扫描显示技术,可以使硬件开销降低很多。对于一个8位数据显示,它就需要两个输出端口就可以了。其电路如图所示。在两个输出端口中,一个称为段信号通道,它用来输出要显示数据的段码;另一个称为位信号通道,用来决定当前要显示数据的位置。,动态显示电路图,显示系统的具体工作步骤如下: a、 设要显示的初始位码i0; b、
20、送第i位的段信号; c、 送第i位的位信号; d、 延时; e、 i1i f、 如果i小于8,转b g、 8位数据显示结束。,程序如下:a_port equ 80h ;定义8255A的四个端口b_port equ 82hc_port equ 84hctrl_port equ 86h data segment ;定义数据段tab1 db 3FH,06H,5BH,4FH,;定义段码表dispbuf db 2,0,0,2,0,8,2,2;定义显示缓冲区data ends,3、人机交互接口键盘扫描例6、图所示为矩阵式键盘电路,其特点是由按键组成一个矩阵,矩阵的行线和列线分别作为两个传输方向相反的I/O
21、接口信号线,比如行线作为输入接口信号线,列线作为输出接口信号线,或反之。,键盘扫描电路图,在翻转法中,行列线交换输入、输出,两步就可获取键位置信息。可见这种方法要比扫描法效率高。,7. 2 可编程定时计数器接口芯片8253,微机系统中,实现定时常用三种方法: 软件定时:用一段程序来实现,简单,但不精确,占用CPU时间,常用于短时间定时。 不可编程硬件定时:定时精确,但改动艰难。 可编程硬件芯片定时:定时时间、范围有软件改变,且有硬件定时精确的优点,常用芯片8253。,二、8253的内部结构,计数通道 (3个),数据总线缓冲器(8位),读写控制电路,通道控制寄存器,1、组成:(1)、数据总线缓冲
22、器:8位,8253与CPU数据及CPU对8253命令的传送通道。 (2)、读/写控制逻辑:与CPU连接的控制信号。 (3)、控制寄存器:8253初始化由CPU写入一个控制字。 (4)、通道0通道2:8253内部有3个功能完全相同的16位计数器,可进行二进制/BCD码计数,范围在0FFFFH或09999之间。 该计数器以减1方式工作,即从初始值开始减1直到0,表示计数/定时时间到。 则:,定时初始值某通道时钟周期计数初始值为题意中给定,如:计数1000,则计数初始值为1000。,定时时间,3、特点: (1)一个芯片上有3个独立的16位计数器通道。 (2)每个计数器都可以按照二进制或二十进制计数。
23、 (3)每个计数器的计数速率可高达2MHz。(82C54-2计数频率可达到10MHz)。 (4)每个通道有6种工作方式,可由程序设置和改变。 (5)所有的输入输出都与TTL电平兼容。,2、功能:定时、计数,每个通道的减法计数器从预置值开始减1计数。当减法计数器的值减到零时,从OUT输出端输出一个信号。,三、 8253的管脚分配,3个通道管脚,数据线,通道地址选择,控制线,8253管脚功能:24个管脚双列直插式封装芯片。数据线:D7D0,与CPU总线相连,控制线:RD :读8253内部计数器值,WR:CPU将计数值或命令写入8253的计数器或控制字寄存器中。,CS (片选) A1 A0(组成82
24、53内部各端口低8位地址)0 0 0 :通道00 0 1: 通道10 1 0: 通道20 1 1: 控制字寄存器计数/定时脉冲输入端:有三个:CLK2CLK0:可接外部时钟信号 定时/计数到输出波形端:有三个:OUT2OUT0:输出不同的波形 门控制信号:有三个:GATE2GATE0,8253工作时GATE1,四、 8253的编程,8253的方式控制字(1)SC1、SC0:用于选择计数器SC1 SC0 选择的计数器0 0 计数器0(通道0)0 1 计数器1(通道1)1 0 计数器2(通道2) (2)RW1、RW0:读/写控制位RW1 RW0 操作0 0 计数器锁存(不工作)0 1 读/写低字节
25、1 0 读/写高字节1 1 先读/写低字节,后读/写高字节,(3)M2、M1、M0:方式选择位M2 M1 M0 方式选择0 0 0 方式00 0 1 方式10 1 0 方式20 1 1 方式31 0 0 方式41 0 1 方式5(4)BCD:选择计数格式。BCD=1,十进制计数(范围 1 9999)。BCD=0,二进制计数(范围 0000HFFFFH)。,五、 8253的工作方式,1、方式0计数结束中断方式工作方式0有如下特点: a、门控信号GATE必须为1,计数器才能计数; b、计数时通道输出端OUT一直为0; c、通道计数器计数到0后,OUT由0到1,同时计数器停止工作。,2、方式1可编程
26、序的单独负脉冲 方式1工作过程如下: a、门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的上升沿触发的; b、 触发后,通道计数器开始计数,输出端OUT由高变低; c、 计数器计数到0,OUT再由低变高。,3 、方式2速率发生器 方式2的特点如下: a、 GATE门为1,计数器才能工作,对CLK端上的脉冲进行计数; b、 当计数器“减”计数到1时,输出端由高变低,再经过一个CLK周期,即计数器计数到0时,输出端OUT又跳变为高。所以方式2输出周期性负脉冲信号,其宽度固定为一个CLK周期; c、 当计数器的值减为0时,自动重新装入计数初值,实现循环计数。,4、方式3方波发生器 方
27、式2虽然可以作分频电路,但其输出是窄脉冲,如果是方波,就只有选方式3,5、方式4软件触发方式 方式4在工作过程中有以下特点: a、 门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平; b、 当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。,6、方式5硬件触发方式这种工作方式同方式4很相似,当控制字写入控制寄存器后,输出端OUT变高。同方式4不同的一点是当计数值写入通道计数器后,通道并未被触发,也就是计数器并不立即开始计数。只有当GATE信号的上升沿触发通道后,通道计数器才开始计数。,8253的工作方式小结,8253的六种工作方式可归为两类,一个是
28、充当频率发生器,另一类主要是作计数器来使用。下面我们就从这个角度来讨论总结OUT和GATE门的作用。,与频率发生器有关的工作方式 8253有两种方式与频率发生器有关,即方式2和发生3,对OUT端,方式2提供给用户的是负脉冲,方式3提供给用户的是方波。在这个两种方式下,GATE信号要始终保持为高。,与计数器有关的工作方式: 对于计数器类,有方式0、1和方式4、5。启动计数器的方式有两种,一种是CPU把时间常数写入相应通道后,计数器就开始工作,我们可以称之为软件启动方式,在这种启动方式下,GATE要始终保持为高电平,所以方式0和方式4可以称为软件启动方式。另一种是硬件启动计数器,即CPU把时间常数
29、写入计数器后,即使GATE为高电平,计数器并不工作。只有GATE发生跳变,其上升沿启动计数器工作,所以方式1和方式5就可以称为硬件启动方式。计数器溢出时,OUT有两种输出形式,要么是电平,要么是负脉冲。前者有方式0、方式4,后者有方式1和方式5。,6种方式的特点比较见课本199页,表7.15,六、 8253应用举例,8253使用方法: 1、要使用8253,首先必须对其初始化编程,也就是要对每一个通道写入控制字,以确定工作方式、计数所用数制等,然后写入计数值。 2、某一通道的控制字和计数值是通过两个不同的端口地址写入的。任一通道的控制字都是写入同一个端口地址,而用控制字中的SC1和SC0来确定是
30、哪一个通道的控制字;计数值则由各个通道的端口地址写入。 3、如果在控制字中已确定16位的读写方式,则要对通道端口写操作2次,第一次写初始值的低8位,第二次写高8位。,例1:设使用8253的0通道,工作在方式1,按BCD计数制计数,计数初始值为500。设8253的通道地址为F8HFEH(偶地址),试写出8253的初始化程序。,分析:1、由题意可知控制字为00110011(16位计数,BCD码制)2、各通道地址分别为:通道0:F8H 通道1:FAH通道2:FCH 控制口:FEH,程序: MOV AL, 33H ;,OUT 0FEH, AL ;,MOV AL, 00H ; 计数值低8位,OUT 0F
31、8H, AL ;,MOV AL, 05H ; 计数值高8位,OUT 0F8H, AL ;计数值高8位写入通道0,8253通道0的控制字,控制字写入控制口,计数值低8位写入通道0,8253应用举例,8253应用举例,例2:某8086系统中有一片8253芯片,利用其通道1完成对外部事件计数,计满250次向CPU发出中断申请;利用2通道输出频率为1kHz的方波,试编写8253的初始化程序,硬件电路如下图所示。,2MHZ,分析:1、各口地址的确定:由于A00,所以8253的各口地址为偶地址:通道0:8020H ; 通道1: 8022H; 通道2:8024H; 控制口:8026H (假设A15=1,其余
32、未用的地址线为0) 所以,8253的数据线D7D0应接CPU的D7D0,2、控制字:通道1控制字:01110001B; 通道2控制字:10100111B,3、计数初始值:通道1:250; 通道2:2000; (通道2的CLK2由D触发器分频4MHZ,故CLK2输入时钟频率为2MHZ,周期为0.5s。而通道2应工作在方式3产生1KHZ的方波,方波周期为1ms,因此通道2的计数值应为:1ms0.5s=2000。),MOV AL, 71H; MOV DX, 8026H OUT DX, AL MOV AL, B7H OUT DX, AL MOV DX, 8022H MOV AL, 50H OUT DX
33、, AL MOV AL, 02H OUT DX, AL MOV DX, 8024H MOV AL, 00H OUT DX, AL MOV AL, 20H OUT DX, AL,通道1控制字 控制口地址 初始化通道1 通道2控制字 初始化通道2 通道1地址 通道1计数值低8位 送入通道1 通道1计数值高8位 送入通道1 通道2地址 通道2计数值低8位 送入通道2 通道2计数值高8位 送入通道2,8253应用举例,例3:现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz。要求利用8253做一个秒信号发生器,其输出接一发光二极管,以0.5秒点亮,0.5秒熄灭的方式闪烁指示。设8253的通道
34、地址为80H86H(偶地址),解:1、时间常数计算这个例子要求用8253作一个分频电路,而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率为1MHz信号的周期为1微妙,而1Hz信号的周期为1秒,所以分频系数N可按下式进行计算:,由于8253一个通道最大的计数值BCD是9999,对于N1000000这样的大数,一个通道是不可能完成上述分频要求的。即取两个计数器,采用级联方式。2、电路,3、工作方式选择由于通道1要输出方波信号推动发光二极管,所以通道1应选工作方式3。对于通道0,只要能起分频作用就行,对输出波形不做要求,所以方式2和方式3都可以选用。 这样对于通道0,我们取工作方式2,
35、BCD计数;对于通道1,我们取工作方式3,二进制计数(当然也可选BCD计数),4、程序mov al,00110101b ;通道0控制字out 86h,almov al,00 ;通道0初始计数值out 80h,almov al,10hout 80h,almov al,01110110b ;通道1控制字out 86h,almov al,0e8h ;通道1初始计数值,03E8H=1000BCDout 82h,almov al,03hout 82h,al,例4:计件系统。计件系统的功能就是记录脉冲的个数。一个脉冲代表一个事件,比如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上已加工好的工件
36、。要求在计件过程中,PC机可以显示当前计数器的内容,当完成10000个工件记录后,系统发出1KHz信号推动喇叭发音通知用户。,解:1、电路。需要两个通道,一个作为计数,选用通道0。另一个产生1KHz信号,选用通道1。工作原理如下,传感器电路把物理事件转换为脉冲信号输入到通道0计数,当记录10000个事件后,通道0计数器溢出,GATE端输出高电平,这时通道1开始工作,产生1KHz信号推动喇叭发音。,2、工作方式选择对于通道1,由于要产生1KHz信号,故选用工作方式3。对于通道0,要求初始计数值写入计数通道后,计数器就可以工作,则通道0的启动方式应是软件启动。另外由于要求计数溢出后产生一个信号来启动一个事件,即喇叭发音,故可选的工作方式为方式0和方式4,对于图所示方案,通道1的GATE信号由通道0的OUT信号产生,这个OUT信号应该是电平型的,所以通道0应选用方式0计数方式,通道1应选用方式3定时方式。,3、时间常数N010004、程序(见书201页):自学,