当前位置: 首页 > news >正文

电子商务网站建设不足扶贫832网络销售平台

电子商务网站建设不足,扶贫832网络销售平台,公司做网站要有服务器,凡客诚品鞋子质量怎么样一、实验目的 掌握89C51单片机的基本操作和编程方法学习I2C总线协议及其在单片机中的应用实现基于AT24C02 EEPROM的带记忆功能的计数器掌握LCD1602液晶显示模块的使用方法 二、实验设备 89C51单片机开发板#xff08;板载#xff09;AT24C02 EEPROM芯片#xff08;板载板载AT24C02 EEPROM芯片板载LCD1602液晶显示屏板载按键开关板载 三、实验原理 1. 系统组成 本实验系统主要由以下几部分组成 89C51单片机作为主控制器负责处理按键输入、I2C通信和LCD显示AT24C02 EEPROM用于存储计数器的当前值实现断电记忆功能LCD1602液晶显示屏用于显示当前计数值按键开关用于增加计数值 2. I2C总线协议 I2C总线是一种简单的双向二线制同步串行总线由数据线SDA和时钟线SCL组成。本实验使用89C51的P2.0和P2.1引脚模拟I2C总线与AT24C02通信。 3. AT24C02 EEPROM AT24C02是一种2Kbit的串行EEPROM采用I2C接口。其设备地址为0xA0写和0xA1读。本实验使用其第一个地址0x00存储计数值。 4. LCD1602液晶显示 LCD1602是一种字符型液晶显示模块可以显示两行每行16个字符。本实验使用其第一行显示当前计数值。 四、实验电路连接 LCD1602连接 RS引脚连接P3.5RW引脚连接P3.6EN引脚连接P3.4数据线D0-D7连接P0口 AT24C02连接 SDA引脚连接P2.1SCL引脚连接P2.0 按键连接 按键一端连接P3.2另一端接地 五、实验代码分析 头文件和宏定义 #include reg52.h #include intrins.h #define unchar unsigned char #define uint unsigned int 全局变量和常量定义 unchar code dis_table[] 0123456789;  // 数字显示表 sbit button P3^2; // 定义按键 sbit lcden P3^4; // 定义LCD的E端口 sbit lcdrw P3^6; // 定义LCD的RW端口 sbit lcdrs P3^5; // 定义LCD的RS端口 sbit SCL P2^0; // 定义SCL时钟线端口 sbit SDA P2^1; // 定义SDA数据线端口 延时函数 void Delay() { _nop_();    _nop_();    _nop_();    _nop_();    _nop_(); } void DelayMs(uint ms) { uint i; while(ms--) { for(i 110; i 0; i--) ; } } LCD1602操作函数 void Write_Com(unchar com) { lcdrs 0; // 选择指令寄存器 P0 com; DelayMs(5); lcden 1; DelayMs(5); lcden 0; } void Write_data(unchar datas) { lcdrs 1; // 选择数据寄存器 P0 datas; DelayMs(5); lcden 1; DelayMs(5); lcden 0; } void init() { lcdrw 0; // 写操作 lcden 0; Write_Com(0x38);  // 8位数据接口两行显示5x7点阵 Write_Com(0x0c);  // 显示开光标关闪烁关 Write_Com(0x06);  // 写入新数据后光标右移显示不移动 Write_Com(0x01);  // 清屏 } I2C操作函数 void IIC_init() { SCL 1; Delay(); SDA 1; Delay(); } void IIC_start() { SDA 1; Delay(); SCL 1; Delay(); SDA 0; Delay(); } void IIC_respons() { unchar i 0; SCL 1; Delay(); while(SDA 1 (i 255)) { i; } SCL 0; Delay(); } void IIC_stop() { SDA 0; Delay(); SCL 1; Delay(); SDA 1; Delay(); } void IIC_writebyte(unchar date) { unchar i, temp; temp date; for(i 0; i 8; i) { temp temp 1; SCL 0; Delay(); SDA CY; Delay(); SCL 1; Delay(); } SCL 0; Delay(); SCL 1; Delay(); } unchar IIC_readbyte() { unchar i, Data; SCL 0; Delay(); SDA 1; for(i 0; i 8; i) { SCL 1; Delay(); SDA 1; Data (Data 1) | SDA; SCL 0; Delay(); } Delay(); return Data; } EEPROM读写函数 void Write_add(unchar date, unchar address) { IIC_start(); IIC_writebyte(0xa0);  // 写入设备地址 IIC_respons(); IIC_writebyte(address);  // 写入存储地址 IIC_respons(); IIC_writebyte(date);  // 写入数据 IIC_respons(); IIC_stop(); } unchar Read_add(unchar address) { unchar datas; IIC_start(); IIC_writebyte(0xa0);  // 写入设备地址 IIC_respons(); IIC_writebyte(address);  // 写入存储地址 IIC_respons(); IIC_start(); IIC_writebyte(0xa1);  // 读取设备地址 IIC_respons(); date IIC_readbyte();  // 读取数据 IIC_stop(); return datas; } 显示函数 void display(unchar date) { Write_Com(0x80);  // 设置显示位置为第一行第一个字符 Write_data(dis_table[date/100]);  // 显示百位 Write_data(dis_table[date%100/10]);  // 显示十位 Write_data(dis_table[date%10]);  // 显示个位 } 主函数 void main() { unchar num, NUM; init(); IIC_init(); while(1) { if(button 0) {  // 检测按键按下 DelayMs(10);  // 消抖 if(button 0) { num Read_add(0x00);  // 读取当前计数值 num; if(num 255) num 0;  // 限制计数值在0-255范围内 Write_add(num, 0x00);  // 将新值写入EEPROM } while(button 0);  // 等待按键释放 } NUM Read_add(0x00);  // 读取当前计数值 display(NUM);  // 显示计数值 } } 六、实验步骤 按照电路连接图连接好硬件电路将编译好的程序烧录到89C51单片机中接通电源观察LCD1602显示初始计数值应为0按下按键观察计数值增加断电后重新上电观察计数值是否保持断电前的值 七、实验结果与分析 实验结果 系统上电后LCD1602显示初始计数值0每次按下按键计数值增加1当计数值达到255后再按一次按键计数值变为0断电后重新上电计数值保持断电前的值 结果分析 系统能够正确读取和写入EEPROM中的数据实现了断电记忆功能按键消抖处理有效避免了按键抖动导致的误计数LCD1602显示正常能够实时显示当前计数值计数值范围限制在0-255之间符合设计要求 八、实验总结 通过本次实验我掌握了以下知识和技能 89C51单片机的基本编程方法I2C总线协议及其在单片机中的应用AT24C02 EEPROM的使用方法LCD1602液晶显示模块的编程和显示控制按键消抖处理的方法 实验中遇到的问题及解决方法 问题初始上电时LCD显示乱码 解决检查发现LCD初始化时序不正确调整延时后解决问题按键按下时计数值多次增加 解决增加按键消抖处理并在按键按下后等待释放问题断电后重新上电计数值不记忆 解决检查EEPROM读写函数发现I2C时序不正确调整后解决 九、实验要求 可以增加减计数功能通过另一个按键实现可以增加清零功能通过长按按键实现可以优化I2C通信的延时函数提高通信效率可以增加计数值范围限制的提示信息
http://www.w-s-a.com/news/375137/

相关文章:

  • 用什么做网站后台的织梦网站怎么上传
  • 怎么获取网站数据做统计百度快照推广有效果吗
  • 淘宝领卷网站什么做制造网站开发
  • 如何做com的网站网站建设投标书模板
  • 郑州网络营销网站优化网站技术方案怎么写
  • 济南市住房和城乡建设局网站wordpress mnews主题
  • ios开发网站app网站建设企业有哪些方面
  • 网站主页 优帮云深圳代做网站后台
  • app 与网站网站建设要做什么
  • 厦门国外网站建设公司郑州核酸点推vip服务
  • 免费网线seo外链怎么做
  • 宽带技术网网站wordpress widget hook
  • 山西省住房和城乡建设厅网站报名wordpress添加标签插件
  • 网站怎么自己做外贸网站案例
  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新