欢迎来到工友文库! | 帮助中心 工友共享,造福你我!
工友文库
全部分类
  • 行业文库 >
    行业文库
    行业标准 农林牧渔 能源矿业 电力热力 水利环境 材料技术 地理测绘 建筑工程 机械工程 制造加工 交通物流 网络计算 电气机电 信息通讯 汽车行业 航空航天 船舶工程 光电工程 住宿餐饮 财会金融 房地产业 城建规划 装饰装修 家电维修 电商行业 租赁商务 批发零售 居民服务 教育服务 医药卫生 体育行业 公共管理 图书管理 外语翻译 休闲旅游 文艺传媒 其他行业
  • 商业文档 >
    商业文档
    企业计划 工程管理 广告经营 财务报表 物业管理 质控管理 企业文化 绩效管理 商务礼仪 创业孵化 市场营销 经营企划 销售管理 营销创新 资本运营 招商加盟 合同协议 信息管理 励志材料 人事档案 员工关系 薪酬管理 招聘面试 其它文档
  • 办公文书 >
    办公文书
    统计图表 总结报告 演讲致辞 心得体会 述职报告 工作计划 解决方案 调研报告 事务文书 经验事迹 往来文书 规章制度 申请范文 求职简历 活动策划 会议纪要 党建材料 软件教程 其他文书
  • PPT模板库 >
    PPT模板库
    扁平风格 创意新颖 动画效果 动态模板 简约风格 静态模板 环保绿色 卡通风格 立体风格 欧洲风格 手绘风格 创意黑板 相册风格 星空风格 炫酷科技 中国风格 医疗风格 高端商务 工作常用 总结报告 毕业答辩 节日庆典 公益风格 化妆美容 婚礼策划 餐饮美食 培训课件 融资路演 商业策划 英文模板 党政机关 述职竞聘
  • 小学初中 >
    小学初中
    幼儿教育 小学语文 小学数学 小学英语 初中语文 初中数学 初中英语 初中物理 初中化学 初中地理 初中生物 初中政治 初中历史 思想品德 小学竞赛 初中竞赛 其他学科
  • 高中教育 >
    高中教育
    高中语文 高中数学 高中英语 高中物理 高中化学 高中生物 高中地理 高中政治 高中历史 高考资料 高中竞赛 其他学科
  • 高等教育 >
    高等教育
    基础课 艺术类 哲学类 体育类 水利类 测绘类 法学类 历史学 社会学 心理学 教育学 政治学 统计学 房地产 语言文化 生物科学 医药卫生 天文气象 地理科学 环境科学 系统科学 材料科学 机械仪表 图书档案 土建工程 海洋工程 轻工纺织 工程力学 能源动力 光电工程 电力技术 市政工程 财会金融 工商管理 语言文学 广播影视 公安司法 汽车汽修 交通运输 水产加工 植物生产 森林资源 动物科学 食品加工 餐饮旅游 公共事业 新闻传播学 农林业工程 城镇规划管理 水文与水资源 地矿及资源勘查 航空航天与武器 管理科学与工程 农林业经济管理 机电设备及自动化 计算机与信息科学 大学生竞赛资料
  • 执业资格考试 >
    执业资格考试
    财会类考试 建筑类考试 外贸类考试 外语类考试 医药类考试 管理类考试 公务员类考试 司法法律考试 教师资格考试 计算机类考试 公共服务类考试 其他资格证考试
  • 一线采风 >
    一线采风
    一线新闻 事迹宣传 工友作品
  • 教育视频 >
    教育视频
    幼儿教育视频 小学教育视频 初中教育视频 高中教育视频 大学教育视频 C#自学视频教程 软件视频教程 英语视频教学 其他教学视频
  • 换一换
    首页 工友文库 > 资源分类 > DOCX文档下载
     

    基于51单片机的“扫地机器人”设计报告.docx

    • 资源ID:3392       资源大小:698.96KB        全文页数:41页
    • 资源格式: DOCX        下载权限:注册会员/VIP会员    下载费用:2金币 【人民币2元】
    下载资源需要2金币 【人民币2元】
    已注册用户请登录:
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

    基于51单片机的“扫地机器人”设计报告.docx

    华南理工大学 第十二届智能控制设计大赛初级组之 基于51单片机的“扫地机器人”设计报告 队长***** 队员***** 目录 一、设计要求3 1.基本要求3 2.拓展要求3 二、设计思路3 三、方案比较3 1、洞洞板的选择3 2、芯片的选择3 3、单片机键盘的选择3 4、LCD的选择4 5、电源的选择4 6、储存模块的选择4 7、时钟模块的选择4 8、最终选用方案4 四、一些模块的选择及底盘制作4 1、电机驱动模块4 2、红外传感器模块5 3、循迹模块5 4、底盘的制作5 五、设计与论证6 程序流程图6 六、理论分析与计算6 1、基础设想分析6 2、整体框架分析7 3、独立键盘检测分析7 4、LCD12864显示理论分析7 5、算法计算分析7 七、电路原理图8 1、电路图8 2、相关设计文件8 八、测试方法和仪器9 1、测试方法9 2、测试仪器9 九、测试数据及结果分析10 1、测试数据10 2、结果分析,与比赛要求的符合程度12 附录13 一、设计要求 1. 基本要求 1 设计扫地机器人,自主完成前进、后退、转向等控制; 2 实现避障功能,能自主走完一个用围墙围起 来2m*2m的区域; 3 设计简易扫地装置,能够清扫小纸团; 2. 拓展要求 1 设计良好的人机界面,用于设置开启时间,显示电量等; 2 能够清扫更小的垃圾,如纸屑; 3 清扫之后能够回到用黑胶布围成的30cm*30cm的起点区域; 4 其他拓展功能。 二、设计思路 基于51单片机实现通过对按键的操作改变LED人机交互界面上显示的时间参数实现对“扫地机器人”的操作。 三、方案比较 1.洞洞板的选择 1锡板(绿色)锡板质量好,焊接过程容错率高,不易变形,加个较高。 2铜板(黄色)铜板质量相对较差,不容易上锡,在高温下铜圈容易掉落,易变形,加个相对便宜。 2.芯片的选择 STC89C52RC 芯片优点 ①相对于51版本单片机,52单片机多出了一个定时器及128字节RAM,flash储存多出4K。 ②操作简单试用于初学者 ③可查找资料多,与51单片机完全兼容 ④价格相对比较便宜并且购买渠道多 ⑤支持ISP下载,比较方便 ⑥具有EEPROM功能 STC12C5A60S2 芯片优点 ①拥有C52的全部功能 ②带有AD,PWM功能,多了两个定时器 ③Flash存储空间达60K ④在相同晶振下,运行速度是51的8到12倍 ⑤中断可自定义优先级 3.单片机键盘选择 1矩阵键盘在需要较多的按键时,矩阵键盘需要的IO口相对少 2独立键盘在需要较少按键时,独立键盘优势大,若在需要较多的按键时,独立键盘消耗的IO口多 4.LCD的选择 面向初学者来说LCD主要分为两种,1602和12864 11602能够显示简单的字符,操作简单,屏幕相对较小,能够显示的信息数量有限 212864能够显示简单字符也可以显示自定义的图片,操作相对困难,屏幕相对较大 能够显示较多的信息。 5. 电源的选择 18650锂电池输出电压高,约为3.7v,负载能力强,能够驱动电机驱动模块和单片机和各模块。只需要两块电池。可充电,比较环保。价格相对较高。 普通干电池输出电压较低,负载能力较低,要驱动电机驱动模块需要5块1.5v干电池,一般不能充电,调试过程易造成浪费。价格相对较便宜。 升压模块能将3-5伏的电压升到12伏或更高,但是性能越好的价格越高,性能较低的承受电流不能过大。 6.储存模块的选择 1单片机自带EEPROM使用方便,可以节省IO口,操作简单 2AT24C02擦除写入速度快,可擦写次数达100万次,数据可保存达100年,功耗低 7.时钟模块的选择 (1)DS1302操作简单,IO口占用少,基础电路简单,可自行焊接 (2)DS12C887芯片集成度高,不需要外部基础电路,焊接方便,但IO占用多 8.最终选择方案 基于设计思路,由小组成员讨论决定选择同时选用锡板和铜板(降低开支的同时,保证焊接稳定),鉴于使用模块较多IO口不足的问题同时选用STC89C52RC芯片和STC12C5A60S2芯片,独立键盘(只需要4个功能按键,IO口占用与矩阵键盘相同,且矩阵键盘的焊接难度大),12864(根据需要显示的功能选择),单片机自带EEPROM(节省IO口,同时降低操作难度),选用电源为18650锂电池(输出电压较为稳定,且可以充电,环保实用),选用DS1302(降低操作难度,节省IO口)。 四、一些模块的选择及底盘的制作 1.电机驱动模块 采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。我们采用现成的封装好的电机驱动模块,能将6-12伏的电压转化为5伏电压输出,给单片机和其他模块供电,操作简单功能强大。 2.红外传感器模块 该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理之后,指示灯会亮起,同时信号输出接口输出一个低电平信号,可通过电位器旋钮调节检测距离,有效距离范围 2~30cm,工作电压为3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点。 3.寻迹模块 TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮 4.底盘的制作 利用废弃的硬纸盒,通过钻孔来固定各个模块和轮子,同时也能将各种杜邦线和电路板包含在盒子里面,达到外形美观和节约材料变废为宝的目的。 五、设计与论证 程序流程图 六、理论分析与计算 1.基础设想分析 1单片机间的控制 由于是基于人机交互界面控制的扫地机器人,故可由两个单片机控制不同的模块(STC12C5A60S2控制显示模块,STC89C52RC控制小车模块)。STC12IO口与STC89IO口相连,由显示模块(STC12)输出信号,小车模块(STC89)接受信号,从而实现单片机间的控制。 2背光灯及小车车轮控制 由STC12IO口输出一定的PWM信号,可调节背光灯的亮度。由STC89控制电机驱动输出PWM信号小车电机转速,同时可通过对车轮输出不同的PWM信号实现车轮转速不同而实现小车的转向,可对电机驱动输入不同的使能信号使其电机实现正反转动,从而实现小车的前进后退。 3小车的避障功能 通过红外传感器测距,当红外传感器与障碍物距离缩短到一定距离时,红外传感器会给单片机传输一个电信号,单片机识别电信号后可控制小车转向,从而避开障碍物。 4扫地装置 通过电机驱动控制两个带毛刷电机以一定速度反向转动,将毛刷经过的区域的垃圾扫进小车底部设计的简易垃圾收集装置 5电量检测与显示 设计一简单的外围电路,通过STC12自带的AD功能,可实现对电池电压的检测。再通过电池电压与容量的简易关系,设计简易程序实现在12864固定区域显示。 6时间显示 单片机对外部时钟芯片的数据进行读取,同时设置开启时间(ON)停止时间(OFF),通过单片自带EEPROM储存ON、OFF时间数据,再通过LCD12864显示。 7返回出发点 通过循迹模块对地面进行识别,若识别到黑线即会输出电信号,单片机识别电信号后行走一小段时间后便停止行动 2.整体框架分析 1主程序main函数开始执行初始化,初始化LCD等外部硬件,在LCD上显示固定数据 2进入while循环重复扫描按键,时间比较,显示电量,背光选择。 3.独立键盘检测分析 按键与GND相连,一旦按键被按下单片机便会接受到一个低电平信号。由于单片机执行速度快,故按下按键的同时,单片机几乎同时执行按键扫描函数,对来自IO口的电平信号进行分析 。 4.LCD12864显示理论分析 初始化函数显示液晶屏固定显示部分,使用LCD自带字库,使现实速率提高,再通过对外部时钟数据进行读取,按键扫描程序数据更改的读取,局部改变液晶屏上数据的显示。因LCD的执行速度很快,人眼存在视觉停留效果,故改变数据时,人不易察觉到这一过程。 5.算法计算分析 1更改时间DS1302对时间数据的存储是16进制,故读取时钟数据时需将其转化为10进制再分别取时分秒的十位数和个位数,分别显示在LCD上。因此,在对DS1302时钟数据的更改时需将更改的时钟数据改变为16进制再进行储存。 2电量显示通过STC12的AD串口对电压进行读取(此时读取的电压值为电源电压的一半),再将读取的数据乘以2即得电源的电压值。再通过对电压与电源电路的简易关系,判断电压属于哪个范围即显示相应的剩余电量。 七、电路原理图 STC12C5A60S2 八、测试方法和测试仪器 1、测试方法 1 通过调节红外传感器模块上的可调电阻,调节模块的灵敏度,使其在一定距离下输出低电平。表现为红外传感器指示灯亮起 2 通过LCD显示AD串口检测到的电压,同时用万用表检测电源两端的输出电压,观察读取数据是否准确。 3通过调节PWM,调节旋转电机(扫地用)转速,使其能够较好的清扫垃圾, 观察其是否能达到预估效果 4通过调节PWM。调节行走电机的转速,使其实现转向,观察其是否能达到预估效果 5通过给电机驱动模块输入使能信号,控制行走电机转向,使其实现前行和后退, 观察其是否能达到预估效果 6根据需要的功能设计程序,观察其在LCD上是否能够按预想状况进行 2、测试仪器万用表 九、测试数据与结果分析 1、测试数据 要求 测试内容 测试前 测试后 备注 基本要求1 设计扫地机器人,自主完成前进、后退、转向等控制 前进 通过观测可知(能够前进) 后退 通过观测可知(能够后退) 转向 通过观测可知(能够转向) 基本要求2 实现避障功能,能自主走完一个用围墙围起 来2m*2m的区域 避障 通过观测可知(能够避障) 自主走完一个用围墙围起来2m*2m的区域 通过观测可知(能够走完待清扫区域) 基本要求3 设计简易扫地装置,能够清扫小纸团 清扫小纸团 通过观测可知(能够清扫小纸条,部分有较小几率弹出垃圾收集装置 拓展功能1 设计良好的人机界面,用于设置开启时间,显示电量等 设置时间 为设置时间标志,ho,mi,se分别为时分秒设置标记 设置开启时间 为设置时间标志,ho,mi,se分别为时分秒设置标记 设置关闭时间 为设置时间标志,ho,mi,se分别为时分秒设置标记 显示电量 拓展功能2 能够清扫更小的垃圾,如纸屑 清扫更小的垃圾 通过观测可知能够清扫较小纸屑 拓展功能3 清扫之后能够回到用黑胶布围成的30cm*30cm的起点区域 回到起点 通过观测可知(能够回到起点) 其他拓展功能 设置LCD背光亮度 设置LCD背光亮度 测试前为直接接上电源后LCD背光灯亮度(亮度太大,耗能高,刺眼) 2、结果分析 基本要求 完成情况 1 设计扫地机器人,自主完成前进、后退、转向等控制 完成 2 实现避障功能,能自主走完一个用围墙围起 来2m*2m的区域 完成,小车在检测到前方障碍物时会自行转向 3 设计简易扫地装置,能够清扫小纸团 完成,通过两个反向旋转毛刷可以将小纸团收集进自制简易垃圾收集装置 拓展功能 1 设计良好的人机界面,用于设置开启时间,显示电量等 完成,可以显示实时时间,开启时间,关闭时间,电量。并可通过按键调节时间数据 2 能够清扫更小的垃圾,如纸屑 完成,通过调试旋转毛刷的转速可以实现更小垃圾的清扫 3 清扫之后能够回到用黑胶布围成的30cm*30cm的起点区域 完成,当达到关闭时间后,小车弱检测到黑色胶布传送的深色信号时将自动前进一小段距离便停止 4 设置LCD背光亮度、开关机动画 完成 附录 includereg52.h includeintrins.h define uchar unsigned char define uint unsigned int define RdCommand 0 x01 //定义ISP的操作命令 define PrgCommand 0 x02 define EraseCommand 0 x03 define Error 1 define Ok 0 define WaitTime 0 x01 //定义CPU的等待时间 define ADC_POWER 0 x80 //ADC power control bit define ADC_FLAG 0 x10 //ADC complete flag define ADC_START 0 x08 //ADC start control bit define ADC_SPEEDLL 0 x00 //420 clocks define FOSC 11059200L define BAUD 9600 sbit LCD_PSBP30; sbit LCD_ENP31; sbit LCD_WRP32; sbit LCD_RSP33; sbit SCLKP34; sbit SDAP35; sbit RSTP36; sbit keyP20; sbit s1P24; sbit s2P25; sbit s3P26; sbit s4P27; sfr ISP_DATA0 xc2; sfr ISP_ADDRH0 xc3; sfr ISP_ADDRL0 xc4; sfr ISP_0 xc5; sfr ISP_TRIG0 xc6; sfr ISP_CONTR0 xc7; sfr ADC_CONTR 0 xBC; sfr ADC_RES 0 xBD; sfr ADC_LOW2 0 xBE; sfr P1ASF 0 x9D; sfr CCON 0 xD8; sbit CCF0 CCON0; sbit CCF1 CCON1; sbit CR CCON6; sbit CF CCON7; sfr CMOD 0 xD9; sfr CL 0 xE9; sfr CH 0 xF9; sfr CCAPM0 0 xDA; sfr CCAP0L 0 xEA; sfr CCAP0H 0 xFA; sfr CCAPM1 0 xDB; sfr CCAP1L 0 xEB; sfr CCAP1H 0 xFB; sfr PCAPWM0 0 xf2; sfr PCAPWM1 0 xf3; uchar count; char miao,shi,fen; char nshi,nfen,nmiao,fshi,ffen,fmiao; uchar s1num,s2num; uchar code table[] ON 000000; uchar code table1[]扫地机器人 ; uchar code table2[] OFF 000000; uchar code table3[] TIME 000000; void InitUart; void InitADC; void SendDatauchar dat; int GetADCResultuchar ch; void Delayuint n; void ShowResultuchar ch; float Ad_AVuchar channel;//计算AD转换电压值 void delayusuint z; void delaymsuint z; void Q0void; void ccuint addr; void xcxuint addr,uchar dat; uchar dcxuint addr; void write_comuchar command; void write_dateuchar date; void ds1302writebyteuchar dat; uchar ds1302readbyte; uchar ds1302readuchar ; void ds1302writeuchar , uchar dat ; //初次初始化ds1302使用 //void init_ds1302void; void init; void keyscan;//设置时钟,开启时间,结束时间 //void di; //蜂鸣器报警 void clock; void compare; void powershow; void showint x,int y; void show1int x; void pwmuchar x; void beiguang; void main { init; while1 { keyscan; clock; compare; powershow; beiguang; } } void beiguang { ifs1num0 { ifs20 {pwm255;} ifs30 {pwm128;} ifs40 {pwm256;} } } void pwmuchar x { CCON 0; CL 0; CH 0; CMOD 0 x02; CCAP0H CCAP0L x; CCAPM0 0 x42; CR 1; } float Ad_AVuchar channel//计算AD转换电压值 { float VAL_AV0; uchar num; fornum100;num0;num-- { VAL_AVGetADCResultchannel; } VAL_AV/100.0; VAL_AV*2.0; VAL_AVVAL_AV*5.0/1024; return VAL_AV; } void powershow //显示电量 { float dianya; dianyaAd_AV1; ifdianya7.16 {show10;} else ifdianya7.18 {show11;} else ifdianya7.22 {show13;} else ifdianya7.26 {show15;} else ifdianya7.28 {show18;} else ifdianya7.3 {show1,0;} else ifdianya7.32 {show1,2;} else ifdianya7.38 {show1,5;} else ifdianya7.40 {show1,8;} else ifdianya7.42 {show2,0;} else ifdianya7.44 {show2,5;} else ifdianya7.450523 {show2,8;} else ifdianya7.46 {show3,0;} else ifdianya7.47108 {show3,3;} else ifdianya7.48 {show3,5;} else ifdianya7.50 {show3,8;} else ifdianya7.52 {show4,0;} else ifdianya7.53 {show4,2;} else ifdianya7.54 {show4,5;} else ifdianya7.58 {show5,0;} else ifdianya7.62 {show5,5;} else ifdianya7.65 {show5,8;} else ifdianya7.68 {show6,0;} else ifdianya7.71 {show6,3;} else ifdianya7.74 {show6,5;} else ifdianya7.77 {show6,7;} else ifdianya7.80 { show7,0;} else ifdianya7.835 {show7,3;} else ifdianya7.86 {show7,5;} else ifdianya7.895 {show7,7;} else ifdianya7.94 {show8,0;} else ifdianya8.00 {show8,2;} else ifdianya8.06 {show8,5;} else ifdianya8.10 {show8,7;} else ifdianya8.16 {show9,0;} else ifdianya8.20 {show9,2;} else ifdianya8.24 {show9,5;} else ifdianya8.28 {show9,7;} else ifdianya8.30 {show9,9;} else ifdianya8.30 { write_com0 x806; write_date0 x301; write_date0 x300; write_date0 x300; write_date; } } void showint x,int y { write_com0 x806; write_date ; write_date0 x30x; write_date0 x30y; write_date; } void show1int x { write_com0 x806; write_date ; write_date ; write_date0 x30x; write_date; } void delayusuint z { uint x,y; forxz;x0;x-- fory10;y0;y--; } void delaymsuint z //延时 { uint x,y; forxz;x0;x-- fory110*3;y0;y--; } void Q0void { ISP_CONTR0; ISP_0; ISP_TRIG0; ISP_ADDRH0X80; ISP_ADDRL0; } void ccuint addr { ISP_CONTR0X82; ISP_0X03;//eeprom擦除使能 ISP_ADDRLaddr; ISP_ADDRHaddr8; EA0; ISP_TRIG0X5A; ISP_TRIG0XA5; delayus1; Q0;//关闭ISP,IAP } void xcxuint addr,uchar dat { ISP_CONTR0X82; ISP_0X02; ISP_ADDRLaddr; ISP_ADDRHaddr8; ISP_DATAdat; EA0; ISP_TRIG0X5A; ISP_TRIG0XA5; delayus1; Q0;//关闭ISP,IAP } uchar dcxuint addr { uchar dat; ISP_CONTR0X82; ISP_0X01; ISP_ADDRLaddr; ISP_ADDRHaddr8; EA0; ISP_TRIG0X5A; ISP_TRIG0XA5; delayus1; datISP_DATA; Q0; return dat; } void write_comuchar command //写指令到12864 { LCD_RS0; LCD_WR0; LCD_EN0; P0command; delayms5; LCD_EN1; delayms5; LCD_EN0; } void write_dateuchar date //写显示数据到12864 { LCD_RS1; LCD_WR0; LCD_EN0; P0date; delayms5; LCD_EN1; delayms5; LCD_EN0; } void ds1302writebyteuchar dat { uchar i; SCLK0; delayms1; fori0;i8;i { SDAdat0 x01;//取最低位,ds1302从最低位开始传输 delayus2; SCLK1; delayus2; SCLK0; dat1;//数据右移一位 } } uchar ds1302readbyte { uchar i,dat; delayms1; fori0;i8;i { dat1;//要返回的数据左移一位 ifSDA1 dat|0 x80;//要传输数据的当前值置为 1,若不是则为0 SCLK1; delayus2; SCLK0; delayus2; } return dat; } uchar ds1302readuchar { uchar dat; RST0;//初始CE先置0 SCLK0;//初始时钟线置0 RST1;//CE置1,传输开始 ds1302writebyte;// 传输命令字,要读取的时间 datds1302readbyte;// 读取要得到的时间 SCLK1;//时钟线拉高 RST0; return dat; } void ds1302writeuchar , uchar dat { RST0; SCLK0; RST1; ds1302writebyte; ds1302writebytedat; SCLK1;//时钟线拉高 RST0; } //初次初始化ds1302使用 //void init_ds1302void //{ //ds1302write0 x8e,0 x00; //ds1302write0 x80,0 x00;// 初始秒值为0 //ds1302write0 x82,0 x21; //ds1302write0 x84,0 x19;//初始为24小时模式 初始时间为0点 //ds1302write0 x86,0 x25; //ds1302write0 x88,0 x12; //ds1302write0 x8a,0 x10; //ds1302write0 x8c,0 x06; //ds1302write0 x90,0 x01;//充电 //ds1302write0 xc0,0 xf0;//初始化标志 //ds1302write0 x8e,0 x80; //} void init { uchar num; pwm128; //init_ds1302; //初次初始 LCD_PSB1; //12864初始化 write_com0 x30; delayms3; write_com0 x0C; delayms3; write_com0 x01; delayms3; TMOD0X01; TH065536-50000/256; TL065536-50000256; EA1; ET01; TR01; write_com0 x80;//固定显示部分 fornum0;num16;num { write_datetable1[num]; delayus50; } write_com0 x90; fornum0;num16;num { write_datetable3[num]; delayus50; } write_com0 x88; fornum0;num16;num { write_datetable[num]; delayus50; } write_com0 x98; fornum0;num16;num { write_datetable2[num]; delayus50; } } void keyscan//设置时钟,开启时间,结束时间 { ifs10 { delayms1; ifs10; { s1num; } switchs1num//显示调节 { case 1 write_com0 x90; write_date0 x7e; delayms1; write_com0 x88; write_date ; delayms1; write_com0 x98; write_date ; delayms1; break; case 2 write_com0 x90; write_date ; delayms1; write_com0 x88; write_date0 x7e; delayms1; write_com0 x98; write_date ; delayms1; break; case 3 write_com0 x90; write_date ; delayms1; write_com0 x88; write_date ; delayms1; write_com0 x98; write_date0 x

    注意事项

    本文(基于51单片机的“扫地机器人”设计报告.docx)为本站会员(admin)主动上传,工友文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知工友文库(发送邮件至gydoc@qq.com或直接QQ联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    copyright@ 2019-2022 工友文库网站版权所有
    经营许可证编号:鲁ICP备19032292号-1


    1
    收起
    展开