|
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P3^4;
sbit LCD1602_RW=P3^6;
sbit LCD1602_RS=P3^5;
sbit led = P1^0;
sbit TX = P1^2; //TRIG觸發(fā)控制信號(hào)
sbit RX = P1^1; //echo
uint time = 0; //定義時(shí)間
unsigned long S = 0; //距離
bit flag = 0; //定義一個(gè)標(biāo)志位
uchar disdat[4] = {0,0,0,0,}; //定義一個(gè)數(shù)組
void delay(uchar i) //延時(shí)函數(shù)
{
uchar x,y;
for (x = i;x > 0;x--)
for(y = 114;y > 0;y--);
}
/*******************************************************************************
* 函 數(shù) 名 : Lcd1602_Delay1ms
* 函數(shù)功能 : 延時(shí)函數(shù),延時(shí)1ms
* 輸 入 : c
* 輸 出 : 無(wú)
* 說(shuō) 名 : 該函數(shù)是在12MHZ晶振下,12分頻單片機(jī)的延時(shí)。
*******************************************************************************/
void Lcd1602_Delay1ms(uint c) //1602延時(shí) 誤差 0us
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
/*******************************************************************************
* 函 數(shù) 名 : LcdWriteCom
* 函數(shù)功能 : 向LCD寫(xiě)入一個(gè)字節(jié)的命令
* 輸 入 : com
* 輸 出 : 無(wú)
*******************************************************************************/
#ifndef LCD1602_4PINS //當(dāng)沒(méi)有定義這個(gè)LCD1602_4PINS時(shí)
void LcdWriteCom(uchar com) //寫(xiě)入命令
{
LCD1602_E = 0; //使能
LCD1602_RS = 0; //選擇發(fā)送命令
LCD1602_RW = 0; //選擇寫(xiě)入
LCD1602_DATAPINS = com; //放入命令
Lcd1602_Delay1ms(1); //等待數(shù)據(jù)穩(wěn)定
LCD1602_E = 1; //寫(xiě)入時(shí)序
Lcd1602_Delay1ms(5); //保持時(shí)間
LCD1602_E = 0;
}
#else
void LcdWriteCom(uchar com) //寫(xiě)入命令
{
LCD1602_E = 0; //使能清零
LCD1602_RS = 0; //選擇寫(xiě)入命令
LCD1602_RW = 0; //選擇寫(xiě)入
LCD1602_DATAPINS = com; //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E = 1; //寫(xiě)入時(shí)序
Lcd1602_Delay1ms(5);
LCD1602_E = 0;
|
-
-
1602超聲波顯示.rar
2017-6-29 17:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
25.5 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5
|