单片机接口技术复习资料Word文档下载推荐.doc
- 文档编号:14565006
- 上传时间:2022-10-23
- 格式:DOC
- 页数:11
- 大小:133.50KB
单片机接口技术复习资料Word文档下载推荐.doc
《单片机接口技术复习资料Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《单片机接口技术复习资料Word文档下载推荐.doc(11页珍藏版)》请在冰豆网上搜索。
TIME_KEYBIT20H.1
第二部分是用ORG伪指令定义的各个基本程序入口(ROM中有6个特定地址!
ORG0000H;
主程序入口地址
LJMP主程序起始标号(如START)
ORG0003H;
外部中断0入口地址
LJMP外部中断0的服务程序
ORG000BH;
定时器0入口地址
LJMP定时器T0的服务程序
ORG0013H;
外部中断1入口地址
LJMP外部中断1的服务程序
ORG001BH;
定时器1入口地址
LJMP定时器T1的服务程序
ORG0023H;
串行中断入口地址
LJMP串行口中断的服务程序
第三部分是用ORG伪指令定义了具体位置的主程序、子程序、中断服务程序
ORG 0100H
START:
端口初始化
具体处理程序
子程序1:
…
RET
子程序2:
…
中服1:
…
RETI
……
中服5:
…
RETI
第四部分是数据表
变量名:
DB/DW数据表
END;
最后必须有END,标明程序的结束位置,否则汇编报错!
==============================================================================
数码管共阴:
3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7FH,6FH,40H【0-9】
数码管共阳:
0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
【0-9、A、B、C、D、E、F】
===============================================================================
★一个51单片机系统,需要启用INT0中断和T1中断,并且T1中断为高优先级,INT0中断为低优先级而且是沿触发。
程序相关指令和结构如下:
ORG 0000H
LJMP START
ORG 0003H;
这2句是INT0的中服入口设置
LJMP INT_W0
ORG 001BH;
这2句是T1的中服入口设置
LJMP INT_T1
ORG 0100H
……
MOV IE,#10001001B;
设置总允许和INT0允许、T1允许(可 以用位 操作实现)
MOV IP,#00001000B;
设置T1位高优先级(可以用位操作)
SETB IT0 ;
设置INT0为沿触发(下降沿触发)
SETBEA
SETBEX0等效于MOVIE,#89H
SETBET1
SETBPT1等效于MOVIP,#08H
两种指令的效果区别:
位操作只改变指定位,不影响其他位。
这在程序中间进行某个中断的变化时比较常用。
字节操作影响全部中断,初始化的时候常用。
……
中断服务程序
INT_W0:
RETI
INT_T1:
END
★已知系统晶振频率12MHz,要用T0产生50ms定时中断,T0中断设置为高优先级,T0中断服务程序在P1.0输出周期1秒的方波。
解:
12MHz晶振,1个机器周期=1us,定时50ms需要计数50000次,采用模式1的16 位计数。
时间常数a=65536-50000=15536=3CB0H
分析:
1秒周期的方波,高电平0.5秒,低电平0.5秒;
定时器50ms中断一次,中断10次是500ms=0.5秒,用30H单元记录中断次数。
......
中断服务程序:
PTF0:
ORL TL0,#0B0H MOV TH0,#3CH
DJNZ 30H,PTF0R
MOV 30H,#10
CPL P1.0
PTF0R:
RETI
主程序:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PTF0
ORG 0300H
MAIN:
MOV SP,#05FH
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TMOD,#1
MOV IP,#2
MOV IE,#82H
SETB TR0
MOV 30H,#10
模式0串行发送10个字节:
MOVSCON,#00000000B;
模式0
MOVR2,#10;
循环10次
MOVR0,#50H;
假设数据在50H单元
;
开始的区域
LLL:
MOVA,@R0
MOVSBUF,A
JNBTI,$
CLRTI
INCR0
DJNZR2,LLL
模式0串行接收10个字节:
MOVSCON,#00010000B;
MOVR2,#10;
MOVR0,#50H;
假设数据存入50H单
元开始的区域
JNBRI,$
CLRRI
MOVA,SBUF
MOV@R0,A
DJNZR2,LLL
串口:
8255:
初始化程序3句话:
MOVDPTR,#控制口地址
MOVA,#控制字
MOVX@DPTR,A
读口2句话:
MOVDPTR,#数据口地址
MOVXA,@DPTR
写口3句话:
MOVA,#要输出的数据
利用8155的定时器产生方波,方波频率是TI输入脉冲频率的24分频,PA、PB用于输出,PC用于输入。
初始化的子程序如下:
INI8155:
SETB P1.0;
IO/M=1,选择寄存器(IO口)
MOV R0,#4;
地址4=00000100B,这是定时器的低字节寄存器地址
MOV A,#18H;
定时器初值24=18H,减1计数器直接用24为初值
MOVX@R0,A;
写入定时器低字节寄存器
INC R0;
指向5=00000101B,定时器高字节寄存器
MOV A,#40H;
40H=01000000B,最高两位01=连续方波方式
MOVX @R0,A;
写入定时器高字节寄存器
MOV R0,#0;
地址0是8155控制寄存器地址
MOV A,#0C3H;
控制字0C3H=11000011B
写入控制字
RET
写一个子程序,功能是根据A中的值对P1、P3口读入的数据进行加、减、乘、除运算。
(假设A取值为0、1、2、3,在调用子程序之前已经获得,就是说:
A是子程序的调用参数!
FOUR:
MOVP1,#0FFH
MOVP3,#0FFH
散
转
MOVDPTR,#TABLE
RLA
JMP@A+DPTR
TABLE:
AJMPPRG0
AJMPPRG1
AJMPPRG2
AJMPPRG3
PRG0:
MOVA,P1
ADDA,P3
MOVP1,A
CLRA
ADDCA,#0
MOVP3,A
RET
PRG1:
MOVA,P1
CLRC
SUBBA,P3
RLCA
PRG2:
MOVB,P3
MULAB
MOVP3,B
PRG3:
MOVB,P3
DIVAB
8只LED灯流水【定时器】
LJMP START
ORG 000BH
LJMP TO_INT
ORG 0100H
MOV SP,#0EFH
MOV TH0,#3CH
MOV TL0,#0B0H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 接口 技术 复习资料