Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

December 6, 2013

Đếm số lần nhấn nút lên LCD


Code:
#include <REGX52.H>
#include <stdio.h>
#include <string.h>

sbit sw = P3^5;

sbit RS = P1^0;
sbit RW = P1^1;
sbit EN = P1^2;
char x;
void delay_ms(unsigned int ms)
{
 unsigned int x,y;
 for(x=0;x<ms;x++)
 for(y=0;y<=125;y++);
}
void delay(unsigned long int t)
 {
  unsigned long int i;
  for (i=0;i<t;i++);
 }
void busy_flag(void)
 {
  P2 = 0xff;
  RS = 0;
  RW = 1;
  do
   {
    EN = 0;
    delay(10);
    EN = 1;
    x = P2;
    x = x&0x80;
   }
  while(x==0x80);
 }
void write_command(unsigned char LCD_command)
 {
  busy_flag();
  P2 = LCD_command;
  RS = 0;
  RW = 0;
  EN = 1;
  delay(50);
  EN = 0;
  delay(50);
 }
void write_data (unsigned char LCD_data)
 {
  busy_flag();
  P2 = LCD_data;
  RS = 1;
  RW = 0;
  EN = 1;
  delay(50);
  EN = 0;
  delay(50);
 }
void write_string(char *s)
 {
  while(*s)
   {
    write_data(*s);
    s++;
   }
 }

void init(void)
 {
  write_command(0x03);//
  write_command(0x38);//hien thi 2 dong
  write_command(0x06);// tro ve dau
  write_command(0x0c);// bo dau nhay
 }
void restart()
{
  write_command(0x01);//xoa man hinh
  delay(1000);
}
void startline1()
{
  write_command(0x80);//vi tro con tro dau dong 1
  delay(1000);
}
void startline2()
{
  write_command(0xc0);//vi tri con tro dau dong 2
  delay(1000);
}
void write_intnum(unsigned long n)  
{    
 if(n!=0)                                        
            {
                   unsigned char a[11];                  
                   int i;                                    
                   for(i=0;n>0;i++)       //tach so      
                        {
                              a[i]=(n%10)+48;  
                              n=n/10;                  
                        }
     a[i]=NULL;                        
                    for(i=strlen(a);i>=0;i--)   //gui so      
                 {                                                  
                        write_data(a[i]);                        

                 }
            }
    else write_data('0');
}

void write_realnum(float n)                        
{
            unsigned long a=n/1;               //tach phan nguyen
            unsigned long b=(n-a)*10000;      //tach phan thap phan
            write_intnum(a);                  // gui phan nguyen
            if(b!=0)                          //gui phan thap phan va dau "."
            {
                        write_data('.');                            
                        write_intnum(b);            
            }
}
void main(void)
{
      unsigned int count;
            TMOD=0x60;
            TH1=0x00;          
            sw=1;                
            TR1=1;                  

            while(1)                
            {
      delay_ms(30);
      init();
                        count=TL1;
      if (count >99)
      {
       count = 0;
       TL1=0;

      }
      write_intnum(count);
      delay_ms(10);

            }
}

( Full code + Mô Phỏng)
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download
Nguồn binhminhks.com

0 comments:

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P