导航:首页 > 操作系统 > 单片机只能读取数字

单片机只能读取数字

发布时间:2024-02-02 07:25:52

㈠ 51 单片机模拟串口的问题 目前发送数据没有问题,接收数据时只能接收前两位,如发送010203 只能接收到01

我前几天也做模拟串口程序,也遇到了与你类似的问题,不过现在解决了。
数据格式由一个起始位,八个数据位,一个或两个结束位组成。在数据发送是结束位是不能省。
但在数据接收时,程序中就没有必要等待结束位了,因为在等待结束位的过程中,把下一个数据的起始中断也等待过去了。
把函数uchar RByte()中的最后一个WaitTF0();删除,程序就能连续接收数据了。
下面是我的程序,你看一下就明白了。
/*
模拟串口收发程序
改程序发送口采用任一IO口,接收口采用外部中断0口,实现了9600bit/s的串口通信
信号产生与接收采用定时器定时溢出标志来进行控制
注意问题:
1、中断的中断标志要保证状态正确
2、定时器定时要精确
*/

#include<reg52.h>
sbit txd=P3^1;
sbit rxd=P3^2;
sbit en=P1^7;
sbit clk=P3^7;

#define uchar unsigned char

uchar number,flag;
uchar num[10]={0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};

void wait(uchar i);
void send(uchar aa);

void main()
{
uchar i;
IE=0;EA=1;
TMOD=0x12;
TR0=0;EX0=1;
IT0=1;en=0;
while(1)
{
if(num[0]==0x49&&num[1]==0x85&&num[2]==0x54&&num[3]==0x31&&num[4]==0x59&&num[5]==0x87&&num[6]==0x91&&num[7]==0x25&&num[8]==0x34&&num[9]==0x62)
{
en=1;
number=0;
for(i=0;i<10;i++)
{send(num[i]);num[i]=0x00;}
en=0;
}
}
}

void send(uchar aa)
{
uchar i;
txd=0;
wait(0xb9);
for(i=0;i<8;i++)
{txd=aa&0x01;aa>>=1;wait(0xb9);}
txd=1;
wait(0xb9);
flag=0;
}

void int0() interrupt 0
{
uchar i;
EX0=0;clk=!clk;
wait(0xad);
for(i=0;i<7;i++)
{
number>>=1;clk=!clk;
if(rxd)number=0x80|number;
else number=0x00|number;
wait(0xb9);
}

number>>=1;clk=!clk;
if(rxd)number=0x80|number;
else number=0x00|number;
wait(0xd9);

num[flag]=number;
flag++;clk=!clk;
IE0=0;EX0=1;
if(flag>=10)flag=0;
}

void wait(uchar i)
{
TF0=0;
TH0=i;TL0=i;
TR0=1;
while(TF0==0);
TF0=0;TR0=0;
}

㈡ 单片机是典型的数字电路,只能处理数字量不能直接处理模拟量正确还是错误

答案是对的,单片机不能直接处理模拟量,需要用A/D转换电路将模拟量转换成数字量单片机才能运算处理。

㈢ 为什么单片机串口只能识别字符

单片机串口只能识别字符原因51单片机的串口所传输的,每次,只是8位二进制数。 只要按照这个规则,各种类型的数据,就都可以传送。

在串行通信时,并不是只能发送和接字符,那字符也是二进制数。关键是发送和接收的格式必须相同,接收一端才能正常显示,但不影响接。举例,电脑发送字符1,单片机按十六进制数即HEX显示是0x31,并不是1。

根据外围设备或器件的名称分类:

1)光电式,电容式,电感式,霍尔式、机械式等各种传感器控制器,如光电、红外对射、金属、人体等传感器;光栅、编码器、接近开关等位置传感器;机械开关(如冰箱上用)传感器;速度传感器等。

输入信号的数字量又分NPN或PNP型,如NPN:有信号为0V,PNP有信号为24V。

2)温度、湿度、压力、液位、气体传感器,如Pt100铂电阻等,需要接一个变送器,才能被串口控制器控制;2.2.2 输出控制的器件。



㈣ 单片机的读和写是什么意思啊,ROM只读呢

读是数据从存储器到单片机上的过程 写是数据从单片机到存储器上的过程。 rom只读的意思是这个存储器只能读取数据,不能向里面写入

阅读全文

与单片机只能读取数字相关的资料

热点内容
python复合数据结构视频 浏览:144
培训学校需要用什么云服务器 浏览:717
卫星锅加密卡那里收购 浏览:56
小米工具文件夹选项在哪里 浏览:53
md5磁盘加密 浏览:640
单片机x地址 浏览:208
回车键失灵运行命令如何使用 浏览:984
电脑一键解压缩的软件 浏览:171
怎么关闭手机通讯录对外app 浏览:370
我的世界如何强行进入一个满人的服务器 浏览:653
什么app可以查询会考成绩 浏览:389
程序员能创造的价值 浏览:259
服务器上的redis是什么意思 浏览:379
软件产品经理与程序员 浏览:922
高中生程序员 浏览:892
ps处理pdf 浏览:723
服务器c1什么意思 浏览:222
哈尔滨手机什么app拍违章有奖励 浏览:479
盗贼用什么app最好 浏览:904
51单片机如何测量电导率 浏览:501