1、基于AT89C52、LCD1602的电子计时器proteus仿真设计

一、仿真原理图:

二、仿真效果:

三、相关代码:

1)、系统配置:

复制代码
void SystemInit(void)
{
	TMOD = 0x01;                
	TH0 = (65536 - 46083) / 256;    
	TL0 = (65536 - 46083) % 256;    
	EA = 1;                     
	ET0 = 1;                    
	TR0 = 1;
}

2)、LCD1602液晶相关驱动代码:

核查是否busy?

复制代码
unsigned char BusyCheck(void)
{
	bit result;
	
	RS = 0;       
	RW = 1;
	E = 1;  
	
	_nop_();   
	_nop_();
	_nop_(); 
	_nop_(); 
  	
	result = BF;  
	E = 0;         
	
	return result;
}

写入指令:

复制代码
void WriteInstruct(unsigned char instruct)
{   
	while(BusyCheck() == 1); 
	RS = 0;                  
	RW = 0;   
	E = 0;  
	
	_nop_();
	_nop_(); 				 
	_nop_();
	_nop_(); 
	
	P0 = instruct;    
	
	_nop_();
	_nop_();
	_nop_();
	_nop_();  
	
	E = 1;    
	
	_nop_();
	_nop_();
	_nop_();
	_nop_();   
	
	E = 0;                  
 }

写入数据:

复制代码
void WriteData(unsigned char datas)
{
	while(BusyCheck() == 1);  
	RS = 1;           
	RW = 0;
	E = 0;            
				   
	P0 = datas;           
	_nop_();
	_nop_();
	_nop_();
	_nop_();  
	
	E = 1;   
	 
	_nop_();
	_nop_();
	_nop_();
	_nop_(); 

	E = 0;            
}

LCD1602初始化:

显示时、分、秒:

复制代码
void DisplayHour()
{
	unsigned char i,j;
	
	i = hour / 10;                
	j = hour % 10;                
	WriteAddress(0x44);   
	WriteData(digit[i]);  
	WriteData(digit[j]);  
     
 }
void DisplayMinute()
{
	unsigned char i,j;

	i = minute / 10;                
	j = minute % 10;                
	WriteAddress(0x47);   
	WriteData(digit[i]);  
	WriteData(digit[j]);  
     
 }
void DisplaySecond()
{
	unsigned char i,j;
	
	i = second / 10;                
	j = second % 10;                
	WriteAddress(0x4a);   
	WriteData(digit[i]);  
	WriteData(digit[j]);  
 }

3)、main函数:

相关推荐
代码游侠2 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
CODECOLLECT5 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen6 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠9 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
深圳市九鼎创展科技11 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计11 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报12 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业12 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
czwxkn13 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件
Love Song残响13 小时前
NVIDIA显卡终极优化指南
stm32·单片机·嵌入式硬件