學51單片機不難,要多寫代碼多實踐。建議你去看看郭天祥的《新概念51單片機 C語言教程》這本書還有他的視頻,我當初初學51的時候就是看這本書學的,很有用。一般來說初學51單片機的時候很多人都是難倒在中斷、定時器和計數器;很多人都不理解為啥要裝載初值,計數器的溢出值會是65536(65536=2^16,因為計數器是16位的);當計數器的計數值達到65536這個值后,單片機就會進入中斷;而計數器計這么多數是需要時間的(大約65ms),如果我們想要計數器50ms就進入中斷,那么我們就要先裝填入一個初值,然后計數器就會從這個初值開始計數,當計數到65536這個數時就剛好是50ms(65536=初值數+50ms計的數(大約是50000)),而一個16位的計數器又分為了高8位和低8位(2^8=256),所以裝載初值的代碼一般會寫成這樣:TH0 = (65535-初值數)/256 |