1、晶振的精度是主要原因。这个也是最基本的误差2、定时器程序设计,在定时中断里面,要逐条程序分析所需要的执行时间,累计的和就是误差。比如说,从理论上讲,它的含义是在给定的温度范围内,这只晶振的频率误差范围是:±(10MHz × 20ppm)±200Hz.也就是晶振的频率将在9.9998MHz至10.0002MHz之间.这里,ppm代表百万分之一,
系统晶振频率为12MHz,试写出通信波特率为4800b/s(要求误差尽量小),通信格式为1位停止位、8位数据位、1位停止位,允许串行接收中断的初始化函数。相关知识点:解析答:void uar原因为用定时器1计算波特率时误差较大,当波特率大时,串口通信结果不正确。STC89C52单片机中含有定时器2
晶振的最大波特率及其误差介绍用11.0592M 和22.1184M,这样在通讯的时候误差最小。Crystal(MHz) MaxBaudRate Error1.000000 300 2.12%1.843200 9600 0.00%2.000000 300 0.710(ppm)×24(一天24小时)×60(一小时60分钟)×60(一分钟60秒)=864000*1/1000000=0.864S,即日误差不超过0.864秒,计算误差很大。通过类比,精度值越大,时间误差越大。所以时钟晶
当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽嵌入式开发中,有时候对晶振误差比较敏感,本文提供了晶振自身误差的计算方法,以便根据实际需求选择合适的晶振。晶体根据等级分为0.1ppm\0.5ppm\1ppm\2ppm\5pp
答:在-20℃~+70℃温度范围内:温度误差范围±(10MHz × 20ppm)=±200Hz; 晶振的频率为9.999800MHz ~ 10.000200MHz.由上图知,理论上,要使采集的数为正确的,则第8位必须正确,则允许发送一字节累加误差不能超过50%,单个的位误差不能超过50/10*100% = 5%,由此可知在9600的波特率下,使用12MHz的晶振时,