串行通信。

T

tumee

Guest
请任何一个能帮助我吗?
下面我写在asm简单的代码。但没有奏效。
所以我用了Keil编译仿真。这是工作。
但它没有工作的硬件。余调节baundrate为9600,为11.0592MHz的晶体。这是为什么不起作用?

牛津从00
阶段:
;启用传输端口。
;检验手段警司,#050H
检验手段SCON的,#050H;模式1,8位UART,使接收器
检验手段TMOD,#020H;定时器1,模式2,8位重载
检验手段Th1和#0FdH;为9700波特重载值
SETB TR1的;启动计时器
SETB德州仪器,清除缓冲区
SETB鄂;启用中断

检验手段的P2,#0FFH
检验手段阿,小二
CLR的ç
SUBB甲,#0FFH
延安组这里

检验手段的P2,阿
CLR的德州仪器
检验手段SBUF中,阿
JNB德州仪器,$
位置:CLR的德州仪器
检验手段SBUF的,#054H
JNB德州仪器,$
CLR的德州仪器
检验手段SBUF的,#075H
JNB德州仪器,$
CLR的德州仪器
检验手段SBUF的,#06DH
JNB德州仪器,$
CLR的德州仪器
检验手段SBUF的,#065H
JNB德州仪器,$
CLR的德州仪器
检验手段SBUF的,#065H
JNB德州仪器,$
CLR的德州仪器
检验手段SBUF的,#021H
JNB德州仪器,$

呼叫延迟
LJMP阶段

延迟:
检验手段R6的,#100
循环:检验手段R7版本#100
DJNZ R7版本$
DJNZ R6的,循环
退赛

完请帮助我。

 
tumee
频率提高到20MHz的尝试
, 并告诉我们的价值观

 
你的代码是非常-----------??

本人上传我的工作守则的9600B /有XTAL 11.0592MHz的š

报价:;------------------------------------------------- ---------------------

牛津0000H;

LJMP 0030H;

;------------------------------------------------- ---------------------

牛津0023H;

LJMP串行;

;------------------------------------------------- ---------------------

牛津0030H

;串行------------------------------------------------ ----------------检验手段警司,#050H

CLR的TR1的;

检验手段Th1和#0FAH;

检验手段TL1,#0FAH;

ANL汽车TMOD,#0FH;

魔术TMOD,#20小时;

SETB TR1的;

检验手段SCON的,#50H;

SETB德州仪器;

魔术PCON寄存器,#080H;

检验手段IE浏览器,#090H;

;------------------------------------------------- ---------------------;写您的主线程式码=================

;------------------------------------------------- -------------------

;串行矢量位置

反式:CLR的德州仪器;

雷蒂;产品编号:JB德州仪器,译;

CLR的里;;写您的串行接收程式码=================雷蒂

;------------------------------------------------- ---------------------;------------------------------------------------- ---------------------

延迟:

检验手段R7版本#0BH;

Ŷ1:检验手段R6的,#0BH;

Y0的:DJNZ R6的,Y0的;

DJNZ R7版本Ŷ1;

退赛;;------------------------------------------------- -------------



;------------------------------------------------- -------------

 
检查此连接的串行通信
http://www.dnatechindia.com/index.php/Code-Library/8051_ASSEMBLY/Serial-Communication.html
该代码那边是一个工作

 
我做电子射击目标。可以89C52的接收来自传感器的数据?
你怎么想的89C52的速度?请帮助我。

 
该控制器不能直接接收来自传感器的数据。
使用激光枪在结束和调制传输信号,在接收器的最终用途光电二极管
, 让光电二极管信号LM567这是一个锁相环,设置PLL的中心频率等于激光调制频率,所以当在光电二极管接收信号等于锁相环的O / PLL的变化p中心频率,这可以直接连接到8952

 
请阅读第10章

单片机8051书
, 由穆罕默德阿里Mazadi

 
我如何计算89C52单片机串行通信波特率。
我想设置11059200Hz 57600。
请帮助我。
如果已知PS2键盘口人。请告诉我如何从89C52的数据发送到PS2端口。

 
您不能设置波特率57600使用11.0592MHz的,您可以生成最大9600,可倍增至19200。除此之外,你不能与现有的晶体您使用的波特率。

 
秋明的
如果使用20MHz晶体不能设置57600波特率。
如果它可以设置如何计算和编写汇编代码
, 请帮助我

 
利用这些公式来计算定时器的值或最大波特率可生成
TH1 = 256 - ((振荡器freq./32)/波特率)如果PCON.7 = 0TH1 = 256 - ((振荡器freq./16)/波特率)如果PCON.7 = 1

检查
, 以获取更多信息链接:
http://www.dnatechindia.com/index.php/Tutorials/8051-Tutorial/Serial-Communication.html

 
#包括<AT89X51.H>无符号整型德尔,我十,温度;

字符getCharacter(无效)

字符人权中心; / /变量来保存新的字符
而(里!= 1)(;)
人权中心= SBUF的;
里= 0;
返回(人权中心);

无效发送(字符1)

SBUF的= 1;
同时公司(TI = 1);
德州仪器= 0;


无效的主要(无效)(
字符人权中心;
廉政= 0,J = 0时,计数= 0,公司= 47; / /公司= 47
廉政指数= 0;
小= 0X00;
的P2 = 0X00;

SCON的= 0x50; / /模式1,8位UART,使接收器
TMOD = 0x20; / /定时器1,模式2,8位重载
TH1 = 0XE6; / / 1200
TL1 = 0XE6;
TR1的= 1;
德州仪器= 0;
SBUF的= 0;

而(1)(您的代码




 

Welcome to EDABoard.com

Sponsor

Back
Top