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

当前位置:首页 > 最新的1602LCD显示的秒表毕业设计

最新的1602LCD显示的秒表毕业设计

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 0:59:31

安徽理工大学软件学院

sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; bit LCD_Busy_Check(); void LCD_Busy_Check(); void LCD_Initialize();

void LCD_Write_Command(uchar); void LCD_ Write_Data(uchar);

//------------------------------------------------------------------------------ //延时

//------------------------------------------------------------------------------ void DelayMS(uint ms) {

uchar t;

while(ms--) for (t=0;t<120;t++); }

//------------------------------------------------------------------------------ //LCD忙检查

//------------------------------------------------------------------------------ bit LCD_Busy_Check() {

bit Result;

LCD_RS=0;LCD_RW=1;LCD_EN=1;DelayNOP(); Result=(bit)(P0&0X80); LCD_EN=0; return Result; }

//----------------------------------------------------------------------------- //向LCD写指令

//----------------------------------------------------------------------------- void LCD_Write_Command(uchar cmd) {

while (LCD_Busy_Check());

LCD_RS=0;LCD_RW=0;LCD_EN=0; _nop_(); _nop_();

P0=cmd; DelayNOP(); LCD_EN=1;DelayNOP(); LCD_EN=0; }

//---------------------------------------------------------------------------- //向LCD写数据

安徽理工大学软件学院

安徽理工大学软件学院

//---------------------------------------------------------------------------- void LCD_Write_Data(uchar str) {

while (LCD_Busy_Check());

LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=str;DelayNOP(); LCD_EN=1;DelayNOP();LCD_EN=0; }

//---------------------------------------------------------------------------- //初始化LCD

//---------------------------------------------------------------------------- void LCD_Initialize() {

DelayMS(5);LCD_Write_Command(0x38); DelayMS(5);LCD_Write_Command(0x0c); DelayMS(5);LCD_Write_Command(0x06); DelayMS(5);LCD_Write_Command(0x01); DelayMS(5); }

//---------------------------------------------------------------------------- //设置显示位置

//---------------------------------------------------------------------------- void LCD_Set_POS(uchar Position) {

LCD_Write_Command(Position|0X80); }

//---------------------------------------------------------------------------- //显示函数,在LCD指定行上显示字符串

//---------------------------------------------------------------------------- void Display_String(uchar*str,uchar LineNo) {

uchar k;

LCD_Set_POS(LineNo);

for (k=0;k<16;k++) LCD_Write_Data(str[k]); }

安徽理工大学软件学院

安徽理工大学软件学院

4 软件调试及系统仿真

4.1 软件编译调试环境

4.1.1 Keil工程的建立与调试

Keil C51 软件是目前最流行的开发8051系列的单片机的软件工具。Keil C51提供了包括C语言编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision4 IDE将这些部分结合起来。

打开Keil软件,将代码输入调试并在错误全被解决的情况下生成对应的hex文件;打开Proteus软件,将对应的原理图和生成的hexw文件链接。

在调试过程中我们出现了错误,如图4.1至4.4所示。

图4.1 错误运行图

单机错误信息,让指针跳到错误行,一步步调试之后得知是代码输入时输入法错误,把大写”V”改写为小写”v”。

图4.2 错误运行图

安徽理工大学软件学院

安徽理工大学软件学院

当我把分号加上了之后,又出现了如4.2图所示的错误。在我多番查询下,根据错误提示,将一个一个的错误改正。

图4.3 错误运行图

当我再次运行时,又出现以上的两个错误。通过我仔细的研究得知是由于输入时的马虎,我在前面定义的是propts,而这里出现了promts,所以导致了错误。

根据错误,一步一步的检查、调试之后,我把错误全部解决,如图4.4:

图4.4 错误运行图

4.1.2 编译和连接

打开Keil软件,将代码输入调试并在错误全被解决的情况下,点击target option键对文件进行编辑链接,生成对应的hex文件;打开PROTEUS软件,将对应的原理图和生成的hex文件连接。在芯片AT89C51上进行点击,将生成的hex文件烧入到芯片中,

安徽理工大学软件学院

搜索更多关于: 最新的1602LCD显示的秒表毕业设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

安徽理工大学软件学院 sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; bit LCD_Busy_Check(); void LCD_Busy_Check(); void LCD_Initialize(); void LCD_Write_Command(uchar); void LCD_ Write_Data(uchar); //------------------------------------------------------------------------------ //延时 //------------------------------------------------------------------------------ void Dela

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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