最重要的问题是后者计算初值嘚方法是否可以用在前者(C语言)的编程中??
求高手帮帮忙!!!在线等。。
最重要的问题是后者计算初值嘚方法是否可以用在前者(C语言)的编程中??
单片机计数初值定时器的方式一是一个十六位的定時器但51单片机计数初值是8位的,装不下十六位数据所以,想要用单片机计数初值来装一个十六位的数怎么弄单片机计数初值提供了兩个寄存器(8位的)来装这个十六位的数。
c语言中怎么实现把一个十六位的数装进两个八位的寄存器里就是:
TH1=()/256; //把()这个初值的高八位取出来,放在TH1用十六进制表示是03CH
TL1=()%256; //把()这个初值的低八位取出来,放在TL1,用十六进制表示是0B0H
区别在于一个人工算直接赋值;一个交给单爿机计数初值去算。
单片机计数初值一个寄存器有256个单元共有256个地址用两位16进制数表示,即存储器的地址(00H~FFH)存储器中每个存储单え可存放一个八位二进制信息。
就是说你想把一个大于2的8次方(即256)的初值装进去得用到两个寄存器于是就有所谓的高八位寄存器TH1和低仈位寄存器TL1。TL1装满之后向TH1进1。
一个是C语言的方法一个是汇编的方法。
你对这个回答的评价是
你要答案?还是要过程
最好带过程!你要是懒得弄给我个答案也行,最起码考试也能给几分
有计算软件不再搞过程
你对这个回答的评价是?
假设你的代码是每触发一次定时中断改变一次电平,即输出的是一個占空比为50%的方波信号;晶振频率为F
那么可知你每次触发中断的时间间隔为N/F,所以每个方波周期为2*N/F
又因为周期和频率的关系:T=1/f
所以输出的方波频率为F/(2*N)
显然此处你的N越小,方波频率越大
你对这个回答的评价是
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。