单片机实验指导 下载本文

实验六 简单I/O扩展实验

一、实验目的

(1)掌握P3口、P1口简单使用; (2)学习延时程序的编写和使用。 二、实验内容

1.P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。

2.P1口做输出口,编写程序,使P1口接的8 个发光二极管D1—D8按16进制加一方式点亮发光二极管。

三、实验说明

P3口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P3口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

四、实验程序框图

五、实验线路图

六、实验步骤

①A2区INT1用插针连至D1区SW1孔,A1区P10—P17用排线连至D1区LED1—LED8。 ②连续运行程序。

③开关SW1每拨动一次,LED1—LED8发光二极管按16进制方式加一点亮。

MAIN: L1: DELAY: L2: L3:

ORG 0000H JB P3.3,MAIN LCALL DELAY JB P3.3,MAIN JNB P3.3,L1 LCALL DELAY INC A MOV P1,A LJMP MAIN MOV R6,#0FFH MOV R7,#0FFH DJNZ R7,L3 DJNZ R6,L2 RET END

实验七 键盘实验

一、实验目的

利用实验仪上提供的按键K1~K7作为电子琴按键,控制蜂鸣器发声,使用户了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。(蜂鸣器3~4KHz的方波)

二、实验内容

编写一段程序,用P3.3口控制(输出7种音阶标称频率的方波),使B5区的蜂鸣器发出不同的音调。程序检测按键的状态,当按下某一键时,蜂鸣器发出对应的音调。

三、实验电路

六、实验步骤

(1)用导线将A2区的P3.3口(INT1)和B5区的BUZZ接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。

(2)编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序。

BUZZ EQU P3.3 ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0100H MAIN: MOV SP,#60H MOV 30H,#00 MOV 31H,#00 MOV P1,#0FFH MOV TMOD,#01H SETB ET0 SETB EA CLR TR0 START: MOV R0,P1 CJNE R0,#0FFH,KEY1 CLR TR0 SJMP START KEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMER KEY2: CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SET_TIMER KEY3: CJNE R0,#0FBH,KEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMER KEY4: CJNE R0,#0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMER KEY5: CJNE R0,#0EFH,KEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMER KEY6: CJNE R0,#0DFH,KEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP SET_TIMER KEY7:

CJNE R0,#0BFH,NOKEY MOV 30H,#0FDH

;初始化堆栈向量 ;定时器初值清零

;设置P1口为输入模式 ;设置定时器0为工作模式1 ;开定时器0中断 ;开总中断 ;关闭定时器0

;键盘扫描

;K1键按下 ;设置音阶1

;K2键按下 ;设置音阶2

;K3键按下 ;设置音阶3

;K4键按下 ;设置音阶4

;K5键按下 ;设置音阶5

;K6键按下 ;设置音阶6

;K7键按下 ;设置音阶7

MOV 31H,#0D6H

;发声

;无键按下 ;T0中断服务程序 ;定时器附初值

SET_TIMER: NOKEY: INT_T0:

SETB TR0 SJMP START CLR TR0 SJMP START

MOV TH0,30H MOV TL0,31H

CPL BUZZ ;输出方波 RETI

END