找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2934|回复: 0
收起左侧

基于51单片机的24秒倒计时液晶显示程序Proteus仿真图

[复制链接]
ID:997318 发表于 2021-12-27 10:54 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif


单片机源程序如下:
#include  "reg51.h"  
#include<intrins.h>
sbit S1=P0^0;
unsigned char count=0;      
unsigned char miao=24;
sbit RS=0xb0;                    
sbit RW=0xb1;                       
sbit E=0xb2;
unsigned char lcd[]={'0','1','2','3','4','5','6','7','8','9'};
void lcd_w_cmd(unsigned char com);
void lcd_w_dat(unsigned char dat);
unsigned char lcd_r_start();      
void lcd_int();              
void delay(unsigned int i);  
void delay1();
void delay1()      
{  
  _nop_();
  _nop_();
  _nop_();
}
void lcd_int()           
{
  lcd_w_cmd(0x3c);               
  lcd_w_cmd(0x0e);               
  lcd_w_cmd(0x01);               
  lcd_w_cmd(0x06);               
  lcd_w_cmd(0x80);  
}        
unsigned char lcd_r_start()         
{
  unsigned char s;
  RW=1;   
  delay1();
  RS=0;
  delay1();
  E=1;           
  delay1();
  s=P1;   
  delay1();
  E=0;
  delay1();
  RW=0;
  delay1();
  return(s);
}
void lcd_w_cmd(unsigned char com)   
{
  unsigned char i;
  do{                     
    i=lcd_r_start();
    i=i&0x80;           
    delay(2);
     }while(i!=0);         
  RW=0;
  delay1();
  RS=0;   
  delay1();
  E=1;   
  delay1();
  P1=com;   
  delay1();
  E=0;
  delay1();
  RW=1;
  delay(255);
}
void lcd_w_dat(unsigned char dat)   
{
  unsigned char i;
  do{         
    i=lcd_r_start();  
    i=i&0x80;        
    delay(2);            
      }while(i!=0);            
  RW=0;
  delay1();
  RS=1;   
  delay1();
  E=1;     
  delay1();
  P1=dat;   
  delay1();
  E=0;
  delay1();
  RW=1;
  delay(255);
}
void     delay(unsigned int i)     
{
  unsigned int k;
for(k=0;k<i;k++);
}
void timer_1() interrupt 3
{
        
   TH1=(65536-50000)/256;   
   TL1=(65536-50000)%256;
    if(S1==0)
        {
                delay(1200);
                if(S1==0)
                {miao=24;}
        }
         count++;         
   if(count==20)              
{
      count=0;                 
      miao--;                  
      if(miao==0)
                        {miao=24;
               
                        
}               
}
}

void main()                        
{
   TMOD=0x10;                           
   TH1=(65536-50000)/256;   
   TL1=(65536-50000)%256;
   ET1=1;                     
   EA=1;  
   TR1=1;
         

   P1=0xff;                           
   lcd_int();                    
   delay(255);
         while(1)
                {
   lcd_w_cmd(0x8e);
   lcd_w_dat(lcd[miao/10]);        

         lcd_w_cmd(0x8f);        
         lcd_w_dat(lcd[miao%10]);        
         delay(255);
        
         }

}

下载: 01.7z (44.31 KB, 下载次数: 14)

评分

参与人数 1黑币 +10 收起 理由
admin + 10 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表