电动遥控百叶窗设计毕业设计


    编号:





     毕业设计说明书







    题 目: 电动遥控百叶窗






















    着传感技术日新月异发展产品功智化逐渐成熟动化控制成提高资源利率关键
    着电子技术飞速发展微电子技术越越应时影响着生活工作方方面面动窗控制系统历逐步丰富功性发展文描述种根红外线遥控动窗控制系统实现原理程
    单片机高性高性价低电压低功耗等系列优点直迅猛发展范围推广广泛应领域方面次设计单片机核心加器件设计电路实现百叶窗控制
    文介绍种基STC89C52单片机红外遥控步进电机设计系统分红外遥控编解码LCD显示驱动步进电机三模块设计系统通遥控器控制步进电机步进电机状态通LCD液晶模块实时显示出直观出步进电机运行状态报告该系统工作原理硬件电路软件进行详细介绍
    该系统实性强操作简单扩展性强
    关键词:红外遥控 LCD显示 步进电机





















    Abstract

    With the sensor technology changes with each passing daythe intelligence of product features become more matureand automation is the key to improving resource utilization
    With the rapid development of electronic technology microelectronic technology has been applied more and more at the same time affected our lives in all aspects of the workAutomatic window control system has experienced from scratch and gradually the development of rich functionality and reliabilityThis paper will describe is a kind of according to the infrared remote control to the automatic window control system principle and process
    Single chip for its high reliability costeffective low voltage low power consumption and a series of advantages has been the rapid development and promotion of largescale widely used in various areas of theThe design is based on single chip as the core combined with other devices circuit design to realize the shutter control
    The paper introduced one kind based on the STC89C52 singlechip infrared remote control stepper motor design the system is divided into infrared remote control coding and decoding LCD display and drive a stepper motor three modules design of the system can be controlled by a remote control stepper motor and the stepper motor state through the LCD module of realtime display enable people to directly see the stepping motor running stateThe report on the work principle of the system the hardware circuit and software are introduced in detail
    The intelligent irrigation system has energysavinghigh efficiency and low costthe system has great practical space in different place
    The system has strong practicability simple operation strong expansibility
    Key words:Micro controller Humidity sensor Temperature sensor The real time controls







    目 录

    引言 ……………………………………………………………………1
    Ⅰ 务求总体设计方案 ………………………………………2
    11 设计务求…………………………………………………………………2
    12 总体设计方案 …………………………………………………………………2
    121 硬件设计方案 ………………………………………………………………2
    1211 系统硬件设计方案 ………………………………………………………2
    1212 百叶窗制作设计方案 ……………………………………………………4
    122 软件设计方案 ………………………………………………………………5
    Ⅱ 系统硬件电路设计 ………………………………………………5
    21 单片机控制模块 ……………………………………………………………5
    211 单片机方案选择 ……………………………………………………………5
    212 STC89C52芯片功介绍 …………………………………………………5
    213 单片机控电路设计 ……………………………………………………7
    22 红外发射模块电路设计分析 …………………………………………………8
    221 uPD6121G红外发射器部结构工作原理 ……………………………8
    222 红外发射模块硬件接口电路 ………………………………………………11
    23 红外接收模块电路设计分析 …………………………………………………11
    231 VS1838B红外接收器部结构工作原理 ………………………………11
    232 红外接收模块硬件接口电路 ………………………………………………13
    24 液晶显示模块电路设计分析 …………………………………………………14
    241 LCD1602液晶显示器部结构工作原理………………………………14
    242 液晶显示模块硬件接口电路………………………………………………16
    25 电机驱动模块电路设计分析………………………………………………16
    251 ULN2003A晶体部结构工作原理……………………………………16
    252 28BYJ48减速步进电机部结构工作原理……………………………17
    253 电机驱动模块硬件接口电路………………………………………………19
    26 电源模块电路设计分析………………………………………………………19
    Ⅲ 百叶窗实体设计 …………………………………………………20
    Ⅳ 系统软件设计 ……………………………………………………20
    41 程序流程设计 ………………………………………………………………20
    42 执行功模块 ………………………………………………………………22
    421红外解码中断判断程序流程设计……………………………………………22
    4211红外解码流程函数………………………………………………………22
    4212红外解码功码提取函数………………………………………………23
    4213红外解码功码判断函数…………………………………………………24
    422 电机驱动程序流程设计……………………………………………………25
    423 LCD显示程序流程设计 …………………………………………………27
    Ⅴ 系统调试 ………………………………………………………28
    51 硬件电路调试 …………………………………………………………………28
    52 软件程序调试 …………………………………………………………………29
    Ⅵ 结 ………………………………………………………………31
    谢辞 ……………………………………………………………………32
    参考文献 ……………………………………………………………33
    附录 ……………………………………………………………………34



















    引言
    着类社会发展生活质量求越越高种样改善居环境设备研制开发出生活中次设计实现基单片机全动窗类应
    次设计实现电动遥控窗实际智家居方面智家居称智住宅国外常Smart Home表示智家居含义似家庭动化电子家庭数字家园家庭网络网络家居智家庭建筑国香港台湾等区数码家庭数码家居等称法
    智家居住宅台利综合布线技术网络通信技术安全防范技术动控制技术音视频技术家居生活关设施集成构建高效住宅设施家庭日程事务理系统提升家居安全性便利性舒适性艺术性实现环保节居住环境智家居居住环境住宅台安装智家居系统居住环境实施智家居系统程称智家居集成
    做智家居方面电动遥控窗然形势紧扣目前唱绿色节谐居题仅起节减排效果更生活带极舒适便利
    年欧洲北美日韩区住宅窗体产品启闭方式已开始动化方发展德国诺托意利图兰朵韩国LG等均动化窗体生产中国动化窗体正逐步重视仅种进口动窗动开窗器出现中国市场国实力较强公司开发产品具备完全知识产权技术先进功完善国产动窗逐步成国市场体越越动窗体应种建筑中 动窗刚刚发展起新产品没形成成熟稳定行业尚未形成统行业标准规范目前市场动窗产品方面差异非常数产品算成熟完善动窗
    次电动遥控百叶窗设计采基单片机红外遥控步进电机实现基单片机红外遥控技术种线 非接触控制技术具抗干扰力强信息传输功耗低成低易实现等显著优点诸电子设备特家电器广泛采越越应计算机系统中文介绍系统通红外遥控实现步进电机转速角位移控制通液晶显示器显示出
    设计采通遥控器发射码值红外接收电路接收信号送单片机外部中断0单片机接收信号通解码程序接收信号进行处理信号成相应码值处理信号控制步进电机正转反转加速减速启动停止LCD显示出
    1 务求总体设计方案
    11 设计务求
    百叶窗已成现代家居组成行设计百叶窗卷帘控制系统遥控实现百叶窗开关闭
    1行设计百叶窗卷帘结构设计窗户
    2遥控实现卷帘开闭
    3卷帘开合三种速度模式:快速中速慢速三种模式遥控实现
    4电动遥控式百叶窗结构简单整体美观方
    12 总体设计方案
    动窗设计思想 利红外遥控器窗帘两电机(控制百叶窗窗帘控制百叶窗叶片闭合)进行实时控制百叶窗窗帘拉起放叶片转动透光透光速度分快中慢三档)通LCD液晶显示器电机状态实时表示出监控电机运行
    整设计分6阶段完成:前期调查方案选择硬件设计软件设计系统调试撰写文档第阶段解目前国际国动窗领域现状功第二阶段技术方案角度充分解目前动窗般采方式实现选出种佳方案针该方案查找研究证组成部分选方案佳方案第三阶段学熟练掌握硬件设计程中单片机软件设计绘制选定方案图纸做出样机第四阶段学熟练掌握单片机程序开发软件编制动窗控制程序研究控制算法第五阶段调试前两阶段完成系统调试程中掌握系统调试方法验第六阶段完成整设计书面总结
    121 硬件设计方案
    1211 系统硬件设计方案
    系统种基STC89C52单片机红外遥控步进电机设计系统分红外遥控编码红外遥控解码LCD显示驱动步进电机四模块设计系统通遥控器控制步进电机步进电机状态通LCD液晶模块实时显示出直观出步进电机运行状态设计基单片机STC89C52控制核心通接收红外遥控码值解码识控制单片机步进电机发出指令控制转动外遥控器发出红外信号通红外体化接收头进行接收然接收信号送入STC89C51单片机INT0口通软件编程INT0口接收信号进行译码处理样根译出码字步进电机进行正反转 调速角度控制 译出码字值步进电机状态速度值角度值通LCD 显示出整系统划分红外线译码模块液晶屏显示模块步进电机控制模块等三模块三模块间通红外信号译码值进行联系系统原理框图图11示原理流程图图12示

    图11 系统原理框图

    图12 系统原理流程图
    (1) 红外发射模块电路方案设计
    方案:PT2262台湾普城公司生产种CMOS 工艺制造低功耗低价位通编解码电路IC然外部元器件少数达6位址码达531441种调试难度高造价成高
    方案二:NEC PD6112种NEC开发红外线IC市面IR讯号格式众NEC PD6112更种独特规格着越越普遍应越越厂商采NECIR格式进行产品开发
    红外发射模块中选择方案二
    (2) 红外接收模块电路方案设计
    方案:HS0038部集成强信号处理功部集成低通滤波电路抗干扰力较弱时需外部加滤波电路较麻烦
    方案二:VS1838B颗集接收电路调制解调电路带通滤波放电路控制电路体集成接收头外接滤波电路成低廉市场普遍
    红外接收模块中选择方案二
    (3) 电机驱动模块方案设计
    方案:L298N全桥电路里面ICL298N般配合L297NIC驱动双极性电机果双拍话相电流方交次正次反通电成较高次设计需太功
    方案二:ULN2003A达林顿阵列7输入输出放信号单片机输出TTL信号放驱动马达转动电流强度单片机普遍应成低廉
    电机驱动模块中选择方案二
    (4) 液晶显示模块电路方案设计
    方案:采普通数码显示功单显示信息量少连接电路复杂耗电量符合系统设计求
    方案二:LCD12864液晶然分辨绿率高成高设计LCD监控电机运行状态功必花费高成投入功模块
    方案三:LCD1602液晶显示显示字母数字显示分辨率16×16显示信息量限操作功简单功需太系统设计完全合适
    液晶显示模块选择方案三
    (5) 系统电源电路方案设计
    模块电源电路设计采LM2576开关型降压稳压器驱动3A电流负载够输出固定直流电压5V12V电路简单操作方便
    出单独制作电源复杂程度稳定性成问题考虑选择市场电源代节约时间节约成次设计中选择便利手机充电器电源代
    1212 百叶窗制作设计方案
    方案:琴键蜂巢式百叶窗:琴键式百叶窗页片呈水排列页面1英寸宽者更宽蜂巢式百叶窗两层层两种百叶窗种颜色厚度种选择
    方案二:竖式百叶窗:竖式百叶窗页面聚酯塑料铝木片非编结织物者叠层式织物宽度约34英寸竖直式百叶窗完全收边适合玻璃推拉门型窗子

    方案三:横式百叶窗:横式百叶窗页面般2英寸宽材质般木头铝片者聚酯塑料窄1英寸宽百叶窗左右两侧条带子带子中间绳子穿页片串结起带子颜色式样根需更换

    需电机拖动百叶窗窗体结构说疑需绳子拉动选择液晶显示模块选择方案三
    122 软件设计方案
    系统软件设计采C语言编程运Keil uVision2软件台进行编程编程查错通编程器STC_ISP_V480载程序(系统总设计程序附录4)
    硬件模块设计方式软件部分采取分模块编程通程序调子函数实现系统整软件功模块化结构形式程序编写调试控制变更方便便推广程控制象
    程序控制5部分子程序分红外解码程序码值判断程序电机驱动程序LCD显示程序程序初始化完成次循环执行述子程序分实现相应功
    2 系统硬件电路设计
    21 单片机控制模块
    211 单片机方案选择
    方案:选择Microchip公司PIC系列单片机
    PIC单片机种简单指令型单片机指令数量较少果汇编语言编写程序PIC中低档单片机中较麻烦需翻页性价高价格昂贵
    方案二:选择Atmel公司STC89C52单片机
    STC89C52低功耗高性八位CMOS单片机片含4k Bytes ISP(Insystem programmable)反复擦写1000次Flash读程序存储器器件采ATMEL公司高密度非易失性存储技术制造兼容标准MCS51指令系统80C51引脚结构功强微型计算机STC89C52许控制提供高度灵活低成解决办法
    单片机芯片选择方案二
    212 STC89C52芯片功介绍
    89C52INTEL公司MCS51系列单片机中基产品采ATMEL公司CMOS工艺技术制造高性8位单片机属标准MCS51HCMOS产品结合CMOS高速高密度技术CMOS低功耗特征基标准MCS51单片机体系结构指令系统属89C51增强型单片机版集成时钟输出计数器等更功适合类似马达控制等应场合89C52置8位中央处理单元256字节部数存储器RAM8k片程序存储器(ROM)32双输入输出(IO)口316位定时计数器5两级中断结构全双工串行通信口片时钟振荡电路外89C52工作低功耗模式通两种软件选择空闲掉电模式空闲模式冻结CPURAM定时器串行口中断系统维持功掉电模式保存RAM数时钟振荡停止时停止芯片功89C52PDIP(40pin)PLCC(44pin)两种封装形式引脚图图21示

    图21 AT89C52引脚图
    AT89C52单片机引脚功:
    (1)P0口——8位开漏极双IO口
    ① P0口作通IO口必须外接拉电阻作输出口引脚吸收8TTL灌电流作输入时首先应引脚置1
    ② P0口作外部程序存储器数存储器低八位址数总线复线该模式P0口含部拉电阻
    (2)P1口——8位准双IO口部含拉电阻
    ① P1作普通IO口输出缓器驱动4TTL负载作输入时先引脚置1片拉电阻抬高电P1口引脚外部负载拉低电通拉电阻提供拉电流
    ② 串行编程校验时P10MOSIP16OSIP17SCK分串行数输入输出移位脉引脚
    (3)P2口——准双口具通IO接口8位址总线输出
    ① P2口作输出口时驱动四TTL负载作输入口时先引脚置1部拉电阻提高高电负载低电通部拉电阻外输出电流
    ② 单片机系统外部扩展时P2端口输出高8位址线P0端口传送低8位址起组成16位址总线访问外部存储器操作断时P2端口作通IO接口
    (4)P3口——双重功8位准双端口
    P3口功端口作准双IO接口外位第二功P3端口条引脚均独立定义第功输入输出第二功P3端口驱动4TTL负载P3端口第二功表21示
    表21 单片机引脚功表
    端口引脚
    第二功
    P30
    RXD(串行输入口)
    P31
    TXD(串行输出口)
    P32
    INT0(外中断0)低电效
    P33
    INT1(外中断1)低电效
    P34
    T0(定时计数0)输入端
    P35
    T1(定时计数1)输入端
    P36
    WR(外部数存储器选通)
    P37
    RD(外部数存储器读选通)

    (5)XTAL1XTAL2——XTAL1片振荡器反相放器时钟发生器输入端XTAL2片振荡器反相放器输出端
    (6)RST——复位输入端高电效
    单片机振荡器工作时RST端维持两机器周期高电便实现复位操作单片机回复初始状态电时该引脚高电持续10ms保证效复位
    213 单片机控电路设计
    系统采核心器件STC89C52单片机4P口中P1 P2 P3部含拉电阻P0口部含拉电阻系统中P1口控制LCD液晶显示模块P0P2口控制步进电机驱动外部中断0(P32)接3收红外控制信号
    单片机复位电路设计STC89C52单片机复位引脚RST(全称RESET)出现2机器周期高电时单片机执行复位操作果RST持续高电单片机处循环复位状态STC89C52单片机提供电复位键复位两种方式系统中采键复位电路中C310uf16V电解电容R1阻值10K欧
    单片机时钟电路设计STC89C52提供外部时钟电路部时钟电路两种方式系统采12MHz晶振外部时钟电路方式晶振两端接230pf陶瓷电容两电容成晶振负载电容会影响晶振谐振频率输出幅度单片机控电路图图22示

    图22 单片机控电路图
    22 红外发射模块电路设计分析
    221 uPD6121G红外发射器部结构工作原理
    (1)uPD6121G红外发射器特性
    ①低压操作:径 233伏
    ②低电流消耗:1μ(机)
    ③定义代码:65536(外部二极电阻)
    ④数代码:
    ⑤μpd6121:32码(单输入)3码(双输入)扩充64码通选择引脚
    ⑦μpd61216122传输代码兼容(传输格式)μpd1913c1943g6102g6120 c
    ⑧引脚兼容:
    μpd6121g001引脚兼容μpd1943g(然电容电容连接振荡器引脚参数变化)
    标准产品(Ver I Ver II 二规格)
    (2) uPD6121G红外发射器引脚功
    CCS定义代码选择输入
    REM远程输出
    KI0KI7 键输入
    SELSEL 输入
    KIO0KIO7 键输入输出
    VDD 电源引脚
    LMP灯输出
    VSS 引脚
    OSCI OSC谐振器连接引脚 图23 uPD6121G 引脚图
    (3) uPD6121G红外发射器部结构

    图24 uPD6121G红外发射器部结构图
    (4)uPD6121G红外发射器工作原理
    日NECuPD6121G组成发射电路例说明编码原理发射器键遥控码发出键遥控编码种遥控码具特征:
    采脉宽调制串行码脉宽0565ms间隔056ms周期1125ms组合表示二进制0波形图25示脉宽0565ms间隔1685ms周期225ms组合表示二进制1波形图26示

    图25 二进制0波形 图26 二进制1波形
    述01组成32位二进制码38kHz载频进行二次调制提高发射效率达降低电源功耗目然通红外发射二极产生红外线空间发射图27示连发波形图28示

    图27 遥控信号波形图
    图28 遥控信号周期性波形图
    UPD6121G产生遥控编码连续32位二进制码组中前16位户识码区电器设备防止机种遥控码互相干扰该芯片户识码固定十六进制01H16位8位操作码(功码)反码UPD6121G额128种组合编码
    遥控器键周期性发出种32位二进制码周期约108ms组码身持续时间包含二进制01数约45~63ms间图28发射波形图
    键超36ms振荡器芯片激活发射组108ms编码脉108ms发射代码起始码(9ms)结果码(45ms)低8位址码(9ms~18ms)高8位址码(9ms~18ms) 8位数码(9ms~18ms)8位数反码(9ms~18ms)组成果键超108ms未松开接发射代码(连发代码)仅起始码(9ms)结束码(25ms)组成
    代码格式(接收代码准接收代码发射代码反)

    图29 位定义图 图210 单发代码模式图 图211 连发代码格式图
    注:代码宽度算法:
    16位址码短宽度:112×1618ms 16位址码长宽度:224ms×1636ms
    已知8位数代码8位反代码宽度变:(112ms+224ms)×827ms ∴ 32位代码宽度(18ms+27ms)~(36ms+27ms)
    ⑴ 解码关键识01位定义发现01均056ms低电开始高电宽度0056ms1168ms必须根高电宽度区01果056ms低电开始延时056ms读电低说明该位0反1起见延时必须056ms长超112ms否果该位0读已位高电取(112ms+056ms)2084ms般取084ms左右均
    ⑵ 根码格式应该等9ms起始码45ms结果码完成读码
    222 红外发射模块硬件接口电路
    设计HY3L26C3L26D 型红外遥控发射器555定时器组成脉方波发射器驱动放器红外发光二极等元件组成脉发生器输出脉方波信号R3 加VT1 基极脉信号波形高电1时VT1 饱导通VT2 导通驱动发光二极LED1 发出见光表示发射电路工作红外发光二极LED2 发出红外光脉信号波形呈低电0时VT1VT2 均导通LED2发光样实现红外光脉发射LED1 普通发光二极LED2 红外发光二极VT1VT2 三极
    红外信号编码规采uPD6121G系列编码格式采脉宽调制串行码具体01码字约定:时没接收红外线信号时接收器输出电1 某键时 波形开始9ms低电0然45ms高电1 接着32特 (4字节)数中第第二字节遥控器址码(款已设计遥控器址码固定变)第三字节遥控器键值码第四字节遥控器键值码反码作解码进行校验

    图212 红外遥控发射模块硬件接口电路图
    红外发射电路复杂程度稳定性成问题考虑次设计采现成uPD6121G制成遥控器
    23 红外接收模块电路设计分析
    231 VS1838B红外接收器部结构工作原理
    (1) VS1838B红外接收器特性
    ①型设计
    ②置专IC
    ③宽角度长距离接收
    ④抗干挠力强
    ⑤抵挡环境干挠光线
    ⑥低电压工作
    (2) VS1838B红外接收器引脚功
    VCC5V供电
    GND
    OUT数输出

    (3) VS1838B红外接收器部结构 图213 VS1838B 元件图

    图214 VS1838B红外接收器部结构图
    (4)VS1838B红外接收器工作原理
      红外遥控信号连串二进制脉码线传输程中免受红外信号干扰通常先调治特定载波频率然红外发射二极发射出红外线接收装置滤杂波接收该特定频率信号原成二进制脉码解调
      目前种进行调制红外遥控信号通常采体化红外线接收头进行调解体化红外线接收头红外发光二极低噪音放器限幅器带通滤波器解调器整形驱动电路等集成起
    测试波型

    图215 VS1838B红外接收器测试波型图
    特性曲线图:

    图216 VS1838B红外接收器特性曲线图
    232 红外接收模块硬件接口电路
    VS1838B颗集接收电路调制解调电路带通滤波放电路控制电路体集成塑封体化红外线接收头体积灵敏度高外接元件少抗干扰力强种集红外线接收放整形体集成电路三引脚输出中电源接输出样方便需外接元件完成红外线接收输出TTL电信号兼容工作没红外遥控信号时高电收红外信号时低电体积普通塑封三极样适合种红外线遥控红外线数传输
    系统中VS1838B接收头时候需接通电具体应电路图图217示

    图217 红外红外接收模块硬件接口电路图

    24 LCD1602液晶显示模块电路设计分析
    241 LCD1602液晶显示器部结构工作原理
    (1)LCD1602液晶介绍
    工业字符型液晶够时显示16x0232字符(16列2行)   注:表示方便 文皆1表示高电0表示低电1602液晶1602字符型液晶种专门显示字母数字符号等点阵型液晶模块干5X7者5X11等点阵字符位组成点阵字符位显示字符位间点距间隔行间间隔起字符间距行间距作正显示图形(定义CGRAM显示效果)1602LCD指显示容16X2显示两行行16字符液晶模块(显示字符数字)目前市面字符液晶绝数基HD44780液晶芯片控制原理完全相基HD44780写控制程序方便应市面部分字符型液晶
    (2)LCD1602液晶显示优点
    ①+5V电压度调
    ②含复位电路
    ③提供种控制命令:清屏字符闪烁光标闪烁显示移位等种功
    ④80字节显示数存储器DDRAM
    ⑤建1605X7点阵字型字符发生器CGROM
    ⑥8户定义5X7字符发生器CGRAM
    (3)LCD12864液晶连接时序图分析
    ① 读操作时序图218示

    图218 LCD1602读操作时序图
    该时序中RS置低电写指令状态RW端电始终拉低EN端置高电时开始写入指令数延时段时间写指令结束EN置低电
    ② 写操作时序图219示


    图219 LCD1602写操作时序图
    该时序中RS置高电读数状态RW端电始终拉低EN端置高电时开始读出数延时段时间读数结束EN置低电数读出完毕
    (4)LCD1602脚功
    表22 LCD1602脚功
    编号
    符号
    引脚说明
    编号
    符号
    引脚说明
    1
    VSS
    电源
    9
    D2
    双数口
    2
    VDD
    电源正极
    10
    D3
    双数口
    3
    VL
    度调节
    11
    D4
    双数口
    4
    RS
    数命令选择
    12
    D5
    双数口
    5
    RW
    读写选择
    13
    D6
    双数口
    6
    E
    模块端
    14
    D7
    双数口
    7
    D0
    双数口
    15
    BLK
    背光源
    8
    D1
    双数口
    16
    BLA
    背光源正极
    VDD:电源正极45-55V通常5V电
    VL:LCD度调节端电压调节范围0-5V接正电源时度弱接电源时度高度高时会产生鬼影通常10K电位器调整度者直接串接电阻
    RS:MCU写入数者指令选择端MCU写入指令时RS低电MCU写入数时RS高电
    RW:读写控制端RW高电时读取数RW低电时写入数
    E:LCD模块信号控制端写数时需降触发模块
    D0-D7:8位数总线三态双果MCUIO口资源紧张话该模块4位数线D4-D7接口传送数充电器采4位数传送方式
    BLA: LED背光正极需背光时BLA串接限流电阻接VDDBLK接实测该模块背光电流50mA左右
    BLK: LED背光端
    242 液晶显示模块硬件接口电路
    系统中采1602字符型液晶显示模块显示步进电机转速起停正反转等步进电机状态字符型液晶显示模块专门显示字母数字符号等点阵型液晶显示模块提供部动电复位电路+5V工作电压16引脚中电源引脚LED背光电源引脚LCD驱动电压引脚模式选择引脚读写操作引脚引脚7数引脚中LCD驱动电压V0通滑动变阻器进行调节般V0零伏RW口单片机P36连接读写选择EN端单片机P34连接DB0DB7口单片机P10P17口通P1口直接连接液晶采+5V电源供电电位器R调节液晶度具体应电路图图220示

    图220 LCD1602液晶显示模块硬件接口电路图
    25 电机驱动模块电路设计分析
    251 ULN2003A晶体部结构工作原理
    (1) ULN2003A晶体介绍
    ULN2003A单片高电压高电流达林顿晶体阵列集成电路7NPN达林顿组成高电压输出特性阴极箝位二极转换感应负载单达林顿集电极电流500mA达林顿联承受更电流电路应继电器驱动器字锤驱动器灯驱动器显示驱动器(LED气体放电)线路驱动器逻辑缓器
    ULN2003A达林顿27kΩ串联电阻直接TTL5V CMOS装置
    (2)ULN2003A晶体特性
    ①500mA 额定集电极电流(单输出)
    ②高电压输出:50V
    ③输入种逻辑类型兼容
    ④继电器驱动器
    (3) ULN2003A晶体逻辑框图

    图221 ULN2003A晶体逻辑框图
    252 28BYJ48减速步进电机部结构工作原理
    (1)28BYJ48减速步进电机介绍
    步进电机种电脉转化角位移执行机构通俗点讲:步进驱动器接收脉信号驱动步进电机设定方转动固定角度(步进角)您通控制脉控制角位移量达准确定位目时您通控制脉频率控制电机转动速度加速度达调速目
    图221种四相变磁阻型步进电机结构示意图种电机定子八凸齿齿线圈线圈绕组连接方式称齿两线圈进行反相连接图222示八齿构成四称四相步进电机


    图222 四相变磁阻型步进电机结构示意图
    工作程样:相绕组激励时磁通正相齿软铁芯转子短路径流负相齿六凸齿磁通磁通路径短磁场力作转子强迫移动齿激励相准图1(a)中A相激励转子箭头指齿正A齿准位置B相进行激励图1中(b)转子反时针转15°D相激励图1中(c)转子时针转15°步C相激励C相两种性:A—B—C—DA—D—C—B种反时针转动种时针转动步转子转动15°电机步长(步距角)步进电机性指标应场合步长求改变控制绕组数(相数)极数(转子齿数)改变步长间相互关系式计算:
    Lθ=360 P×N
    式中:Lθ步长P相数N转子齿数图1中步长15°表示电机转圈需24步
    步进电机28BYJ48型四相八拍电机电压DC5V步进电机施加系列连续断控制脉时连续断转动脉信号应步进电机某相两相绕组通电状态改变次应转子转定角度(步距角)通电状态改变完成循环时转子转齿距四相步进电机通电方式运行常见通电方式单(单相绕组通电)四拍(ABCDA……)双(双相绕组通电)四拍(ABBCCDDAAB……)八拍(AABBBCCCDDDAA……)
    (2)28BYJ48减速步进电机参数原理图
    ①额定电压:5VDC
    ②直流电阻:60欧 加减7(25摄氏度)
    ③减速:164
    ④步距:5625度64
    ⑤驱动方式:四项八拍
    ⑥牵入转矩:350gfcm(工作频率:100PPS)
    ⑦滑扭力:8001300 gfcm
    ⑧温升:55K(5VDC 工作频率:100PPS)
    ⑨噪音:35DB(空载100PPS水距马达10CM)
    ⑩绝耐压:600V AC1秒
    ⑾引线拉力强度:1Kgf条
    (3)28BYJ48减速步进电机原理图

    图223 28BYJ48减速步进电机原理图
    (4)28BYJ48减速步进电机优点
    ①采ULN2003驱动方便
    ②优质步进电机带齿轮减速噪音极低运转稳
    ③5V驱动方便单片机开发者
    ④开放性接口通板驱动步进电机
    ⑤适51AVRAVRARM等种台
    253 电机驱动模块硬件接口电路
    系统采228BYJ48额定电压5VDC相数4相步进电机驱动方式单4拍工作方式电机5线连接中红色电源线采单极性直流电源供电步进电机相绕组合适时序通电步进电机步进转动采P0 口P2进行数传输单片机P口输出电流较弱驱动步进电机加ULN2003芯片放电流驱动步进电机工作ULN2003高耐压电流达林顿陈列七硅NPN 达林顿组成P0口作IO输出口时输出级漏极开路电路引脚应外接拉电阻驱动接P0口ULN2003达林顿串联1K拉电阻5V工作电压TTLCMOS电路ULN2003工作电压高工作电流灌电流达500mA够关态时承受50V 电压输出高负载电流行运行电机驱动模块硬件接口电路图图224示

    图 224 电机驱动模块硬件接口电路图
    26 电源模块电路设计分析
    次设计手机充电器电源利USB接口接入+5V电源外制作单独供电模块仅需USB口接入电源加入滤波电容开关发光二极滤波电容负责滤电源中交流成分开关负责接通截断系统电压二极显示否通电外二极处接入1K保护电阻

    图225 电源模块模块硬件接口电路图
    3 百叶窗实体设计
    次设计应种横式百叶窗帘设计水设立轨行位该轨方提供配重轨设置2条第拉绳(左右条)穿该轨轨间数叶片控制穿该拉绳叶片轨升降设置4条第二拉绳(左右两条)穿叶片轨控制该等叶片角度调整机构操作调整机构改变叶片设立角度整体横式百叶窗帘采光隐密性调整具调整效果
    窗帘两条第拉绳利步进电机1拖动控制窗帘升降窗帘四条第二拉绳利步进电机2拖动控制叶片转动百叶窗实体设计图图3示

    图3 百叶窗实体设计图
    4 系统软件设计
    41 程序流程设计
    程序包括系统初始化LCD子程序调定时器中断函数步进电机值初始化步进电机控制函数组成系统初始化包括LCD显示模块数位命令位红外解码标志位步进电机停止转速定义初始化LCD显示程序显示静态POW(卷帘开关)TUR(卷帘方)SPE(收帘开帘速度)CUR(叶片开闭)动态速度水式步进电机转速正反转标志定时器中断函数设定定时器中断间隔步进电机转速步进电机控制函数步进电机索引函数索引值加减函数组成硬件组成工作原理红外遥控器发出红外信号通红外体化接收头进行接收然接收信号送入STC89C52单片机P32口通软件编程P32口接收信号进行译码处理样根译出码字步进电机进行正反转 调速角度控制 译出码字值步进电机状态速度值角度值通LCD 显示出整系统划分红外线译码模块液晶屏显示模块步进电机控制模块等三模块三模块间通红外信号译码值进行联系
    具体程序设计流程图图41示

    图41 系统程序流程图
    程序
    void main(void)
    {
    uchar i
    lcd_system_reset() 初始化LCD1602
    lcd_data_port 0xff
    for(i0i<16i++) lcd_char_write(i0line0[i])
    for(i0i<16i++) lcd_char_write(i1line1[i])
    EX0init() 初始化
    TIM0init()
    jiao200 改变转动角度改变jiao
    jdjiao
    jqjiao
    pd22
    while(1){ 循环
    if(irok){
    Ircordpro()
    irok0
    }
    dayinpanduan()
    if(irpro_ok){ 遥控成功接收
    lcd_char_write(40lcd_mun_to_char[pf1])
    lcd_char_write(110lcd_mun_to_char[pf3])
    lcd_char_write(41lcd_mun_to_char[pf2])
    lcd_char_write(111lcd_mun_to_char[pf4])
    }
    dianjiqidong()
    }
    }
    42 执行功模块
    421红外解码中断判断程序流程设计
    4211红外解码流程函数
    单片机设置中STC89C52部定时器计数器T0设定时方式1定时时间1ms设置外部中断INT0降中断触发方式接收时编码脉信号进行反相INT0外脚信号降时外部中断INT0发生中断启动定时器T0定时器次中断定时时间1ms累加定时计数器中次外部中断INT0发生中断时读取定时计数器中时间通两脉间
    定时时间分析遥控器功码进行解码具体红外解码流程函数流程图图42示

    图42 红外解码流程函数流程图
    程序
    void ex0_isr (void) interrupt 0 using 0
    {
    static unsigned char i
    static bit startflag

    if(startflag){
    if(irtime<63&&irtime>33)引导码 TC9012头码
    i0
    irdata[i]irtime
    irtime0
    i++
    if(i33){
    irok1
    i0
    }
    }
    else{
    irtime0
    startflag1
    }
    }
    4212红外解码功码提取函数
    获引导码前提根uPD6121G红外发射器编码格式进行解码
    程序
    void Ircordpro(void)
    {
    unsigned char i j k1
    unsigned char cordvalue
    for(i0i<4i++){ 处理4字节
    for(j1j<8j++){ 处理1字节8位
    cordirdata[k]
    valuevalue>>1
    if(cord>7) valuevalue|0x80 某值1
    k++
    }
    IRcord[i]value
    value0
    }
    irpro_ok1 处理完毕标志位置1
    jianpanchuli()
    }
    4213红外解码功码判断函数
    根uPD6121G红外发射器编码格式功码216进制数电机控制需键减少电机误动作率次设计中16进制功码进行判断操作次设计红外遥控六键键功表格41
    表41 红外键功表
    1号键
    2号键
    3号键
    值:0x0C
    值:0x18
    值:0x5E
    功:电机1正转
    功:电机2正转
    功:电机1停止
    4号键
    5号键
    6号键
    值:0x08
    值:0x1C
    值:0x5A
    功:转速快
    功:转速中
    功:转速慢
    7号键
    8号键
    9号键
    值:0x42
    值:0x52
    值:0x4A
    功:电机2正转
    功:电机2反转
    功:电机2停止
    电机1拖动百叶窗卷帘电机2拖动百叶窗叶片
    程序
    void jianpanchuli(void)
    {
    switch(IRcord[2])
    {
    case 0x0C 正转钮
    pd11
    sw1
    break
    case 0x18 反转钮
    pd12
    sw1
    break
    case 0x5E 停钮
    pd10
    sw0
    break
    case 0x08 快速钮
    pd21
    break
    case 0x1C 中速钮
    pd22
    break
    case 0x5A 慢速钮
    pd23
    break
    case 0x42 叶片开钮
    pd41
    break
    case 0x52 叶片闭钮
    pd42
    break
    case 0x4A 叶片闭钮
    pd40
    }
    }
    422 电机驱动程序流程设计
    次设计步进电机工作方式单四拍通电序:A—B—C—D.果述通电序步进电机正转反果通电序相反步进电机反相转动步进电机正转发励磁逻辑代码0x080x040x020x01称励磁表.编制程序时先代码序放进存储器中单片机通接口次送出相应控制代码 控制步进电机转动.确定步进电机转动需改变定脉频率改变步进电机转速输送脉频率太快否会造成电机转发出啸声.考虑步进电机稳运行采定时器定时输出控制脉时定时器中断优先级设高级保证单片机执行段程序定时中断条件执行脉输出程序.次设计涉2步进电机分电机1电机2种转动情况励磁表配合励磁具体程序设计流程图图43示

    图43 步进电机模块程序流程图
    电机1电机2转动字表
    unsigned char code zhzh1[4]{0x080x040x020x01} 电机1正转表格
    unsigned char code fzh1[4]{0x010x020x040x08} 电机1反转表格
    unsigned char code zhzh2[4]{0x800x400x200x10} 电机2正转表格
    unsigned char code fzh2[4]{0x100x200x400x80} 电机2反转表格
    unsigned char code bzh[4]{0x000x000x000x00} 转表格
    2电机配合速度驱动情况太中途调函数太程序列出详细请参考附录程序清单
    423 LCD显示程序流程设计
    LCD1602程序设计包括LCD初始化函数LCD延时函数LCD忙等函数LCD命令字写入函数LCD字符写入函数具体LCD显示程序流程图图44示

    图44 LCD显示程序流程图
    (2) LCD液晶显示部分程序
    if(irpro_ok){ 遥控成功接收
    lcd_char_write(40lcd_mun_to_char[pf1])
    lcd_char_write(110lcd_mun_to_char[pf3])
    lcd_char_write(41lcd_mun_to_char[pf2])
    lcd_char_write(111lcd_mun_to_char[pf4])
    }
    LCD命令字写入函数
    void lcd_command_write(uchar command)
    {
    lcd_busy_wait()
    lcd_rs_port 0
    lcd_rw_port 0
    lcd_en_port 0
    lcd_data_port command
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 1
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 0
    }
    LCD字符写入函数
    void lcd_char_write(uchar x_posy_poslcd_dat)
    {
    x_pos & 0x0f X位置范围 0~15
    y_pos & 0x01 Y位置范围 0~ 1
    if(y_pos1) x_pos + 0x40
    x_pos + 0x80
    lcd_command_write(x_pos)
    lcd_busy_wait()
    lcd_rs_port 1
    lcd_rw_port 0
    lcd_en_port 0
    lcd_data_port lcd_dat
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 1
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 0
    }
    5 系统调试
    51 硬件电路调试
    复杂电路基单元电路组成组成电路功块(基单元电路)先调试基础逐步扩调试范围完成整机调试首先准确测量电源接入电路观察异常现象包括烟否异常气味手摸元器件否发烫电源否短路现象等果出现异常应立切断电源排障电然测量电路总电源电压器件引脚电源电压保证元器件正常工作
    (1) 单片机系统调试
    单片机系统:STC89C52时钟复位电路组成单片机链接+5V直流电源万表直流电压档测试40脚否高电20脚否低电9脚否低电1819脚否12MHz方波信号输出40脚高电20脚9脚低电放波信号正常时视系统工作正常
    (2) LCD1602显示模块调试
    液晶1602单片机P1口控制数引脚中P34P36P35分控制EN脚RW脚RS脚程序设置显示定字符果显示正常显示模块调试正常
    (3) 红外发射接收模块调试
    红外发射部分调试:信号源发射电路定频率信号然示波器检测检测应38kHz调制波形
    红外接收部分调试:红外接收头准红外发射距离约50 am发射端加入定频率信号然接收端观察输出波形输入波形进行较两者应该样
    (4) 步进电机驱动模块调试
    重新编写简易步进电机测试程序程序烧写进STC89C52STC89C52放入实际电路中测量结果该系统电路满足指定测试程序控制步进电机做正常转动显示步进电机驱动模块正常
    (5) 整电路板调试
    整板测试模块电路调试没问题情况模块电路连接总控制电路中电观察整系统否正常工作模块电路间否干扰短路现象导致整系统功受影响系统工作正常表明硬件调试成功检测硬件电路否短路断路虚焊等检查电源线否全部连接万表电路原理图测试导线否完全连接测试结果连接线已连接检验单片机晶振否起振示波器观察波形测试结果波形检查芯片功否正常检测键导通情况测试结果正常
    52 软件程序调试
    程序编写汇编语言者C语言汇编语言编写程序繁杂程序移植性C语言简单易懂程序移植性系统采C语言编程通Keil编程软件编译烧录前程序进行编译编译成功程序烧录单片机中电调试模块查模块工作状态否正常显示模块显示数字符否正常否乱码开关转速正反转显示值否处正常状态开关转速正反转显示值否着红外遥控键变化变化程中否出现数错误乱码两步进电机否执行命令实现正转反正变速停止功果测试均问题软件调试结束
    (1) 功分析操作控制
    次设计系统电机1电机2红外遥控指令灵敏转动调试中电机1电机2正转反转停止速度转换做互干扰运行LCD1602根遥控指令灵敏实时显示电机运行状况
    电路调试符合题目求项技术指标均达设计目具体操作控制方法:
    1 电机1正转钮时步进电机1根制定状态开始正转POW显示1TUR显示1
    2电机1反转钮时步进电机1根制定状态开始反转POW显示1TUR显示2
    3电机1停止钮时步进电机1停止转动POW显示0TUR显示0SPE显示3
    4快速钮时步进电机速度快速转动SPE显示3
    5中速钮时步进电机速度中速转动SPE显示2
    6慢速钮时步进电机速度慢速转动SPE显示1
    7电机2正转钮时步进电机2根制定状态开始正转CUR显示1
    8电机2反转钮时步进电机2根制定状态开始反转CUR显示2
    9电机2停止钮时步进电机2停止转动CUR显示0
    (2) 百叶窗组装分析
    电机1电机2分组装拖动机构百叶窗卷帘根红外控制升降百叶窗叶片根红外控制改变角度部分功完全正常










    6 结
    电动遥控百叶窗设计反复调试够设计务中求实现功整设计程中查资料整理资料电路设计电路调试通方案优缺点较确定设计方案系统设计单片机STC89S52核心实现模块控制中包括红外接收模块液晶显示模块电机驱动模块电机1电机2通百叶窗转动机构分拉动拉绳带动卷帘根红外控制升降叶片根红外控制改变角度
    卷帘拉拉放收起百叶窗转动速度提供环境收放需求解决叶片角度调节窗户透光量根需求调节室光线具强操作性
    系统总体说设计求基达细节需提高转速时控制两电机控制两电机分转速转动希日改善
    设计研究方侧重实性系统设计具成低操作界面实时性方便智性工作中减少体力劳动舒适范围广























    谢 辞
    段时间查资料整理资料毕设课题设计清楚认识思路通学知识整合运终利完成次毕业设计设计程中XXXX老师帮助指导遇困难时够找解决问题方法时设计程中少走许弯路XXXX老师表示衷心感谢时整文写作中感谢帮助老师学提供利文写作建议意见帮助文断改善终够利完成整文写作
    次感谢XXXX老师学期间教授知识老师悉心教导掌握良专业课知识未工作岗位充满信心谢谢






















    参考文献
    1 胡伟季晓衡单片机C程序设计应实例[M] 北京:民邮电出版社2003
    2 赵景波王劲松滕敦朋 Protel 2004电路设计基础实践[M] 北京:电子工业出版社2007
    3 赵亮侯国锐单片机C语言编程实例[M] 北京:民邮电出版社2003
    4 龚运新单片机C语言开发技术[M]北京:清华学出版社2006
    5 求科技单片机典型外围器件应实例[M] 北京:民邮电出版社2006
    6 SpasovPeter Microcontroller technology[M] Prentice Hall2004
    7 Peter Spasov微控制器原理应[M] 北京:清华学出版社2006
    8 Scott MacKenzieThe 8051 Microcontroller[M] Prentice Hall 1998
    9 林克明 陈羽 郭良微控制器系统原理应[M] 北京:科学出版社20071
    10 裴亚男 付智辉数字逻辑[M]成:西南交通学出版社2005
    11沈红卫 基单片机智系统设计实现[M]电子工业出版社 20051
    12黄智伟 低功耗系统设计:原理器件电路[M]电子工业出版社 20118
    13章亚明 嵌入式控制系统应 [M]北京邮电学出版社 20108
    14顾绳谷 电机拖动基础(册)[M]机械工业出版社 20075
    15李中年 控制电器应[M]清华学出版社 20066




























    附 录
    附录1 系统电路原理图

    附录2 实物图




    附录3 程序清单
    #include
    #include
    #include
    #define uint unsigned int
    #define uchar unsigned char
    #define _Nop() _nop_()
    #define TURE 1
    #define FALSE 0
    定义LCD控制端口
    sbit lcd_rs_port P3^5
    sbit lcd_rw_port P3^6
    sbit lcd_en_port P3^4
    #define lcd_data_port P1
    正反转定义
    unsigned char code zhzh1[4]{0x080x040x020x01} 电机1正转表格
    unsigned char code fzh1[4]{0x010x020x040x08} 电机1反转表格
    unsigned char code zhzh2[4]{0x800x400x200x10} 电机2正转表格
    unsigned char code fzh2[4]{0x100x200x400x80} 电机2反转表格
    unsigned char code bzh[4]{0x000x000x000x00} 转表格
    uchar shuzpf1pf2pf3pf4
    uint pd1pd2pd4suduswkan1kan2kjqjdjiao
    电机延时函数
    delaydj(uint k)
    {
    while(k)
    }
    速度选择函数
    sdxz()
    {
    switch(pd2)
    {
    case 1
    sudu300
    break
    case 2
    sudu400
    break
    case 3
    sudu500
    }}
    液晶显示定义
    uchar code line0[16]{POW0 TUR0 }
    uchar code line1[16]{SPE0 CUR0 }
    uchar code lcd_mun_to_char[16]{0123456789ABCDEF}
    红外变量定义
    unsigned char irtime 红外全局变量
    bit irpro_okirok
    unsigned char IRcord[4]
    unsigned char irdata[33]
    void ShowString (unsigned char linechar *ptr)
    部分函数声明
    void Delay(unsigned char mS)
    void Ir_work(void)
    void Ircordpro(void)
    定时器0中断服务函数
    void tim0_isr (void) interrupt 1 using 1
    {
    irtime++
    }
    外部中断0服务函数
    void ex0_isr (void) interrupt 0 using 0
    {
    static unsigned char i
    static bit startflag
    if(startflag){
    if(irtime<63&&irtime>33)引导码 TC9012头码
    i0
    irdata[i]irtime
    irtime0
    i++
    if(i33){
    irok1
    i0
    }}
    else{
    irtime0
    startflag1
    }
    }
    定时器0初始化函数
    void TIM0init(void)
    {
    TMOD0x02 定时器0工作方式2TH0重装值TL0初值
    TH00x00
    TL00x00
    ET01 开中断
    TR01
    }
    中断设置函数
    void EX0init(void)
    {
    IT0 1
    EX0 1
    EA 1
    }
    确定红外键处理函数
    void jianpanchuli(void)
    {
    switch(IRcord[2])
    {
    case 0x0C 正转钮
    pd11
    sw1
    break
    case 0x18 反转钮
    pd12
    sw1
    break
    case 0x5E 停钮
    pd10
    sw0
    break
    case 0x08 快速钮
    pd21
    break
    case 0x1C 中速钮
    pd22
    break
    case 0x5A 慢速钮
    pd23
    break
    case 0x42 叶片开钮
    pd41
    break
    case 0x52 叶片闭钮
    pd42
    break
    case 0x4A 叶片闭钮
    pd40
    }}
    红外码值处理函数
    void Ircordpro(void)
    {
    unsigned char i j k1
    unsigned char cordvalue

    for(i0i<4i++){ 处理4字节
    for(j1j<8j++){ 处理1字节8位
    cordirdata[k]
    valuevalue>>1
    if(cord>7) valuevalue|0x80 某值1
    k++
    }
    IRcord[i]value
    value0
    }
    irpro_ok1 处理完毕标志位置1
    jianpanchuli()
    }
    LCD延时函数
    void lcd_delay(uchar ms)
    {
    uchar j
    while(ms){
    for(j0j<250j++)
    } }
    LCD忙等函数
    void lcd_busy_wait()
    {
    lcd_rs_port 0
    lcd_rw_port 1
    lcd_en_port 1
    lcd_data_port 0xff
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    while (lcd_data_port&0x80)
    lcd_en_port 0

    }
    LCD命令字写入函数
    void lcd_command_write(uchar command)
    {
    lcd_busy_wait()
    lcd_rs_port 0
    lcd_rw_port 0
    lcd_en_port 0
    lcd_data_port command
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 1
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 0
    }
    LCD初始化函数
    void lcd_system_reset()
    {
    lcd_delay(20)
    lcd_command_write(0x38)
    lcd_delay(100)
    lcd_command_write(0x38)
    lcd_delay(50)
    lcd_command_write(0x38)
    lcd_delay(10)
    lcd_command_write(0x08)
    lcd_command_write(0x01)
    lcd_command_write(0x06)
    lcd_command_write(0x0c)
    }
    LCD字符写入函数
    void lcd_char_write(uchar x_posy_poslcd_dat)
    {
    x_pos & 0x0f X位置范围 0~15
    y_pos & 0x01 Y位置范围 0~ 1
    if(y_pos1) x_pos + 0x40
    x_pos + 0x80
    lcd_command_write(x_pos)
    lcd_busy_wait()
    lcd_rs_port 1
    lcd_rw_port 0
    lcd_en_port 0
    lcd_data_port lcd_dat
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 1
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    _Nop()
    lcd_en_port 0
    }
    印判断函数
    dayinpanduan()
    {
    if(sw1)
    {
    pf11 开关显示
    switch(pd2)
    {
    case 1 快速显示
    pf23
    break
    case 2 中速显示
    pf22
    break
    case 3 慢速显示
    pf21
    }
    switch(pd1)
    {
    case 1 正转显示
    pf31
    break
    case 2 反转显示
    pf32
    break
    case 0 停止显示
    pf30
    }
    }
    else
    {
    pf10
    pf20
    pf30
    }
    switch(pd4)
    {
    case 1 叶片开显示
    pf41
    break
    case 2 叶片闭显示
    pf42
    break
    case 0 停止显示
    pf40
    }
    }
    两电机正反转停种情况函数
    zh1bu2() 电机1正转电机2转
    {
    for(z0z<4z++)
    {
    P0zhzh1[z]
    delaydj(sudu)
    }}
    f1bu2() 电机1反转电机2转
    {
    for(z0z<4z++)
    {
    P0fzh1[z]
    delaydj(sudu)
    }
    }
    bu1bu2() 电机1转电机2转
    {
    for(z0z<4z++)
    {
    P0bzh[z]
    P2bzh[z]
    delaydj(sudu)
    }
    }
    zh1zh2() 电机1正转电机2正转定角度
    {
    if(kan10)
    {
    kjd
    while(1)
    {
    for(z0z<4z++)
    {
    P0zhzh1[z]
    P2zhzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan11
    kan20
    pd40
    jqjiao
    jd0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jdk
    jqjiaok
    kan20
    break
    }}}
    else
    {pd40
    zh1bu2()}
    }
    zh1f2() 电机1正转电机2反转定角度
    {
    if(kan20)
    {
    kjq
    while(1)
    {
    for(z0z<4z++)
    {
    P0zhzh1[z]
    P2fzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan10
    kan21
    pd40
    jdjiao
    jq0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jqk
    jdjiaok
    kan10
    break
    }}}
    else
    {pd40
    zh1bu2()
    }}
    f1zh2() 电机1反转电机2正转定角度
    {
    if(kan10)
    {
    kjd
    while(1)
    {
    for(z0z<4z++)
    {
    P0fzh1[z]
    P2zhzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan11
    kan20
    pd40
    jqjiao
    jd0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jdk
    jqjiaok
    kan20
    break
    }}}
    else
    {pd40
    f1bu2()
    }}
    f1f2() 电机1发转电机2反转定角度
    {
    if(kan20)
    {
    kjq
    while(1)
    {
    for(z0z<4z++)
    {
    P0fzh1[z]
    P2fzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan10
    kan21
    pd40
    jdjiao
    jq0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jqk
    jdjiaok
    kan10
    break
    }}}
    else
    {pd40
    f1bu2()}
    }
    bu1zh2() 电机1转电机2正转定角度
    {
    if(kan10)
    {
    kjd
    while(1)
    {
    for(z0z<4z++)
    {
    P2zhzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan11
    kan20
    pd40
    jqjiao
    jd0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jdk
    jqjiaok
    kan20
    break
    }}}
    else
    {pd40
    bu1bu2()}
    }
    bu1f2() 电机1转电机2反转定角度
    {
    if(kan20)
    {
    kjq
    while(1)
    {
    for(z0z<4z++)
    {
    P2fzh2[z]
    delaydj(sudu)
    }
    k
    if(k0)
    {
    kan10
    kan21
    pd40
    jdjiao
    jq0
    break
    }
    if(irok)
    {
    Ircordpro()
    irok0
    jqk
    jdjiaok
    kan10
    break
    }}}
    else
    {pd40
    bu1bu2()}
    }
    电机起动函数
    dianjiqidong()
    { sdxz()
    if(pd11)
    {
    switch(pd4)
    {
    case 0
    zh1bu2()
    break
    case 1
    zh1zh2()
    break
    case 2
    zh1f2()
    }}
    if(pd12)
    {
    switch(pd4)
    {
    case 0
    f1bu2()
    break
    case 1
    f1zh2()
    break
    case 2
    f1f2()
    }}
    if(pd10)
    {
    switch(pd4)
    {
    case 0
    bu1bu2()
    break
    case 1
    bu1zh2()
    break
    case 2
    bu1f2()
    }}}
    函数
    void main(void)
    {
    uchar i
    lcd_system_reset() 初始化LCD1602
    lcd_data_port 0xff
    for(i0i<16i++) lcd_char_write(i0line0[i])
    for(i0i<16i++) lcd_char_write(i1line1[i])
    EX0init() 初始化
    TIM0init()
    jiao200 改变转动角度改变jiao
    jdjiao
    jqjiao
    pd22
    while(1){ 循环
    if(irok){
    Ircordpro()
    irok0
    }
    dayinpanduan()
    if(irpro_ok){ 遥控成功接收
    lcd_char_write(40lcd_mun_to_char[pf1])
    lcd_char_write(110lcd_mun_to_char[pf3])
    lcd_char_write(41lcd_mun_to_char[pf2])
    lcd_char_write(111lcd_mun_to_char[pf4])
    }
    dianjiqidong()
    }}
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    电动百叶窗毕业论文

     毕业设计(论文)说明书 题 目: 电动遥控百叶窗的设计与实现 ...

    5年前   
    713    0

    智能遥控窗帘系统设计毕业设计

     毕业设计 题 目 智能...

    5年前   
    1378    0

    蓝牙遥控密码锁毕业设计

    毕业设计[论文] 题目:蓝牙遥控密码锁 学 院: 电子与电气工程学院 专 业: 光电信息工程 姓 名: ...

    5年前   
    1001    0

    红外遥控电路设计

    摘 要 随着科学技术的飞速发展,信息的飞快传播,红外遥控在人们的生活中已经成为不可或缺的部分。本文重点介绍了利用单片机AT89S52和AT89C2051实现红外发射和接收电路的设计方法...

    5年前   
    1267    0

    三相鼠笼式异步电动机设计毕业设计

     本科生毕业设计任务书 (工科及部分理科专业适用) 题目:Y100L-2 3 kW 三相鼠笼异步电动机的设计 ...

    5年前   
    1339    0

    电线电缆毕业设计毕业设计

    专科学校 毕业设计论文 论文题目:WDZB-YJY 8.7/10 3X95 电缆结构设计及阻燃实验 系 部: 电气工程系 专 业:电线电缆制造技术 班 ...

    5年前   
    1299    0

    单片机红外遥控系统设计

     单片机红外遥控系统设计 摘要:本文设计了一种基于AT89S52单片机的红外遥控系统,可用于控制多种电器的开关,交流电机的转速及启停等方面。阐述了发射部分和接收部分的设计原理和工作...

    5年前   
    1118    0

    遥控社团课程设计

    课程名称:遥控社团教师: 附件二:一学期结束上交内容与实施(以一学期计算,约16--20课时,含报名选拔和期末的评价)课时主 要 内 容实施的简要流程1认识遥控车1.社员自我介绍2.认识遥控车...

    1年前   
    522    1

    毕业设计

    微固支梁在冲击载荷下的响应研究   【摘 要】   MEMS器件商用化最大的障碍是技术供应商在可制造性、可测试性、器件可靠性等方面的解决方案能力不足。MEMS的各基础构件及最重要的可动结构...

    5年前   
    1488    0

    毕业设计报告

    :本设计为甘肃某高校教学科研基地滴灌工程初步设计,主要内容包括灌区基本资料的分析、管网总体布置、管网的水力计算、蓄水池的设计、细部构造设计以及工程概算。

    2年前   
    662    0

    毕业设计论文:

    本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以AT89S52单片机为控制器,以...

    4年前   
    1797    0

    毕业设计总结

    毕业设计总结  这次的毕业设计做的不是很好,提交完论文后,仍觉得有做的不好的地方,对于论文能不能最后通过,我心里也没底,下面来对毕设总结一下:  1. 快速入题。  拿到毕设题目要尽快把自己的...

    11年前   
    777    0

    毕业设计总结

    毕业设计总结 随着毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我们的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自...

    9年前   
    7909    0

    毕业设计题目

    毕业设计题目  营销1,2,3班毕业设计题目 学号 姓名 指导教师 毕业设计题目 张晓丹 面向营销网站规划设计 (3人) 利用电子邮件进行外向营销的方法设计 客户满意度调查与预测的模型设计 即...

    11年前   
    1002    0

    毕业设计文档

      会计系 北京长城机械厂财务分析报告 08会计1班  指导老师  一、长城机械厂基本情况   北京长城机械厂是一家国有企业。位于中华路188号。北京长城机械厂主要生产甲、乙两种产...

    5年前   
    1432    0

    毕业设计总结

    毕业设计总结  随着毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己...

    10年前   
    945    0

    毕业设计要求

    **交通职业技术学院 毕业设计成绩评议表   年级 09级 层次 0321 专业 计算机网络与通信 姓名 何天 题目 接入网实习总结         指 导...

    9年前   
    7446    0

    钻床主轴设计毕业设计

    前 言 毕业设计是在学完了机械设计、机械制造工艺与夹具、机械加工工艺、计算机基础、CAD制图、等课程后,是学生在校期间十分重要的综合性实践环节,是学生全面运用所学基础理论、专业知识和基本技...

    5年前   
    1005    0

    毕业设计管理系统的设计与实现

    毕业设计管理系统的设计与实现 摘 要 随着Internet的飞速发展及互联网的普及,计算机已广泛用于政府、军事、科研、商业等部门,连接到千家万户,利用计算机实现毕业设计管...

    5年前   
    2633    0

    环境设计毕业设计

     XX大学毕业设计 题 目: 设计有限公司办公空间设计 二级学院 ...

    4年前   
    1208    0

    文档贡献者

    z***u

    贡献于2019-06-02

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档