部分源碼:完整源碼見附件
- #include<reg52.h>
- #define LCD1602_DB P0
- #define u8 unsigned char
- #define u16 unsigned int
- sbit LCD1602_RS = P2^6;
- sbit LCD1602_EN = P2^5;
- sbit LCD1602_RW = P2^7;
- sbit TX =P1^3;
- sbit RX =P1^4;
- bit flag =0;
- u16 time =0;
- int S =0;
- int H,L;
- u8 list[]={"0.00M"};
- u8 code asc[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
- void Read_Busy()
- {
- u8 sta;
- LCD1602_DB = 0xff;
- LCD1602_RS = 0;
- LCD1602_RW = 1;
- do
- {
- LCD1602_EN = 1;
- sta = LCD1602_DB;
- LCD1602_EN = 0;
- }while(sta & 0x80);
- }
- void Lcd1602_Write_Cmd(u8 cmd)
- {
- Read_Busy();
- LCD1602_RS = 0;
- LCD1602_RW = 0;
- LCD1602_DB = cmd;
- LCD1602_EN = 1;
- LCD1602_EN = 0;
- }
- void Lcd1602_Write_Data(u8 dat)
- {
- Read_Busy();
- LCD1602_RS = 1;
- LCD1602_RW = 0;
- LCD1602_DB = dat;
- LCD1602_EN = 1;
- LCD1602_EN = 0;
- }
- void LcdSetCursor(u8 x,u8 y)
- {
- u8 addr;
- if(y == 0)
- addr = 0x00 + x;
- else
- addr = 0x40 + x;
-
- Lcd1602_Write_Cmd(addr|0x80);
- }
- void LcdShowStr(u8 x,u8 y,u8 *str)
- {
- LcdSetCursor(x,y);
- while(*str != '\0')
- {
- Lcd1602_Write_Data(*str++);
- }
- }
- void InitLcd1602()
- {
- Lcd1602_Write_Cmd(0x38);
- Lcd1602_Write_Cmd(0x0c);
- Lcd1602_Write_Cmd(0x06);
- Lcd1602_Write_Cmd(0x01);
- }
- void Delay1ms() //@12.000MHz
- {
- unsigned char i, j;
- i = 2;
- j = 239;
- do
- {
- while (--j);
- } while (--i);
- }
- void Delay(u16 t)
- {
- while (--t)
- Delay1ms();
- }
- void Conut(void)
- {
- time=TH0*256+TL0;
- TH0=0;
- TL0=0;
- S=(time*1.7)/100;
- if (S<35)S=S+1;
- list[0]=asc[S%1000/100];
- list[1]=asc[10];
- list[2]=asc[S%100/10];
- list[3]=asc[S%10];
- list[4]=asc[12];
- }
- void StartModule()
- {
- TX=1;
- Delay(800);
- TX=0;
- }
- void Timer0Init(void) //@12.0000MHz
- {
- TMOD &= 0xF0;
- TMOD |= 0x01;
- TL0 = 0;
- TH0 = 0;
- TF0 = 0;
- }
- void main()
- {
- Timer0Init();
- InitLcd1602();
- H=200;
- L=100;
- LcdShowStr(5,0,list);
- while(1)
- {
- StartModule();
- while(!RX);
- TR0=1;
- while(RX);
- TR0=0;
- Conut();
- LcdShowStr(5,0,list);
- }
- }
復制代碼 完整源碼:
超聲波HC-SR04與STC89C52RC用1602顯示.rar
(34.27 KB, 售價: 1 E幣)
2021-5-6 00:18 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|