#include
"reg52.h"
#include
"intrins.h"
#include
"iic.h"
//匯流排引腳定義
sbit sda = p2^1;
/* 資料線 */
sbit scl = p2^0;
/* 時鐘線 */
void
iic_delay
(unsigned
char i)
while
(i--);
}//匯流排啟動條件
void
iic_start
(void
)//匯流排停止條件
void
iic_stop
(void
)//傳送應答
void
iic_sendack
(bit ackbit)
//等待應答
bit iic_waitack
(void
)//通過i2c匯流排傳送資料
void
iic_sendbyte
(unsigned
char byt)
scl =0;
}//從i2c匯流排上接收資料
unsigned
char
iic_recbyte
(void
)return da;
}
//pcf8591啟動dac
void
write_pcf8591
(unsigned
char cmd_byte,
unsigned
char data)
//pcf8591啟動adc
unsigned
char
read_pcf8591
(unsigned
char cmd_byte)
#include
"reg52.h"
#include
"smg.h"
unsigned
char c[n]
;unsigned
char
smg_chai
(unsigned
int t)
c[i]
=t;}
return i;
}
#include
"reg52.h"
#include
"iic.h"
#include
"smg.h"
#define fosc 11059200l
#define t1ms (65536-fosc/1000)
//1t模式
sfr auxr =
0x8e
;sfr p4 =
0xc0
;//定義p4口
sbit dac_out = p3^4;
sbit led_1 = p0^0;
sbit n_relay = p0^4;
sbit n_buzz = p0^6;
unsigned
char code duan=
;//共陰極段選0~9
unsigned
char code wei=
;//共陰極位選 1--8
unsigned
char temp,s,i1;
void
t0init()
;void
main()
// if(!dac_out)
// }}
void
t0init()
/* timer0 interrupt routine */
void
tm0_isr
() interrupt 1
else
s=0; p0=
0xff
;//關閉下段選,達到消隱的目的。
p2 =
0xe0
; p0=
~duan[c[s]
]; p2 =
0x00
; p0=
0x00
;//進入位選前先把p0清零,禁止選通數碼管。
p2 =
0xc0
; p0=
~wei[
7-s]
; p2 =
0x00
; p0=
0xff;if
(count--==0
)}
CT107D藍橋杯EEPROM使用(8)
今天我給大家講一下eeprom的使用,該記憶體採用的是iic通訊,所有我們要有乙個iic驅動程式,或者自己寫乙個,我前面寫過乙個,我這裡就不寫了。那麼下面我寫乙個開機計數的程式吧,這裡需要顯示出來。這裡我選擇數碼管顯示,數碼管驅動前面也有,我就直接用了 unsigned char read eepr...
藍橋杯CT107D之ds18b20
單匯流排延時函式 單匯流排延時函式,此處延時函式很重要,根據自己的時鐘頻率而定 void delay onewire unsigned int t y5指令集,fosc 11059200l,軟體延時15us t 1 單匯流排寫時序 通過單匯流排向ds18b20寫乙個位元組 void write ds...
藍橋杯CT107D初學之 調通數碼管
大致思路 開啟總硬體控制器 開啟子硬體 對子硬體操作實現功能 通過74hc138 控制 74hc02,74hc02 控制著led 蜂鳴器 數碼管 74hc573 控制選通可以選擇功能。以實現數碼管com選擇為例 wr通過跳線可以接地,低電平0.控制數碼管的 74hc573 功能表 即控制y6 wr使...