|
本帖最后由 xyz_1234 于 2023-7-12 07:23 编辑
老51单片机,DIP40管脚好焊接好测量,十几MHz频率四平八稳,做跑马灯、电子钟、老鼠笼、温控器蛮好。
串口常用,波特率有个一览表方便,古法手搓。
用定时器1的8位自动重载模式,波特率=晶振频率÷12÷(256-TH1)÷(16或32)。
用定时器2的16位自动重载模式,波特率=晶振频率÷2÷(65536-RCAP2H,L)÷16。
UART每次传输约10bit,一般是在每个bit的中点时刻采样,及至最后一位的时刻误差小于半个bit就可以。绿色框标出了误差较小的项。
曾想,既然UART必然要用波特率时钟,为何要搞一大堆定时器设置、时钟源选择,而不添个专用的时钟源?
搓此表格时,又看了一下规格书,原来Atmel的89C51是有这个专门的串口波特率发生器的,BDRCON(9Bh)、BRL(9Ah),这么多年一直没发现 。
Intel、Philips、STC的51好像没有这个专门模块。网上多见的例子都是用定时器1、定时器2。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|