freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的酒精濃度檢測系統(tǒng)本科畢業(yè)論文(參考版)

2025-06-30 20:06本頁面
  

【正文】 void L1602_int(uchar, uchar, int)。void L1602_char(uchar ,uchar ,char )。void write(uchar )。uchar Convert(uchar )。 //1602讀寫引腳 sbit RS=P2^7。} include define uchar unsigned chardefine uint unsigned int//這三個引腳參考資料sbit E=P2^5。 Check_Ack()。 Check_Ack()。 Check_Ack()。 } void wrteeprom(unsigned char addr,unsigned char dat){ IICStart()。 IICStop()。 temp=Read_byte()。 Write_byte(0xa1)。 Check_Ack()。 Check_Ack()。 IICStart()。}unsigned char rdeeprom(unsigned char addr){ unsigned char temp=0。 SCL=0。 temp=temp|0x01。 DELAY(1)。i++) { SDA=1。 for(i=0。 else SEND0()。i++) { if((dati)amp。 for(i=0。 return 0。 }} DELAY(1)。 if (!errtime) { IICStop()。 while(CY) { errtime。 DELAY(1)。 DELAY(1)。 SCL=0。 SCL=1。}void SEND1(void){ SDA=1。 DELAY(1)。 }void SEND0(void){ SDA=0。 DELAY(1)。 DELAY(1)。 }void IICStop(void){ SDA=0。 DELAY(1)。 DELAY(1)。 SDA=1。}void IICStart(void){ SCL=0。 //讀AT2402函數(shù)void wrteeprom(unsigned char addr,unsigned char dat)。 //I2C發(fā)送字節(jié)函數(shù)unsigned char Read_byte(void)。 //I2C發(fā)送0函數(shù)void SEND1(void)。 //I2C應(yīng)答非函數(shù)bit Check_Ack(void)。 //I2C結(jié)束函數(shù)void Ack(void)。 //延時函數(shù)void IICStart(void)。 //模擬I2C 總線的引腳定義sbit SDA = P1^1。 } L1602_char(hang, lie+3, gewei+48)。39。 L1602_char(hang, lie+3, gewei+48)。)。 } else if (num=10) { if (sign == 1) { L1602_char(hang, lie+1, 39。 L1602_char(hang, lie+2, shiwei+48)。)。 if (num=100) { if (sign == 1) //負(fù)數(shù) { L1602_char(hang, lie, 39。 gewei = temp shiwei*10。 temp = temp baiwei*100。 } temp = abs(num)。 if (num = 0) { sign = 0。 39。)。 L1602_char(hang, lie+2, 39。 39。)。 //首先將4位清空 L1602_char(hang, lie+0, 39。 }}//顯示整型的溫濕度數(shù)據(jù)用,共占用4位,其中一位符號位void L1602_int(uchar hang, uchar lie, int num){ uint temp。 write(*p)。\039。 enable(a)。 if(hang == 2) a = 0xc0。}void L1602_string(uchar hang,uchar lie,uchar *p){ uchar a。 enable(a)。 if(hang == 2) a = 0xc0。}void L1602_char(uchar hang,uchar lie,char sign){ uchar a。 enable(0x06)。 enable(0x38)。 delay()。 delay()。 RW = 0。}void write(uchar del){ P0 = Convert(del)。 E = 1。 E = 0。 RS = 0。}uchar Convert(uchar In_Date){ return In_Date。 j=2。 i=10。 } }/********************************************************************include include void delay(){ int i,j。 else keyDown = 1。 else keyUp = 1。 FlagKeyPress = 0。 keyvalue = 2。amp。 keyvalue = 1。amp。 else Led_Warn2 = 1。 FlagStartAL = 0。 //超過閾值,則 Led_Warn1燈報警,否則報警燈滅。 //將mV轉(zhuǎn)變成mg/L,K_MG_MV系數(shù)需要校準(zhǔn) L1602_int(1,9,ALValue)。 //首先減去零點(diǎn)漂移,一般是130mV if (ALValue 0) ALValue = 0。 while(1) { if (FlagStartAL == 1) //如果FlagStartAL標(biāo)志置位,則進(jìn)行AD轉(zhuǎn)換 { //酒精濃度換算,50mg/L=,傳感器靈敏度應(yīng)事先校準(zhǔn) ALValue = 500 * GetADVal() / 256。 Load_Setting()。 L1602_string(1,1,Alcohol: mg/L)。} L1602_string(1,1, )。j1000。i1000。 L1602_string(2,1,Designed by AAA )。 L1602_init()。 //端口初始化 ADC_Init()。 //數(shù)據(jù)初始化 Timer0_Init()。 EA = 0。 Save_Setting()。 default: break。 case 2: if (Threshold1) Threshold。}void KeyProcess(uint num) //按鍵處理程序, 1為Up鍵,2為Down鍵{ switch (num) { case 1: if (Threshold255) Threshold++。 *pSave = rdeeprom(1)。Threshold。 //存醉酒閾值高8位 DELAY(300)。 pSave ++。 //地址低位對應(yīng)低8位,高位對應(yīng)高8位 wrteeprom(0, *pSave)。}//存入設(shè)定值void Save_Setting(){ pSave = (char *)amp。=0xe7。0x10)==0)。 ADC_CONTR |= 0x08。i)。 for(i= ADC_CONTRamp。i) 。 // for(i=2500。 //1110,0000 清ADC_FLAG,ADC_START位和低3位 ADC_CONTR = ADC_CONTRamp。 //延時一會 ADC_CONTR = ADC_CONTRamp。i0。 //清零先前的結(jié)果 ADC_CONTR|=0x80。 P1ASF = 0x80。 //10000000, P1M1 = 0x80。 ALCounter = 0。 //給定時器賦初值 //每1秒鐘啟動一次AD轉(zhuǎn)換 ALCounter ++。 //啟動定時器}void Timer0_ISR (void) interrupt 1 using 0 //定時器0中斷{ TL0 = 0xcc。 // TH0 = 0xf8。 //允許定時器0中斷 TMOD = 1。 keyDown = 1。 keyvalu
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1