学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 |