91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-19
  • 語言: 其他
  • 標簽: 超聲波??avr??源碼??

資源簡介

超聲波的AVR源碼,附帶有超聲波的詳細使用資料

資源截圖

代碼片段和文件信息

/************************************************************************************************************************************
?????????????????????????????????????????????超聲波測距(12864串行,以5位毫米值顯示)
本程序不帶溫度補償,取聲速為340m/s給發射角一個10--25us的高電平,模塊會自動發射8個40KHZ的脈沖,接收端高電平的持續時間就是超聲波在空氣中的傳播時間,根據
公式:length=?[time(us)?*?340(m/s)?/?2?](mm),能測量30mm--2500mm15°夾角
發射腳(trig):PB1
接收腳(echo):PB2
***********************************************************************************************************************************/
#include?
#include?
#define?F_CPU 8000000UL
#include?
#define?uchar?unsigned?char?
#define?uint?unsigned?int?

uchar?table[]={};??//存放以毫米顯示的5位長度值
/******************12864液晶引腳定義********************/
#define?LCD_CS_H??????PORTD|=(1<<4)?????
#define?LCD_CS_L??????PORTD&=~(1<<4)?????
#define?LCD_SID_H?????PORTD|=(1<<5)??????
#define?LCD_SID_L?????PORTD&=~(1<<5)?????
#define?LCD_SCLK_H????PORTD|=(1<<6)??????5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
#define?LCD_SCLK_L????PORTD&=~(1<<6)?
/***************MCU向液晶模塊發送1一個字節的數據*********
參????數:type--數據類型,0--控制命令,1--顯示數據
??????????transdata--發送的數據
*********************************************************/
void?LCD_SEND(unsigned?char?typeunsigned?char?transdata)
{
unsigned?char?firstbyte=0xf8;??//如果type為0?則STD的第一個字節直接賦為1111?1000因為只寫,所以RW一直為0,發送命令,所以RS也為0
unsigned?char?tempij=3;
?? if(type)?firstbyte?|=?0x02;????//因為串行STD的第1個字節為1111?1(RW)(RS)0?若RS為1,說明為發送數據
LCD_CS_H;???//將CS置高 ?
????LCD_SCLK_L; //將時鐘先置低
????while(j>0)
????{
???? if(j==3)??????temp?=?firstbyte;
????????else?if(j==2)?temp?=?transdata&0xf0;?//因為串行STD的第2個字節為1111?0000只保留高4位
????????else??????????temp?=?(transdata<<4)&0xf0;??//因為串行STD的第3個字節為0000?1111,但是他把低四位整個的移到了前邊???????????
????????for(i?=?8;i?>?0;i--)??//通過循環移位發送第一個字節,每次發送一位,首先發送最高位
??????? {
???????? if(temp&0x80) {LCD_SID_H;}?//如果最高位為1,則SID置1
????????????else ????? {LCD_SID_L;}?//如果最高位為0,則SID置0即先將數據放在SID端口上
????????????LCD_SCLK_H;??//然后將時鐘拉高
????????????temp?<<=?1;??//將要傳送的數據移一下位???
????????????LCD_SCLK_L;
????????}
????????if(j==3)?_delay_us(600);?
????????else?????_delay_us(200);
????????j--;
????}????
????LCD_SID_L;???????
????LCD_CS_L;??//每發送完一個字節CS都要置低
}
/*******************液晶初始化函數***************************/
void?LCD_init(void)
{
DDRD?|=?0XF0;
PORTD?|=?0XF0;
_delay_ms(10);??????//延時等待液晶完成復位
????LCD_SEND(00x30);???/*功能設置:一次送8位數據基本指令集*/
????_delay_ms(1);
????LCD_SEND(00x02);???/*DDRAM地址歸位*/
????_delay_ms(1);
????LCD_SEND(00x0c);???/*顯示設定:開顯示不顯示光標不做當前顯示位反白閃動*/
????_delay_ms(1);
????LCD_SEND(00x01);???/*清屏,將DDRAM的位址計數器調整為“00H”*/
????_delay_ms(1);
????LCD_SEND(00x06);???/*功能設置,點設定:顯示字符/光標從左到右移位DDRAM地址加1*/
????_delay_ms(1);
LCD_SEND(00x80);???//設定顯示的起始地址
_delay_ms(100);?????//必須延時,否則第一行顯示錯誤并且延時過短第一行也會出現錯誤
}
/***********************精確延時24.

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-03-10?08:37??超聲波的AVR程序\
?????文件????????3126??2011-03-14?17:39??超聲波的AVR程序\2011-01-10-chaoshengbo-1.aps
?????文件?????????300??2011-05-08?17:17??超聲波的AVR程序\2011-01-10-chaoshengbo-1.aws
?????文件????????4882??2011-03-14?17:39??超聲波的AVR程序\2011-01-10-chaoshengbo-1.c
?????目錄???????????0??2012-03-10?08:37??超聲波的AVR程序\default\
?????文件????????4882??2011-03-14?17:39??超聲波的AVR程序\復件?2011-01-10-chaoshengbo-1.c

評論

共有 條評論