您的位置 首页 测评

串口,I2C总线,EEPROM及液晶驱动的时刻抵触问题

或许是我的构思一开始就是错误的,串口的接受速度远大于数据的存取和液晶的驱动的时间总和。从电脑传过去的字符总是会漏掉好多,如今只能写

或许是我的构思一开始便是过错的,串口的承受速度远大于数据的存取和液晶的驱动的时刻总和。从电脑传过去的字符总是会漏掉很多,现在只能写入一个字节的数据。真是猪脑子,浪费了半响时刻。

这是我自己写的单片机完成电话本,能够从电脑录入名字与电话,并能够手动查询。可是存储和液显的时刻太长,无法及时从电脑录入数据。可是串口,I2C总线,EEPROM,液晶的驱动程序是对的。串口的传输能否像I2C相同能被我自己操控呢。

#include #define unchar unsigned charunchar ac;sbit E=P2^7  ;sbit RS=P2^6 ;sbit RW=P2^5 ;sbit SDA=P2^1;sbit SCL=P2^0;/****数据延时****/void NOP(void){;;}/******操作延时*****/void delay(unsigned int  i){i=124*i;while(--i);}/****液晶指令写入****/void LCD_cmd(unchar cmd){E=0;RW=0;RS=0;P0=cmd;delay(2);E=1;delay(2);E=0;}/****液晶数据的写入*****/void LCD_date(unchar date){RW=0;RS=1;P0=date;delay(1);E=1;delay(1);E=0;}void init(void){/********* 串口初始化 ******/TMOD=0X20;SCON=0X50;PCON=0X80;ET1=1;TR1=1;TH1=0XF3;TL1=0XF3;RI=0;TI=0;/********* 液晶初始化 *******/LCD_cmd(0x6);//设置读写方法,指针主动增一(第二位 1),画面不移动(第一位 0)LCD_cmd(0xc);//显现开(第三位 1)光标开(第二位 1)光标闪耀开(第一位 1);LCD_cmd(0x38);//设置显现形式 LCD_cmd(0x1);//清屏,铲除指针和RAM数据/*****按键中止初始化*******/EA=1;EX0=1;EX1=1;}/*****数据开始端*********/void start(void){SDA=1;NOP();SCL=1;NOP();SDA=0;NOP();}/***** 数据完毕端 ********/void stop(void){SDA=0;NOP();SCL=1;NOP();SDA=1;NOP();}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/319350.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部