代码分析:
#include<reg51・h>表示51单片机头文件,#include<in trins・山>主 要包含了有关51单片机nopO函数、左移、右移、循环左移、循环 右移函数,#include<s tdlib・h>说明了用于数据代码分析:
#include<reg51・h>表示51单片机头文件,#include<in trins・山>主 要包含了有关51单片机nopO函数、左移、右移、循环左移、循环 右移函数,#include<s tdlib・h>说明了用于数据转换、内存分配以及 具有其他相似任务的函数。#define uchar unsigned char #define uint unsigned int 分别表示对 unsigned char 和 unsigned int 的 宏定义,也就是用 uchar表示unsigned char。对于#define DelayN0P() 的宏定义表示{_nop_();_nop_();_nop_();_nop_();}代替 delayNOP() 即让CPU空转4个周期,_nop_();在 ,相 当于汇编中的NOP指令其目的是起到一个延时的作用。sbit
K1=P1A4; sbit BEEP=P2A7; sbit LCD_RS=P2A0; sbit
LCD_RW=P2A1; sbit LCD_EN=P2A2分别声明单片机的 口、
口、 口、 口、 口给按键kl、蜂鸣器、led的数据命 令选择端、读写选择端、led的使能端。void beep();bit
LCD_Busy_Check();void LCD_Initialize();void
LCD_Set_POS(uchar); void LCD_Write_Command(uchar); void LCD_Write_Data(uchar)分别声明蜂鸣器函数、LCD忙等待检査函 数、LCD初始化函数、LCD位置设置函数、LCD写命令函数、LCD 写数据函数。uchar code titlt_text[]={"---99 table ---"}定义该 code titlt_text数组内容为除双引号的字符串。uchar data Multiply_str[]={" "}内容显示下面将要执行的表达
式。定义、声明完了以后,开始从主函数分析。在无返回值的主函数 内部,刚开始先给p0> p2全部赋值为11111111也就是全部给他们 的每个口为高电平。之后便进入到DelyMs的延时函数,DelyMs的 延时函数在mian函数前就已声明,它是运用for语句的空语句循环 1200次。延时一段时间后开始调用LCD_Initialize()该函数是对LCD 灯的初始化过程,过程设置中每一步都有延时,同时又调用 LCD_Write_Command()在LCD写命令函数中while里有一个 LCD_Busy_Check()忙等待检测函数,这个函数通过对led的数据命 令选择端、读写选择端、led的使能端赋值以及Result=(bit)(P0&0x80); 中return的返回值决定忙等待函数的值为1或0,也就意味着while 下面的程序是否执行。刚开始没有按下k1时,由于上拉
lcd1602随机显示乘法口诀代码分析 来自淘豆网m.daumloan.com转载请标明出处.