中断的执行过程与调用子程序的相似点:
都是中断当前正在执行的程序,转去执行子程序或中断服务程序。
都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。
执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。
二者都可以实现嵌套,如中断嵌套和子程序嵌套。
中断的执行与调用子程序的区别:
中断请求信号可以由外部设备发出,是随机的,比如故障产生的中断请求、按键中断等;子程序调用却是由软件编排好的。
中断响应后由固定的矢量地址转入中断服务程序,而子程序地址由软件设定。
中断响应是受控的,其响应时间会受一些因素影响;子程序响应时间是固定的。
例。 对从p1口输入的100个0~9的数进行概率统计:
统计的数值分别存入20h~29h中。
clr amov r0,#
mov r1,#20h
lp:mov @r1,a
inc r1
djnz r0,lp
mov r0,#
read:mov a,p1
chk0:cjne a,#0,chk1
inc 20h
sjmp end0
chk1:cjne a,#1,chk2
inc 21h
sjmp end0
chk2:cjne a,#2,chk3
inc 22h
sjmp end0
chk3:cjne a,#3,chk4
inc 23h
sjmp end0
chk4:cjne a,#4,chk5
inc 24h
sjmp end0
chk5:cjne a,#5,chk6
inc 25h
sjmp end0
chk6:cjne a,#6,chk7
inc 26h
sjmp end0
chk7:cjne a,#7,chk8
inc 27h
sjmp end0
chk8:cjne a,#8,chk9
inc 28h
sjmp end0
chk9:cjne a,#9,err
inc 29h
end0:djnz r0,read
here:sjmp here
err串行口用于多处理机的通信方式:
1 系统初始化时,将所有从机中的sm2位均设置为1,并处于允许串行口中断接收状态。
2 主机欲与某从机通信,先向所有从机发出所选从机的地址,从机地址符合后,接着才发送命令或数据。
3 在主机发地址时,置第9位数据(tb8)为1,表示主机发送的是地址帧; 当主机呼叫某从机联络正确后,主机发送命令或数据帧时,将第9位数据(tb8)清0。
4各从机由于sm2置1,将响应主机发来的第9位数据(rb8)为1的地址信息。从机响应中断后,有两种不同的操作:
5 若从机的地址与主机点名的地址不相同,则该从机将继续维持sm2为l,从而拒绝接收主机后面发来的命令或数据信息,等待主机的下一次点名。
6 若从机的地址与主机点名的地址相同,该从机将本机的sm2清0,继续接收主机发来的命令或数据,响应中断。
行扫描法与线反转法的原理:
行扫描法,行线全0送出,即输入全0,读入列线,若无按键按下,则列线全1,若有按键按下则列线非全1逐行送出为0,读入列线,确定行列交叉点,以确定按键的位置。
线反转法:行线全0送出,即输入全0,读入列线,若列线全1无按键按下,若列线非全1则有按键按下,讲列值反向送出,读取行线,找出交叉点,确定按键位置。
单片机的存储器的特点是什么?
数据存储器和程序存储器分开编址,并有各自的寻址方式和寻址单元。对存储器的划分在物理上分为4个空间:片内数据存储器、片内程序存储器、片外数据存储器、片外程序存储器,在逻辑上划分为3个空间:
偏内外程序存储器、片外数据存储器、片内数据存储器。
程序计数器pc与数据指针dptr,有相同之处,也有差别:
⑴ 两者都是与地址有关的16位的寄存器。其中pc与程序存储器的地址有关,而 dptr与数据存储器的地址有关。作为地址寄存器使用时pc与dptr都是通过p0和p2口输出的。
pc的输出与ale及信号有关;dptr的输出,则与ale、wr、rd 信号有关。
⑵ pc只能作为16位寄存器对待。pc是不可以访问的,它不属于特殊功能寄存器,有自己独特的变化方式。dptr可以作为16位寄存器,也可以作为两个8位寄存器,dptr是可以访问的,dpl和dph都位于特殊功能寄存器区中。
程序题。试编程序实现下述逻辑表达式的功能。
说明:设8位输入信号从p1口输入,y信号从p3.0输出。经化简得到 y=x0+x1x2+x1x2+x4x5x6x7
mov a,p1
jb acc.0,mm
setb c
sjmp out
mm:mov c,acc.1
anl c,/acc.2
jc out
mov c,acc.2
anl c,/acc.1
jc out
mov c,acc.7
anl c,/acc.4
anl c,/acc.5
anl c,/acc.6
out:mov p3.0,c
数的码制转换子程序。把a中无符号二进制整数 (00-ffh) 转换为三位压缩bcd码 (0~255) ,存入内存30h和31h单元。
binbcd:mov b,#
div ab
mov 30h,a
mov a,b
mov b,#0ah
div ab
swap a
add a,b
mov 31h,a
ret应用题:
用80c51产生两个方波,一个周期为200us,有p1.0输出,另一个周期为400us,有p1.1口输出,该机同时使用串行口,用定时器|计数器作为波特率发生器,波特率为2400.
晶体振荡器为fosc=9.216mhz
org 0000h
ajmp main
org 000bhajmp itl0
org 00lbh
ajmp ith0
org 0100h
main: mov sp,# 5fh
mov tmod,# 23h
mov th0,#66h
mov tl1,#0f6h
mov th1,# 0f6h
setb tr0
setb tr1
setb et0
setb et1
setb ea
ajmp $
org 0200h
itl0:mov tl0,# 0b3h
cpl p1.0
retiith0:mov th0,#66h
cpl p1.1reti
单片机试题
01 单片机是将微处理器 一定容量的 ram 和 rom 以及 i o 口 定时器等电路集成在一块芯片上而构成的微型计算机。2 单片机89c51片内集成了 4 kb的flash rom,共有 5 个中断源。3 两位十六进制数最多可以表示 256 个存储单元。c51是以下哪个公司的产品?c a int...
单片机试题
单片机1试题。一 填空题 每空1分,共10分 1.当使用8031单片机时,需要扩展外部程序存储器,此时ea应为。通常用作。3.若由程序设定rs1 rs0 10,则工作寄存器r0 r7的直接地址为。4.返回地址 或断点 是 的程序计数器的内容。5.处理器cpu是单片机的核心,它完成。6.单片机的工作过...
单片机试题
1 mcs 51 的无条件转移指令中,其转移范围最大的是 a ljmp b ajmp c sjmp d jmp 2 一3的补码是 a b 11111100 c 11111110 d 11111101 3 单片机应用程序一般存放在。a ram b rom c 寄存器 d cpu。4 单片机上电后或复位...