云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于51单片机和lcd1602的万年历设计 - 图文

基于51单片机和lcd1602的万年历设计 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/4/24 18:25:44

常熟理工学院毕业设计(论文)

WriteOneChar(0xcc); //跳过读序列号的操作,调用写函数,写0xcc指令码 WriteOneChar(0xbe); //调用写函数,写0xbe指令码,读温度寄存器 tempL=ReadOneChar(); //读出温度的低位LSB tempH=ReadOneChar(); //读出温度的高位MSB tempa=((tempH*256)+tempL)*0.0625; //温度转换 DS18_delay(20);

return(tempa); //运算结果返回到函数 :ReadTemperature()

5.2.2 DS1302读写程序

DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器

}

的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如图5.5所示。

图5.5 DS1302的控制字

控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图5.6、5.7所示。

图5.6 单字节读

图5.7 单字节写

在进行任何数据传输时,RST必须被置高电平,每个SCLK为上升沿时数据被输入,下降沿时数据被输出。先把RST置低,禁止数据传输,SCLK置低,清零时钟总线,RST再置高,允许数据传输。传送完成后,RST置低,禁止字节的传送。部分源程序如下:

27

常熟理工学院毕业设计(论文)

void write_byte(uchar dat) //写一个字节 { ACC=dat; RST=1; for(a=8;a>0;a--) { IO=ACC0; SCLK=0; SCLK=1; ACC=ACC>>1; } }

uchar read_byte() //读一个字节 { RST=1; for(a=8;a>0;a--) { ACC7=IO; SCLK=1; SCLK=0; ACC=ACC>>1; } return (ACC); }

void write_1302(uchar add,uchar dat) //向1302芯片写函数,指定写入地址,数据 { RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0; }

uchar read_1302(uchar add) //从1302读数据函数,指定读取数据来源地址 { uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp); }

28

常熟理工学院毕业设计(论文)

5.2.3液晶显示程序

1602通过D0~D7的8位数据端传输数据和指令,其模块内的控制器有11条控制指令。当液晶显示屏的接口电路与单片机系统I/O按照并行数据传输方式连接完成以后,即可以对STC89C52单片机进行编程。在液晶屏完成显示之前首先要对液晶进行初始化。源程序如下:

lcd_init() //***液晶初始化函数**** { write_1602com(0x38); //设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c); //开显示不显示光标 write_1602com(0x06); //整屏不移动,光标自动右移 write_1602com(0x01); //清显示 write_1602com(yh+1); //日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a<14;a++) { write_1602dat(tab1[a]); //向液晶屏写日历显示的固定符号部分 //delay(3); } write_1602com(er+2); //时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a<8;a++) { write_1602dat(tab2[a]); //写显示时间固定符号,两个冒号 //delay(3); }

}

5.3本章小结

本章对基于单片机的万年历系统软件模块进行设计,先对该系统进行了整体流程的设计,给出了设计的流程图,随后介绍了各模块的子程序。对一些模块常用的函数进行了解释,这一切都构成了这个系统的软件基础。

29

常熟理工学院毕业设计(论文)

第六章 仿真与调试

6.1软件简介

6.1.1 Keil软件简介

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。这款软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的是,Keil C51软件编译后生成的汇编代码,就能展现出生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

Keil软件中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,可载入Proteus仿真软件中的MCU中,进行功能仿真。

Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。应用Keil进行软件仿真开发的主要步骤为:1.编写源程序并保存;2.建立工程并添加源文件;3.设置工程;4.编译/汇编、连接,产生目标文件;5.程序调试。 6.1.2 Proteus ISIS简介

Proteus ISIS是英国Labcenter Electronics公司开发的电路分析与实物仿真软件。它由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,它运行于Windows操作系统上,用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。

该软件的特点是:

(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。

(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(3)目前支持的单片机类型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12

30

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

常熟理工学院毕业设计(论文) WriteOneChar(0xcc); //跳过读序列号的操作,调用写函数,写0xcc指令码 WriteOneChar(0xbe); //调用写函数,写0xbe指令码,读温度寄存器 tempL=ReadOneChar(); //读出温度的低位LSB tempH=ReadOneChar(); //读出温度的高位MSB tempa=((tempH*256)+tempL)*0.0625; //温度转换 DS18_delay(20); return(tempa); //运算结果返回到函数 :ReadTemperature() 5.2.2 DS1302读写程序 DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com