51单片机晶振频率为12MHz,定时器1工作方式1中断方式在P2.3输出频率为10Hz的方波
MOVTH1,#(65536-50000)/256;送入初始值.MOVTL1,#(65536-50000)MOD256;定时50000us@12MHzMOVIE,#100...
MOV TH1, #(65536-50000) / 256 ;送入初始值.
MOV TL1, #(65536-50000) MOD 256 ;定时50000us@12MHz
MOV IE, #10001000B ;开放总中断和T1中断.
这个初值是怎么算出来的,10hz方波转换mhz怎么转换 展开
MOV TL1, #(65536-50000) MOD 256 ;定时50000us@12MHz
MOV IE, #10001000B ;开放总中断和T1中断.
这个初值是怎么算出来的,10hz方波转换mhz怎么转换 展开
2个回答
展开全部
MOD应该是/除号,因为是12M晶振,所以定时器一个计数值为1US,所以按这个赋值,定时器1将会50ms中断一次,要想产生10Hz的方波,周期得100ms,也就是说可以在中断服务程序中加条语句:cpl p2.3,就可以了,这样两次中断就是一个周期得方波信号,正好50X2=100ms。
更多追问追答
追问
那初值是不是:(2的16次----初值 乘以 机器周期=500乘以10的16次
追答
不是呀,单片机的机器周期=晶振/12,定时器是+到溢出申请中断的,也就是说在初值的基础上往上加,知道FFFF溢出,这里加一等于1微妙,你现在要产生10Hz的方波,周期是100毫秒也就是100000微妙,因为两次中断是一个周期,所以需要50000微妙中断一次,也就是说初值+50000就要溢出(=65536),因此初值=65536-50000。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询