登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
MCU资讯论坛
»
论坛
›
单片机开发论坛
›
C语言论坛
›
单片机串口通信求助
单片机串口通信求助
[复制链接]
1753
0
单片机小小白
新手上路
发表于 2018-3-8 21:28:55
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
本人
单片机
小白,想入门单片机,串口通信遇到了问题望大神不吝赐教
这是我用的板子,和他串口通信的是一个扫码枪,想实现扫码枪扫描一个条形码,液晶显示屏上显示条形码上的数字
附上这个板子的原理图
TX-1C型单片机实验板原理图.pdf
(1015.98 KB, 下载次数: 0)
2018-3-8 21:14 上传
点击文件名下载附件
扫码枪是串口扫码枪
现在的情况是我在使用串口调试工具的时候送数据是没有问题的,液晶上也有显示,但是扫码枪扫码之后却完全没有反应,网上说要扫码枪和单片机分别供电需要共地,但我不是很懂啊,应该怎么实现呢。这个实验板上有焊接max232模块实现TTL与RS232的转换,是不是就默认共地了???
很懵逼啊
使用的是c语言,以下是我的代码
#include <REG52.H>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uchar UART_buff;
uchar table[20];
int count;
bit New_rec = 0, Send_ed = 1;
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint z) { //延时函数
uint x,y;
for(x=z; x>0; x--)
for(y=110; y>0; y--);
}
void write_com(uchar com) { //需要看操作时序
lcdrs=0;
P0=com; //P0送的指令码
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_dat(uchar dat) { //需要看操作时序
lcdrs=1;
P0=dat; //P0送的指令码
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init() {
dula=0; //关闭数码管锁存端
wela=0;
lcden=0;
write_com(0x38); //设置显示模式
write_com(0x0e); //设置光标
write_com(0x06); //设置字符指针
write_com(0x01); //清屏指令
write_com(0x80); //光标定位
}
//----------------------------------------------
void main (void) {
int num;
init();
SCON = 0x50; //串口方式1, 8-n-1, 允许接收.
TMOD = 0x20; //T1方式2
TH1 = 0xFD; //
[email protected]
TL1 = 0xFD;
TR1 = 1;
ES = 1; //开中断.
EA = 1;
while(1) {
if (New_rec == 1) { //如果收到新数据
ES=0;//关闭串口中断
SBUF = UART_buff; //发送数据
table[count++]=UART_buff;
while(!Send_ed); //等待数据发送完毕
if(!(table[9]==0)) { //如果缓存表满,给LCD送出数据
init(); //清屏及光标定位
for(num=0; num<10; num++) {
write_dat(table[num]);
}
count=0; //缓存表初始化
num=0;
memset(table, 0, 20*sizeof(char)); //缓存表清零
}
ES=1;//开启串口中断
New_rec = 0; //接收完数据,标记置0
Send_ed = 1; //发送完数据,标记置0
}
}
}
//----------------------------------------------
void ser_int (void) interrupt 4 {
if(RI == 1) { //处理接收中断
RI = 0; //接收中断标记置0
New_rec = 1; //通知主函数接收到新数据
UART_buff = SBUF; //取串口数据
}
if(TI == 1) { //处理发送中断
TI = 0; //发送中断标记置0
Send_ed = 1; //通知主函数数据发送完成
}
}
//----------------------------------------------
复制代码
举报
回复
28 个评论
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰版 2
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰版 201910 32位纯净版 File:GhostWin7x86
学好单片机必看的40个实验项目
本资料精选40个单片机课题项目,分别给出电路和程序,程序都用汇编和C语言进行了编
雄霸全Arduino中文开发平台1.03版本
http://www.mcuzx.net/thread-120792-1-1.html 雄霸全Arduino中文开发平台1.03版本
雄霸全Arduino中文开发平台1.04版本持续更
雄霸全Arduino中文开发平台1.03版本 支持任何Arduino板卡官方库第三方库等全中文编写
雄霸全Arduino中文开发平台1.03版本
雄霸全Arduino中文开发平台1.03版本 支持任何Arduino板卡官方库第三方库等全中文编写
更多
精华推荐
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰版 2
寻求最小封装的单片机
单片机
新人报道
NXP SPC560XB FlexCAN/ADC/GPIO开发例程
51单片机入门教程源码,猿始部落官方代码正
学好单片机必看的40个实验项目
51单片机程序集锦(适合初学者)
更多
社区学堂
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰
学好单片机必看的40个实验项目
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰版 2
蒲公英Ghost Win 7 Sp1(x86/x64)旗舰版 201910 32位纯净版 File:GhostWin7x86
学好单片机必看的40个实验项目
本资料精选40个单片机课题项目,分别给出电路和程序,程序都用汇编和C语言进行了编
雄霸全Arduino中文开发平台1.03版本
http://www.mcuzx.net/thread-120792-1-1.html 雄霸全Arduino中文开发平台1.03版本
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
返回顶部
快速回复
返回列表
客服中心
搜索
官方QQ群
分享
分享到:
QQ空间
新浪微博
腾讯微博
人人网
腾讯朋友
百度贴吧
QQ好友
百度空间
我的搜狐
微信
网易微博
搜狐微博
百度搜藏
QQ收藏
QR Code
手机扫描二维码快速访问本帖
个人中心
个人中心
登录或注册
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
小黑屋
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表