找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2084|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的測(cè)液滴控速 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:207760 發(fā)表于 2017-6-4 19:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar num=0,n=0;
int juli=0;
uint sudu=0,s=0,d=0;        
sbit lcden=P1^5;  //使能端
sbit lcdrs=P1^6;        //液晶數(shù)據(jù)命令選擇端1
sbit beep=P1^3;
//uchar code table[]={"0123456789"};
void int0_init(void);                //函數(shù)聲明
/***************************************************
*                                                                外部中斷0初始化子函數(shù)
*                                        下降沿觸發(fā),開(kāi)啟INT0中斷,開(kāi)總中斷
****************************************************/

void delayms(int x)
{
   int i,j;
   for(i=0;i<x;i++)
      for(j=0;j<110;j++);                                                         //1ms延時(shí)
}
void delayus(int t)
{
   while(t--);                                                                                 //1us延時(shí)
}
                                                                                                         //液晶
void write_com(uchar com)
{
   lcdrs=0;
   P2=com;
   delayms(5);
   lcden=1;
   delayms(5);
   lcden=0;
}
void write_data(uchar date)
{
   lcdrs=1;
   P2=date;
   delayms(5);
   lcden=1;
   delayms(5);
   lcden=0;
}
void init()
{
   write_com(0x38);
   write_com(0x0c);
   write_com(0x06);
   write_com(0x01);
}

void int0_init(void)
{
        IT0 = 1;                //下降沿觸發(fā)
        EX0 = 1;                //開(kāi)啟INT0中斷
        EA = 1;                        //開(kāi)啟總中斷
}

void display()
{
        write_com(0x80);
        write_data('V');
        write_data('=');
//        write_data(0x30+sudu/10000);
        write_data(0x30+sudu%10000/1000);
        write_data(0x30+sudu%10000%1000/100);
        write_data(0x30+sudu%10000%1000%100/10);
        write_data(0x30+sudu%10);
        write_data('c');
        write_data('m');
        write_data('/');
        write_data('s');        

        write_com(0x80+0x40);
        write_data('S');
    write_data('=');
        write_data(0x30+juli/10000);
        write_data(0x30+juli%10000/1000);
        write_data(0x30+juli%1000/100);
        write_data(0x30+juli%1000%100/10);
        write_data(0x30+juli%10);
        write_data('c');
    write_data('m');
//        write_data(' ');
//        write_data(0x30+i/1000);
//        write_data(0x30+i%1000/100);
//        write_data(0x30+i%1000%100/10);
//        write_data(0x30+i%10);
}

//主函數(shù)
void main(void)
{
    TMOD=0X01;
        EA=1;
        ET0=1;
    TH0=0xb8;
           TL0=0x00;
        TR0=0;
        int0_init();                //外部中斷0初始化
        init();
        while(1)
        {
             display();
                 if(sudu>220)  {beep=0;}
                   if(sudu<220)  {beep=1;}

        }                        //原地踏步
}

/***************************************************
*                                                                中斷響應(yīng)子函數(shù)
*                                        響應(yīng)外部中斷0,LED翻轉(zhuǎn),中斷標(biāo)志位自動(dòng)清零
****************************************************/
void int0_process() interrupt 0
{
         n++;
         d++;
         juli=2*d;
         TR0=1;
         IE0=0;
}

void time0() interrupt 1
{
    TH0=0xb8;//裝初值
        TL0=0x00;//裝初值
        num++;
        if(num==25)
        {
          num=0;
          sudu=2*n;
          n=0;
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表