基于at89c51单片机的lcd电子时钟设计内容摘要:
信过程中最好保证传输的连续性不要允许中断如图 32 所示 LCD1602 流程图 程序主要实现对信息的显示包括年月日时分秒等信息在这里要注意它的读写控制指令其流程图如图 33 所示 图 33 LCD1602 初始化流程图 子程序源代码设计 详见附录一 设计原理图 详见附录二 附录一 程序名称基于单片机和时钟芯片 DS1302 的电子时钟 程序功能 时钟芯片采用 DS1302 显示采用液晶屏 LCD1602 include 包含单片机寄存器的头文件 include 包含 _nop_ 函数定义的头文件 define uchar unsigned char define uint unsigned int 以下是 DS1302 芯片的操作程序 uchar code digit[10] 0123456789 定义字符数组显示数字 sbit DATA P11 位定义 1302 芯片的接口数据输出 端定义在 P11 引脚 sbit RST P12 位定义 1302 芯片的接口复位端口定义在 P11 引脚 sbit SCLK P10 位定义 1302 芯片的接口时钟输出端口定义在 P11 引脚 函数功能延时若干微秒 入口参数 n void delaynus uchar n uchar i for i 0i ni 函数功能向 1302 写一个字节数据 入口参数 x void Write1302 uchar dat uchar i SCLK 0 拉低 SCLK 为脉冲上升沿写入数据做好准备 delaynus 2 稍微等待使硬件做好准备 for i 0i 8i 连续写 8 个二进制位数据 DATA dat0x01 取出 dat 的第 0 位数据写入 1302 delaynus 2 稍微等待使硬件做好准备 SCLK 1 上升沿写入数据 delaynus 2 稍微等待使硬件做好准备 SCLK 0 重新拉低 SCLK 形成脉冲 dat 1 将 dat的各数据位右移 1位准备写入下一个数据位 函数功能根据命令字向 1302 写一个字节数据 入口参数 Cmd 储存命令字 dat 储存待写的数据 void WriteSet1302 uchar Cmduchar dat RST 0 禁止数据传递 SCLK 0 确保写数居前 SCLK 被拉低 RST 1 启动数据传输 delaynus 2 稍微等待使硬 件做好准备 Write1302 Cmd 写入命令字 Write1302 dat 写数据 SCLK 1 将时钟电平置于已知状态 RST 0 禁止数据传递 函数功能从 1302 读一个字节数据 入口参数 x uchar Read1302 void uchar idat delaynus 2 稍微等待使硬件做好准备 for i 0i 8i 连续读 8 个二进制位数据 dat 1 将 dat 的各数据位右移 1 位因为先读出的是字节的最低位 if DATA 1 如果读出的数据是 1 dat 0x80 将 1 取出写在 dat 的最高位 SCLK 1 将 SCLK 置于高电平为下降沿读出 delaynus 2 稍微等待 SCLK 0 拉低 SCLK 形成脉冲下降沿 delaynus 2 稍微等待 return dat 将读出的数据返回 函数功能根据命令字从 1302 读取一个字节数据 入口参数 Cmd uchar ReadSet1302 uchar Cmd uchar dat RST 0 拉低 RST SCLK 0 确保写数居前 SCLK 被拉低 RST 1 启动数据传输 Write1302 Cmd 写入命令字 dat Read1302 读出数据 SCLK 1 将时钟电平置于已知状态 RST 0 禁止数据传递 return dat 将读出的数据返回 函数功能 1302 进行初始化设置 void Init_DS1302 void WriteSet1302 0x8E0x00 根据写状态寄存器命令字写入不保护指令 WriteSet1302 0x80 010 4 010 根据写秒寄存器命令字写入秒的初始值 除法运算取整取模运算取余 数据前四位为十位后四位为个位详见寄存器表 WriteSet1302 0x82 010 4 010 根据写分寄存器命令字写入分的初始值 WriteSet1302 0x84 1210 4 1210 根据写小时寄存器命令字写入小时的初始值 WriteSet1302 0x86 0110 4 0110 根据写日寄存器命令字写入日的初始值 WriteSet1302 0x88 0610 4 0610 根据写月寄存器命令字写入月的初始值 WriteSet1302 0x8c 1010 4 1010 根据写小时寄存器命令字写入小时的初始值 以下是对液晶模块的操作程序 sbit RS P20 寄存器选择位将 RS 位定义为 P20 引脚 sbit RW P21 读写选择位将 RW 位定义为 P21 引脚 sbit E P22 使能信号位将 E 位定义为 P22 引脚 sbit BF P07 忙碌标志位将 BF 位定义为 P07 引脚 函数功能延时 1ms 3j2 i 3 332 10 1010 微秒 可以认为是 1 毫秒 void delay1ms unsigned char ij for i 0i 10i for j 0j 33j 函数功能延时若干毫秒 入口参数 n void delaynms unsigned char n unsigned char i for i 0i ni delay1ms 函数功能判断液晶模块的忙碌状态 返回值 resultresult 1 忙碌 result 0 不忙 bit BusyTest void bit result RS 0 根据规定 RS 为低电平 RW 为高电平时可以读状态 RW 1 E 1 E 1 才允许读写 _nop_ 空操作 _nop_ _nop_ _nop_ 空操作四个机器周期给硬件反应时间 result BF 将忙碌标志电平赋给 result E 0 将 E 恢复低电平 return result 函数功能将模式设置指令或显示地址写入液晶模块 入口参数 dictate void WriteInstruction uchar dictate while BusyTest 1 如果忙就等待 RS 0 根据规定 RS 和 RW 同时为低电平时可以写入指令 RW 0 E 0 E 置低电平 根据表 86 写指令时 E 为高脉冲 就是让 E从 0到 1发生正跳变所以应先置0 _nop_ _nop_ 空操作两个机器周期给硬件反应时间 P0 dictate 将数据送入 P0 口即写入指令或地址 _nop_ _nop_ _nop_ _nop_。基于at89c51单片机的lcd电子时钟设计
相关推荐
的重要指 针 之一。 串口 输入 /输 出口 :用于 单 片机和串行 设备或其它单 片机的通信。 串行通信有同步和异步之分, 这 可以用硬件或通用串行收 发 器 件来实现。 不同的 单 片机可能提供不同 标准的串行通信接口,如 UART、 SPI、 2IC、 Micro Wire 等。 无锡科技职业学院毕业设计(论文) 基于单片机的多功能电表设计 9 LED 数码管 led 数码管( LED
) ou =0,即电桥平衡。 式( )称平衡条件。 应变片测量电桥在测量前使电桥平衡,从而使测量时电桥输出电压只与应变片感受的应变所引起的电阻变化有关。 若差动工作,即 RRRRRRRRRRRR 4321 , ,按式 ( ) ,则电桥输出为 Ek 式 () 应变片式传感器有如下特点: ( 1)应用和测量范围广,应变片可制成各种机械量传感器。 ( 2)分辨力和灵敏度高
与实现 系统硬件电路主要分为:单片机 AT89C51 主控制系统、 DS18B20 温度采集电路、NRF24L01 无线接收和发送模块电路、 LED 数码管显示电路。 设计总框图如图 所示,系统设计总原理图见附录 1。 DS 18 B 20 温度采集 N R F 24 L 01 无线发送AT 89 C 51 单片机处理数码管显示N R F 24 L 01 无线接收AT 89 C 51
2 个通用寄存器。 ⑼ 硬件看门狗功能。 图 2 STC12CXX 系列典型单片机内部结构图 智能电子技术实践课程设计报告 8 51 系列单片机的引脚功能 图 3 微型单片机的引脚 . I/O 端口线输入输出引脚 — (39— 32): P0口是一个漏极开路型准双向 I/ O 口。 在访问外部存储器时,它是分时多路转换的地址 (低 8位 )和数据总线,在访问期间激活了内部的上拉电阻。 在
多数方法忽然属性是作为使用程序的功能服务的。 另外,有了 Server对象,就可以在服务器上启动 ActiveX对象例程,并使用 Active Server服务提供像 HTML和 URL编码这样的函数。 Server 对象的属性、方法集 选 项 作 用 Property(属性) ScriptTimeout 设置程序能够运行的最大时间 Method( 方法 ) CreateObject
和本系统良好的安全性设置,信息管理员在专业人员的指导帮助下迅速掌握系统的操作方法。 同时,用户也可以根据我们编写的详细的“用户操作说明书”,来学习正确的操作本系统。 11 技术可行性 技术上的可行性分析主要分析技术条件 是否能 顺利完成开发工作,硬、软件能否满足开发者的需要等。 软件方面,网络化考试需要的各种软件环境都已具备,数据库服务器方面则有 SQL Server, 均 能够处理大量数据