不是比較大小, 是讀取端口的 0/1, 通過 二級管 配合下拉電阻, 拉低信號的電平。讓你信號輸出 2.1V的時候,單片機能讀到0,信號輸出3.2V的時候,能讀到1, STC12有段時間沒有用了,我印象當中STC12 應該在斯密特發生器的伐值0.7V~1.6V這個范圍,應該接一個二級管即可, 基于斯密特發生器的特性,可能需要IO設置為開漏模式,讀IO之前,需要先給個低電平讓斯密特發生器判別為0,再置1讀IO,此時你的信號如果輸出的2.1V通過二級管壓降到1.4V 沒有滿足斯密特發生器的 1.6V,則讀到還是0,反之則會讀到1。
如果,折騰不好這個伐值,只能用 0.1uf 電容,通過IO放電,再開定時器,再IO置1充電,等到度到高電平了,判斷定時器的時間長短,來區分你的信號是 3.2V, 還是2.1V.
類似的這些方法有很多,但是,這些都需要你試驗去調整的,你如果這方面知識,一片空白的話,建議你還是用比較器。 |