邢矯健
在MCS-51單片機(jī)已經(jīng)被廣泛使用的時候,還沒有I2C協(xié)議標(biāo)準(zhǔn)。但今天,I2C已經(jīng)作為IC之間的標(biāo)準(zhǔn)數(shù)據(jù)交換協(xié)議被廣泛采用。沒有I2C接口的MCS-51單片機(jī)也常會涉及和標(biāo)準(zhǔn)I2C器件交換數(shù)據(jù),所以MCS-51模擬I2C接口的文章也常見諸報(bào)端。最近,筆者為了設(shè)計(jì)一個基于I2C時鐘的電子打鈴器的方案,先進(jìn)行了一次MCS-51模擬I2C接口操作的實(shí)戰(zhàn)編程。原以為憑著手頭的各種資料,可以輕松完成,沒想到頗費(fèi)了一番周折,所以特將自己獲得的經(jīng)驗(yàn)作個小結(jié)。
1. I2C器件的硬件結(jié)構(gòu)
I2C總線由SDA和SCL兩條信號線組成,其中SDA為數(shù)據(jù)線,SCL為時鐘信號線。I2C總線上可以掛接SRAM、E2PROM、ADC/DAC、RTC、I/O口、DTMF、時鐘芯片、溫度芯片等有標(biāo)準(zhǔn)I2C接口的芯片,形成一個完備的數(shù)字化處理系統(tǒng)。上電時,SDA和SCL都由各自線上接的上拉電阻拉到高電平狀態(tài)。