用單片機的I/O口模擬I2C協議
I2C用IO模擬程序網上范例最多的就是51的程序了,這些范例的正確性無需懷疑.但是如果直接以它為藍本將它"AVR化",一不留神,就會有點問題了.
這要從I2C的硬件規范和AVR及51單片機的IO口說起.I2C要求SCL,SDA二線都有 線與 功能,即I2C驅動口應該是 漏極開路 電路,其高電平的維持是靠上拉電阻來實現的, 而低電平則需要驅動口的強下拉能力.
51單片機IO口正好完全符合這個特性.寫起I2C驅動頗為得心應手.但是AVR的IO口強大了,它輸出的高電平是實實在在的高電平,而不是靠什么上拉電阻來提供,只有10mA都不到的電流!于是如果直接使用 PORTB_Bit0 = 1這樣的操作,就不能滿足I2C的線與功能了,如果此時有別的設備要將SCL或者SDA拉低,那么結果就是二個IO口打架,誰贏誰輸不得而知,時間長了,多半是兩敗俱傷,芯片發熱吧.
當然AVR的IO口自然有辦法滿足I2C的電氣特性要求,不就是不能輸出1么,那么用它的高阻狀態即可(DDRB_Bit0=0,PORTB_Bit0=0即可),要輸出0么(DDRB_Bit0=1,PORTB_Bit0=0).
標簽:
I2C
AVR
程序
范例
上傳時間:
2016-07-19
上傳用戶:gxrui1991
使用過U盤的朋友都知道u盤病毒是一種Autorun自運行病毒,當雙擊時觸發病毒體,會復制自身到C D E和系統盤system32下等盤符,(生成exe文件和一個Autorun.inf文件),同時修改注冊表,當點擊C盤等盤符右鍵時,會有一個auto命令(黑色粗體)或者是兩個開始命令,本人學習vbs才15天,我也來模擬下這個autorun病毒 和部分熊貓燒香功能,本人能力有限, 只能模擬這樣的病毒了,聲明, 本人模擬這個病毒,全是為了學習和技術,切忌不要搞破壞,如果有人用本人代碼破壞,后果自負
標簽:
Autorun
system
病毒
exe
上傳時間:
2014-01-03
上傳用戶:jing911003