資源簡介
SCA60角度檢測傳感器模塊程序
利用1602顯示AD轉換結果
利用1602顯示AD轉換結果
代碼片段和文件信息
/********************************************************************?
????????????????????????????????????????龍戈電子?
實現功能:SCA60C最小系統版配套測試程序?
使用芯片:STC12C5A60S2?
晶振:11.0592MHZ?
波特率:9600?
編譯環境:Keil?
作者:LOGO??
網站:www.auto-ctrl.com?
【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!???????
*********************************************************************/?
/********************************************************************?
說明:1、?當傳動傳感器時?在1602上輸出角度值
*********************************************************************/?
/********************************************************************?
接線說明:1、?vcc-----5V???GND------GND??V0---------P1^0
*********************************************************************/?
#include?
#include?
#include
#include
#define?uchar?unsigned?char
#define?uint??unsigned?int?
typedef?unsigned?char?BYTE;
typedef?bit?BOOL;??
sfr???AUXR1?????=???0xA2;
sfr???ADC_CONTR?????=???0xBC;??????????????//ADC?control?register
sfr???ADC_RES???????=???0xBD;??????????????//ADC?high?8-bit?result?register
sfr ??ADC_RESl ?= ???0xBE;
sfr???P1ASF?????????=???0x9D;??????????????//P1?secondary?function?control?register
#define???ADC_POWER?????0x80???????????????//ADC?power?control?bit
#define???ADC_FLAG??????0x10???????????????//ADC?complete?flag
#define???ADC_START????0x08???????????????//ADC?start?control?bit
#define???ADC_SPEEDLL???0x00???????????????//540?clocks
#define???ADC_SPEEDL????0x20???????????????//360?clocks
#define???ADC_SPEEDH???0x40???????????????//180?clocks
#define???ADC_SPEEDHH???0x60???????????????//90?clocks
int?ijdisplay=0t02s;
double?c;
int?cdisplaylow2;
sbit?LCD_RS?=?P2^5;?????????????
sbit?LCD_RW?=?P2^6;
sbit?LCD_EP?=?P2^7;
sbit?warning?=?P3^2;
sbit?beep?=?P3^4;
//////////////顯示數組
BYTE?code?dis1[]?=?{“???WELCOME??TO???“};
BYTE?code?dis2[]?=?{“3W.auto-ctrl.COM“};
BYTE?code?dis3[]?=?{“TEST...“};
BYTE?code?dis5[]?=?{“WWW.auto-ctrl.COM“};
BYTE?code?Shock[]?=?{“?Shock?“};
BYTE?code?Quiet[]?=?{“?Quiet?“};
uchar???tab2[]={‘v‘‘o‘‘l‘‘t‘‘a‘‘g‘‘e‘};
void?ADC();
void?flash();?
unsigned?int?GetADCResult(int?ch);
void?ADC();
void?InitADC();
void?delay(int?ms)
{???????????????????????????//?延時子程序
while(ms--)
{
??for(i?=?0;?i250;?i++)
??{
???_nop_();
???_nop_();
???_nop_();
???_nop_();
??}
}
}
BOOL?lcd_bz()
{??????????????????????????//?測試LCD忙碌狀態
BOOL?result;
LCD_RS?=?0;
LCD_RW?=?1;
LCD_EP?=?1;
_nop_();
_nop_();
_nop_();
_nop_();
result?=?(BOOL)(P0?&?0x80);
LCD_EP?=?0;
return?result;?
}
void?lcd_wcmd(BYTE?cmd)
{??????????????????????????//?寫入指令數據到LCD
while(lcd_bz());
LCD_RS?=?0;
LCD_RW?=?0;
LCD_EP?=?0;
_nop_();
_nop_();?
P0?=?cmd;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP?=?1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP?=?0;??
}
void?lcd_pos(BYTE?pos)
{??????????????????????????//設定顯示位置
lcd_wcmd(pos?|?0x80);
}
void?lcd_wdat(BYTE?dat)?
{??????????????????????????//寫入字符
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10243??2012-04-05?23:07??sca60c?adc\shock4?adc.c
?????文件????????525??2012-04-05?23:08??sca60c?adc\sca60c.plg
?????文件?????????48??2012-04-05?23:08??sca60c?adc\sca60c.lnp
?????文件??????22014??2012-04-05?23:08??sca60c?adc\sca60c.M51
?????文件???????9572??2012-04-05?23:08??sca60c?adc\sca60c.hex
????.......?????????0??2012-03-28?22:43??sca60c?adc\sca60c_uvproj.bak
????.......?????13240??2012-03-28?23:21??sca60c?adc\sca60c.uvproj
?????文件??????19031??2012-04-05?23:08??sca60c?adc\shock4?adc.LST
?????文件??????20662??2012-04-05?23:08??sca60c?adc\shock4?adc.OBJ
?????文件??????19889??2012-04-05?23:08??sca60c?adc\sca60c
????.......?????73150??2012-04-05?23:06??sca60c?adc\sca60c_uvopt.bak
????.......?????73144??2012-04-05?23:08??sca60c?adc\sca60c.uvopt
?????目錄??????????0??2012-03-28?22:42??sca60c?adc
-----------?---------??----------?-----??----
???????????????261518????????????????????13
- 上一篇:文件監視器file monitor
- 下一篇:CVI下的TCP服務器和客戶端
評論
共有 條評論