超聲波測距程序
0.jpg (10.15 KB, 下載次數: 27)
下載附件
2018-4-23 04:13 上傳
單片機源程序如下:
- /*******************************************************************************
- * 文件名 : MAIN.C
- * 版本 作者 日期 說明
- * V1.0 蘇敏 初始版本
- * 描述: MCU: AT89C52 晶振: 11.0592 MHz
-
- *******************************************************************************/
- #include <reg52.h>
- //#include "uart.h"
- #include <intrins.h>
- #include "csb.h"
- unsigned char code LedChar[] = {
- 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
- 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
- };
- unsigned char LedBuff[4] = {
- 0xC0, 0xC0, 0xC0, 0xC0
- };
- unsigned char i=0;
- void delay_ms(unsigned int x)
- {
- unsigned char i;
- while(x--)
- for(i=0;i<120;i++);
- }
- void date_kandle(unsigned int a) //????
- {
- unsigned int date;
- date=a;
- LedBuff[0]=date%10;
- date/=10;
- LedBuff[1]=date%10;
- date/=10;
- LedBuff[2]=date%10;
- date/=10;
- LedBuff[3]=date;
-
- }
- void time1_Init()
- {
- TMOD|=0X10;
- TH1=0XF0;
- TL1=0X60;
- ET1=1;
- EA=1;
- TR1=1;
-
- }
- void SMG_show() interrupt 3
- {
- TH1=0XF0;
- TL1=0X60;
-
- if(i==4) i=0;
- P1=1<<i;
-
- P0=LedChar[LedBuff[i]];
- i++;
-
- }
- /******延時大約1S的函數*******/
- void Delay999ms() //@11.0592MHz
- {
- unsigned char i, j, k;
- _nop_();
- i = 7;
- j = 0;
- k = 40;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- /************主函數**********/
- void main(void)
- {
- char i;
- //UartInit();
- time1_Init(); //串口初始化
- while(1)
- {
- date_kandle(csbProcess_F());
- Delay999ms();
-
- // UART_Put_Num(csbProcess_F()); //顯示超聲波測得的距離
- // UART_Send_Str(" cm"); //顯示" cm"
- // UART_Send_Enter(); //回車換行
- // Delay999ms(); //顯示大約1S,防止在串口上顯示過快
- }
- }
-
-
-
復制代碼
所有資料51hei提供下載:
超聲波測距.zip
(271.51 KB, 下載次數: 14)
2018-4-22 18:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|