RET ; 子程序
RET ;
【例9-11】按图9-17,试编制中断方式键盘扫描程序,将键盘序号存入内RAM 30H。
ORG 0000H ;复位地址
LJMP STAT ;转初始化
ORG 0003H ;中断入口地址 LJMP PINT0 ;转中断服务程序 ORG 0100H ;初始化程序首地址 STAT: MOV SP,#60H ;置堆栈指针
SETB IT0 ;置为边沿触发方式 MOV IP,#00000001B ;置为高优先级中断 MOV P1,#00001111B ;置P1.0~P1.3置为输入态,置P1.4~P1.7输出0
SETB EA ;CPU开中 SETB EX0 ;开中
LJMP MAIN ;转主程序,并等待有键按下时中断
OGR 2000H ;中断服务程序首地址 PINT0: PUSH Acc ;保护现场 PUSH PSW ;
MOV A,P1 ;读行线(P1.0~P1.3)数据 CPL A ;数据取反,“1”有效
ANL A, #0FH ;屏蔽列线,保留行线数据 MOV R2,A ;存行线(P1.0~P1.3)数据(R2低4位)
MOV P1,#0F0H ;行线置低电平,列线置输入态
MOV A,P1 ;读列线(P1.4~P1.7)数据 CPL A ;数据取反,“1”有效
ANL A,#0F0H ;屏蔽行线,保留列线数据(A中高4位)
MOV R1,#03H ;取列线编号初值 MOV R3,#03H ;置循环数 CLR C ;
PINT01:RLC A ;依次左移入C中
JC PINT02 ;C=1,该列有键按下,(列线编号存R1)
DEC R1 ;C=0,无键按下,修正列编号 DJNZ R3,PINT01 ;判循环结束否?未结束继续寻找有键按下列线
PINT02:MOV A,R2 ;取行线数据(低4位) MOV R2,#00H ;置行线编号初值 MOV R3,#03H ;置循环数
PINT03:RRC A ;依次右移入C中
JC PINT04 ;C=1,该行有键按下,(行线编号存R2)
INC R2 ;C=0,无键按下,修正行线编号
DJNZ R3,PINT03 ;判循环结束否?未结束继续寻找有键按下行线
PINT04:MOV A,R2 ;取行线编号
单片机期末考试试题1
CLR C ;
RLC A ;行编号×2 RLC A ;行编号×4
ADD A,R1 ;行编号×4+列编号=按键编号
MOV 30H,A ;存按键编号 POP PSW ; POP Acc ; RETI ;
6、第九章课件P135页关于AD参数的设计例题;
四、8位集成ADC0809
ADC0809是采用CMOS工艺制成的8位八通道逐次逼近型A/D转换器。 分辨率: 8位 精度: 8位 转换时间: 100µs 增益温度系数: 20ppm/℃ 输入电平: TTL 功耗: 15mW 2.ADC0809工作原理
① 输入3位地址信号,在ALE脉冲的上升沿将地址锁存,经译码选通某一通道的模拟信号进入比较器;
②发出A/D转换启动信号START,在START的上升沿将SAR清0,转换结束标志EOC变为低电平,在START的下降沿开始转换;
③转换过程在时钟脉冲CLK的控制下进行;
④转换结束后,EOC跳为高电平,在OE端输入高电平,从而得到转换结果输出。 3.ADC0809引脚功能
IN0~IN7:8路模拟电压输入。 ?
ADDC、ADDB、ADDA:3位地址信号。 ALE:地址锁存允许信号输入,高电平有效。 D7~D0(2-1~2-8):8位二进制数码输出。
OE:输出允许信号,高电平有效。即当OE=1时,打开输出锁存器的三态门,将数据送出。 UR(+)和UR(-):基准电压的正端和负端。?
CLK:时钟脉冲输入端。一般在此端加500kHz的时钟信号。
START:A/D转换启动信号,为一正脉冲。在START的上升沿将逐次比较寄存器SAR清0,在其下降沿开始A/D转换过程。
EOC:转换结束标志输出信号。在START信号上升沿之后 EOC信号变为低电平;当转换结束后,EOC变为高电平。此信号可作为向CPU发出的中断请求信号。
单片机期末考试试题1
2、ADC 0809应用实例 ⑴ 中断方式
【例9-12】 按图9-20,用中断方式对8路模拟信号依次A/D转换一次,并把结果存入以30H为首址的内RAM中,试编制程序。 解:
ORG 0000H ;复位地址 中断 LJMP STAT ;转初始化程序 ORG 0200H ;中断服务子程序首地址 ORG 0013H ;中断服务子程序入口PINT1: PUSH Acc ;保护现场
PUSH PSW ; 地址
LJMP PINT1 ;中断,转中断服务子程 MOVX A,@DPTR ;读A/D值 序; MOV @R1,A ;存A/D值 ORG 0100H ;初始化程序首地址 INC DPTR ;修正通道地址 STAT: MOV R1,#30H ;置数据区首址 INC R1 ;修正数据区地址 MOV R7,#8 ;置通道数 MOVX @DPTR,A ;启动下一通道A/D SETB IT1 ;置边沿触发方式 DJNZ R7,GORETI ;判8路采集完否?未完 SETB EX1 ;开中 继续 SETB EA ;CPU开中 CLR EX1 ;8路采集已完,关中 MOV DPTR,#0FEF8H ;置0809通道0地址 GORETI:POP PSW ;恢复现场
POP Acc ; MOVX @DPTR,A ;启动0通道A/D
LJMP MAIN ;转主程序,并等待A/D RETI ;中断返回 ⑵ 查询方式
工作在查询方式时,0809 EOC端可不必通过反相器与或相连,直接与80C51 P1口或P3口中任一端线相连。
【例9-13】 图9-20中,用P1.0直接与0809 EOC端相连,试用查询方式编制程序,对8路模拟信号依次A/D转换一次,并把结果存入以40H为首址的内RAM中。 解:
MAIN: MOV R1,#40H ;置数据区首址 MOV R7,#8 ;置通道数 SETB P1.0 ;置P1.0输入态
MOV DPTR,#0FEF8H ;置0809通道0地址 LOOP: MOVX @DPTR,A ;启动A/D
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说公务员考试单片机期末考试试题1(5)在线全文阅读。
相关推荐: