题目38* 开关量检测指示器1
设计要求
AT89S51单片机的P1.4~P1.7接4个开关S0~S3,P1.0~P1.3接4个发光二极管LED0~LED3。编写程序,将P1.4~P1.7上的4个开关的状态反映在P1.0~P1.3引脚控制的4个发光二极管上。1个发光二极管的状态,对应一个开关的状态,例如P1.4引脚上开关S0的状态,由P1.0脚上的LED0显示,P1.6引脚上开关S2的状态,由P1.2脚上的LED2显示。凡是开关闭合的引脚,对应的LED发光二极管点亮。
题目39* 开关量检测指示器2
设计要求
AT89S51单片机P1.0和P1.1引脚接有两只开关S0和S1,两只引脚上的高低电平共有4种组合,这4种组合分别点亮P2.0~P2.3引脚控制的4只LED:LED0~LED3 (高电平点亮),编程实现此功能。
题目40 单一外中断的应用
设计要求
在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)引脚接有一只按钮开关K1。要求将外部中断0设置为负跳沿触发。在程序启动时,P1口上的8只LED亮。按一次按钮开关K1,使引脚INT0接地,产生一个负跳沿触发的外中断0的中断请求,在中断服务程序中,让低4位的LED和高4位的LED交替闪烁。
题目41 两个外中断的应用
设计要求
51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)引脚接有一只按钮开关K1。在外部中断1输入引脚P3.3(INT1)引脚接有一只按钮开关K2。程序要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,仅K1(P3.2)按下时,左右4只LED交替闪烁。仅按下K2(P3.3),P1口的8只LED全部闪亮。两个外中断的优先级相同。
题目42 中断嵌套的设计
设计要求
实现中断嵌套程序。51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)
引脚接有一只按钮开关K1。在外部中断1输入引脚P3.3(INT1)引脚接有一只按钮开关K2。要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,当K1按下再松开时,产生一个低优先级的外中断0请求(跳沿触发),进入外中断0中断服务程序,左右4只LED交替闪烁。此时按下K2再松开时,产生一个高优先级的外中断1请求(跳沿触发),进入外中断1中断服务程序,P1口的8只LED全部闪烁。当显示一段时间后,再从外中断1返回继续执行外中断0中断服务程序,即P1口控制8只LED左右4只LED交替闪烁。设置外中断1为高优先级,外中断0为低优先级。
题目43* 定时器控制P1口外接的8只LED每0.5s闪亮一次
设计要求
在AT89S51单片机的P1口上接有8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。要求采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。
题目44* 外部计数输入信号控制LED的闪烁
设计要求
如题44图所示,51单片机的P1口上接有8个发光二极管LED0~LED7经限流电阻分别接至+5V上,采用定时器T1的方式1的中断计数方式,如题图所示,计数输入引脚T1(P3.5)上外接开关K1,作为计数信号输入。按4次K1后,P1口的8只LED闪烁不停。
题44图 外部计数输入信号控制LED的闪烁
题目45* 利用定时器扩展一个外部中断源
设计要求
利用定时器扩展一个外部中断源。可利用开关K1控制T0脚引脚电平发生负跳变,平时T0引脚为高电平。当检测到T0脚引脚电平发生负跳变时,计数器TF0溢出,这时将产生一个中断请求,进入中断服务程序中,将P1.0脚上的LED点亮。
题目46* 利用定时器在P1.0上产生周期为2ms的方波
设计要求
假设系统时钟为12MHz,利用定时器的定时,实现从P1.0引脚上输出一个周期为2ms的方波,并采用示波器来观察。
题目47* 利用定时器在P1.1上产生周期为1s的方波
设计要求
假设系统时钟为12MHz,编写程序实现从P1.1引脚上输出一个周期为1s的方波,并采用示波器来观察。
提示:要在P1.0上产生周期为1s的方波,定时器应产生500ms的周期性定时,定时时间到则对P1.0求反。由于定时时间较长,用定时器不能直接实现,直接定时时间最长的就是,仅为65ms(系统时钟12MHz)多一点。
即定时器T0的方式1来定时10ms,每10ms对P1.0求反一次,P1.0输出的脉冲加到定时器T1的计数输入脚P3.5(T1脚),作为T1的计数输入,定时500ms只需计数50次。T1设为方式2计数。定时器T0和T1均采用中断方式工作。
题目48* 利用T1控制发出1KHz的音频信号
设计要求
利用定时器T1的中断来使P1.7控制蜂鸣器发出1KHz的音频信号,假设系统的时钟为12MHz。
题目49* 串行口方式0输出的应用
设计要求
利用单片机串行口的方式0输出,通过74LS164的输出来控制控制8个发光二极管轮流点亮。
题目50* 串行口方式0输入的应用
设计要求
单片机串行口外接一片8位并行输入、串行输出的同步移位寄存器74LS165,扩展一个8位并行输入口的电路,将接在74LS165的8个开关的状态(开关的一端接地,另一端接到74LS165的输入端)通过串行口的方式0的中断方式读入到单片机内。
题目51 串行口方式1的应用
设计要求
单片机甲、乙双机进行串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。甲机设置为只能发送不能接收的单工方式。要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。双方晶振均采用11.0592MHz。
题目52 串行口方式3的应用
设计要求
甲乙两个单片机进行方式3(或方式2)串行通讯。甲机将8个流水灯控制数据发送给乙机,乙机再利用该数据点亮其P1口的8个LED。方式3比方式1多了一个可编程位TB8,该位一般作奇偶校验位。乙机接收到的8位二进制数据有可能出错,需进行奇偶校验,其方法是将乙机的RB8和PSW的奇偶校验位P进行比较,如果相同,接收数据;否则拒绝接收。
题目53 并行接口芯片82C55的应用
设计要求
根据题53图,要求82C55的PC口工作在方式0,并从PC5脚输出连续的方波信号,频率为500Hz,并用示波器观察。