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 分钟前
汇编与接口技术:8259中断实验
汇编·单片机·嵌入式硬件·8259中断实验
brave and determined7 分钟前
国产MCU学习Day6——CW32F030C8T6: I2C功能详解与应用案例
单片机·eeprom·i2c·cw32f030c8t6·cw32·cw32f030·中断读取eeprom
梁山1号1 小时前
【ESP32】3.串口的发送与接受
单片机·物联网
KaiGer6661 小时前
AUTOSAR进阶图解==>AUTOSAR_SWS_V2XFacilities
单片机·汽车·嵌入式·autosar
desssq2 小时前
SPI通信协议
单片机·嵌入式硬件
星辰pid5 小时前
STM32实现四自由度机械臂(SG90舵机)多功能控制(软件篇freertos)
stm32·单片机·嵌入式硬件·机械臂
森焱森10 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
小殷学长12 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
TESmart碲视14 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
花落已飘15 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件