预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

例2利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12MHz。 解:1、计算计数初值X: 由于晶振为12MHz,所以机器周期Tcy为1s。 所以: N=t/Tcy=10×10-3/1×10-6=10000 X=65536-10000=55536=D8F0H 即应将D8H送入TH0中,F0H送入TL0中 2、求T0的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H; ORG0000H LJMPMAIN;跳转到主程序 ORG000BH;T0的中断入口地址 LJMPDVT0;转向中断服务程序 ORG0100H MAIN:MOVTMOD,#01H;置T0工作于方式1 MOVTH0,#0D8H;装入计数初值 MOVTL0,#0F0H SETBET0;T0开中断 SETBEA;CPU开中断 SETBTR0;启动T0 SJMP$;等待中断 DVT0:CPLP1.0;P1.0取反输出 MOVTH0,#0D8H;重新装入计数值 MOVTL0,#0F0H RETI;中断返回 END 2、串行口方式1的发送和接收 例7-4:89C51串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,采用奇校验方式,要求传送的波特率为1200b/s。编写有关的通信程序。 解:7位ASCII码加1位奇校验共8位数据,故可采用串行口方式1。 89C51单片机的奇偶校验位P是当累加器A中1的数目为奇数时,P=1。如果直接把P的值放入ASCII码的最高位,恰好成了偶校验,与要求不符。因此,要把P的值取反以后放入ASCII码最高位,才是要求的奇校验。 2、串行口方式1的发送和接收 双工通信要求收、发能同时进行。收、发操作主要是在串行接口进行,CPU只是把数据从接收缓冲器读出和把数据写入发送缓冲器。数据传送用中断方式进行,响应中断以后,通过检测是RI置位还是TI置位来决定CPU是进行发送操作还是接收操作。 发送和接收都通过调用子程序来完成,设发送数据区的首地址为20H,接收数据区的首地址为40H,fosc为6MHz,通过查波特率初值(表7-2)可知定时器的初装值为F3H。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。 2、串行口方式1的发送和接收 主程序 MOVTMOD,#20H;定时器1设为模式2 MOVTL1,#0F3H;定时器初值 MOVTH1,#0F3H;8位重装值 SETBTR1;启动定时器1 MOVSCON,#50H;设置为方式1, ;REN=1 MOVR0,#20H;发送数据区首址 MOVR1,#40H;接收数据取首址 ACALLSOUT;先输出一个字符 SETBES SETBEA SJMP$;等待中断 2、串行口方式1的发送和接收 发送子程序 SOUT:CLRTI MOVA,@R0;取发送数据到A MOVC,P;奇偶标识赋予C CPLC;奇校验 MOVACC.7,C INCR0;修改发送数据指针 MOVSBUF,A;发送ASCII码 RET;返回 2、串行口方式1的发送和接收 例7-7:利用串行口和堆栈技术发送字符串常量。 上面两个例子中,发送和接收的都是一些变量数据,且存放在内部RAM单元中。现说明如何利用堆栈技术发送存放在程序存储器内的字符串常量。 下面的例子中,这些字符串是发送给CRT终端的,以回车符(CR)和换行符(LF)开始,以换码符(ESC)为结尾。下面是程序片断: 2、串行口方式1的发送和接收 CREQU0DH;ASCII回车符 LFEQU0AH;ASCII换行符 ESCEQU1BH;ASCII换码符 …… MOVTMOD,#20H;设置定时器T1为模式2 MOVTL1,#0FDH;设波特率位9600b/s ;(fosc=11.059MHz) MOVTH1,#0FDH SETBTR1;启动T1运行 MOVSCON,#01000000B;设置串行口方式1 ACALLXSTRING DBCR,LF DB‘NU&BIAA’;字符串常量 DBESC MOVB,#01H …… 3、串行口方式2、方式3的发送和接收 串行口方式2与方式3基本一样(只是波特率设置不同),接收/发送11位信息:开始为l位起始位(0),中间8位数据位,数据位之后为1位程控位(由用户置SCON的TB8决定),最后是1位停止位(1)。只比方式l多了一位程控位。 3、串行口方式2、方式3的发送和接收 例7-8:用第9个数据位作奇偶校验位,编制串行口方式2的发送程序。 解:设计一个发送程序,将片内RAM50H~5FH中的数据串行发送;串口设定为方式2,TB8作奇偶校验位。在数据写入发送缓冲器之前,先将数据的奇偶位P写入TB8,这时,