久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 超聲波模塊測距(1602顯示) [打印本頁]

作者: 3.3.3.    時間: 2021-12-6 14:44
標題: 超聲波模塊測距(1602顯示)
用1602顯示超聲波測出的距離,源碼如下:
#include<AT89X52.H>
#include<intrins.h>
#include<1602.H>

#define uint unsigned int
#define uchar unsigned char
uint t=0;
uint s;
uchar w[]={0,0,0,0,0,0,0,0};

void zhuanhuancsb(uint l)
{
        w[0]=(l/10000)+'0';
        w[1]=(l%10000/1000)+'0';
        w[2]=(l%1000/100)+'0';
        w[3]='.';
        w[4]=(l%100/10)+'0';
        w[5]=(l%10)+'0';
        w[6]='c';
        w[7]='m';
}

void csb_int()
{
        P1_0=1;
        _nop_();_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();_nop_();
        P1_0=0;
        while(P1_1==0);
        TR0=1;                 
        while(P1_1==1);
        TR0=0;
        s=(t*340)/3;
}
void time_int()
{
        TMOD=0x01;
        TH0=(65536-10)/256;
        TL0=(65536-10)%256;
        IE=0x82;
}

main()
{                                                                               
        uint j;
        lcd_init();
        time_int();
        while(1)
        {
                t=0;
                csb_int();
                zhuanhuancsb(s);
                write_add(1,1);
                j=0;
                while(w[j]!='\0')
                {
                        write_Data(w[j]);
                        j++;
                }
        }       
}
void timer0() interrupt 1
{
        TH0=(65536-50)/256;
        TL0=(65536-50)%256;
        t++;
}


1602.c:
#include<AT89X52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit rs=P2^0;
sbit rw=P2^1;
sbit ep=P2^2;

#define lcddata P0

void delay(uchar ms)
{
        uchar i;
        while(ms--)
        {
                for(i=0;i<250;i++)
                {
                        _nop_();
                        _nop_();
                        _nop_();
                        _nop_();
                }
        }
}

void lcd_busy()
{
        uchar flag=0x80;
        lcddata=0xff;
        rs=0;
        rw=1;
        ep=1;
        delay(1);
        while(flag & 0x80)
        {
                flag=P0;
        }
        ep=0;
}

void write_cmd(uchar cmd,busy)
{
        if(busy==1)
        lcd_busy();
        rs=0;
        rw=0;
        ep=0;
        lcddata=cmd;
        delay(1);
        ep=1;
        delay(1);
        ep=0;
}

void write_Data(uchar Data)
{
        lcd_busy();
        rs=1;
        rw=0;
        ep=0;
        lcddata=Data;
        delay(1);
        ep=1;
        delay(1);
        ep=0;
}

void write_add(uchar x,y)
{
        if(x==1)
        {
                y=(y-1)|0x80;
                write_cmd(y,1);
        }
        else
        {
                y=(y-1)|0xc0;
                write_cmd(y,1);
        }
}

void lcd_init()
{
        lcddata=0x00;
        delay(15);
        write_cmd(0x38,0);
        delay(5);
        write_cmd(0x38,0);
        delay(5);
        write_cmd(0x38,0);
        delay(5);
        write_cmd(0x38,1);
        write_cmd(0x08,1);
        write_cmd(0x01,1);
        write_cmd(0x06,1);
        write_cmd(0x0c,1);
}

有了.c文件,我相信大家也一定會寫.h文件的,是吧

作者: lanxichang    時間: 2022-5-16 10:10
寫得挺好的,謝謝樓主分享
作者: 紅了腳丫    時間: 2024-7-30 22:03
為什么這個定時器的初始化函數(shù)void time_int(),溢出時間為10us,而中斷服務服務函數(shù)里的卻是50us?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 综合久久久久 | 8x8ⅹ国产精品一区二区 | 美日韩一区二区 | 国产高清在线观看 | 国产精品福利在线 | 日韩欧美影院 | 99xav| 日韩在线免费观看视频 | 亚洲手机在线 | 黄色网址在线免费观看 | 中国一级黄 | aaaa级片| 男女视频免费 | 免费一级全黄少妇性色生活片 | 亚洲在线一区二区 | 成年人毛片| 天天拍天天操 | 国产天堂网 | 日本理伦片午夜理伦片 | 日韩视频在线观看 | www亚洲天堂| 51成人做爰www免费看网站 | 免费av网站在线观看 | 国产视频一区在线 | 性史性dvd影片农村毛片 | 免费在线毛片 | 国产精品国产精品国产专区不片 | 国模一区二区 | 免费看黄色一级片 | 国内精品一区二区 | 夜夜操天天操 | 欧美色婷婷 | 一区二区免费视频 | 午夜国产福利 | www.国产.com| 可以看的毛片 | 天天插天天插 | 成人免费黄色片 | 午夜免费av| 亚洲高清免费 | 成人免费看片视频 |