① stc8h单片机如何设置pwm频率
首先,STC8H不需要外部晶振和外部复位,也可以外接。它的时钟4M-36M。和其它stc芯片的区别是它的运行速度够快,8路16位的高级pwm定时器,4路可以输出互补的脉冲信号,在用这个芯片的时候我发现手册上有些地方讲的不是太清楚,对照了32的手册才明白了原理,今天着重说一下高级定时器的那部分。
STC8H 系列的单片机内部集成了 8 通道 16 位高级 PWM 定时器,分成两组周期可不同的 PWM,分别命名为 PWMA 和 PWMB可分别单独设置。第一组 PWM/PWMA 可配置成 4 组互补/对称/死区控制的 PWM 或捕捉外部信号,第二组 PWM/PWMB 可配置成 4 路 PWM 输出或捕捉外部信号。
pwmA可配置成输出比较,输入捕获以及pwm模式,pwm有边沿对齐以及中间对齐模式,可直接驱动一些小型的电机,在驱动一些小型的电机时一定要将相应的io口配成推挽输出在,不然驱动不起来,具体的原理就不写了,主要说一下主要寄存器以及主要模式的配置。
选择计数器时钟(内部、外部或者预分频器(PSCR)),我用的都是内部。
预分频器看你想要输出的频率范围自己设置
2. 将相应的数据写入 PWMA_ARR(设频率) 和 PWMA_CCRi (设占空比)寄存器中。频率=时钟/(PSCR+1)/(ARR+1)
3. 如果要产生一个中断请求,设置 CCiIE 位,在中断判断SR1状态位,PWMA和PWMB不是一个中断号。
4. 选择输出模式步骤:
1. 设置 OCiM=011,在计数器与 CCRi 匹配时翻转 OCiM 管脚的输出
2. 设置 OCiPE = 0,禁用预装载寄存器
3. 设置 CCiP = 0,选择高电平为有效电平,开始输出高电平。
4. 设置 CCiE = 1,使能输出
5. 设置 PWMA_CR1 寄存器的 CEN 位来启动计数器。
输入捕获配置:
先设置PSCR,根据你的所测频率范围来设数据。设ARR一般为最大值
1.选择有效输入端,设置 PWMA_CCMR1 寄存器中的 CC1S=01,此时通道被配置为输入,并且PWMA_CCR1 寄存器变为只读。
2. 根据输入信号 TIi 的特点,可通过配置 PWMA_CCMR1 寄存器中的 IC1F 位来设置相应的输入滤波器的滤波时间。假设输入信号在最多 5 个时钟周期的时间内抖动,我们须配置滤波器的带宽长于 5 个时钟周期;因此我们可以连续采样 8 次,以确认在 TI1 上一次真实的边沿变换,即在PWMA_CCMR1 寄存器中写入 IC1F=0011,此时,只有连续采样到 8 个相同的 TI1 信号,信号才为有效(采样频率为 fMASTER)。
3. 选择 TI1 通道的有效转换边沿,在 PWMA_CCER1 寄存器中写入 CC1P=0(上升沿)。
4. 配置输入预分频器。在本例中,我们希望捕获发生在每一个有效的电平转换时刻,因此预分频器被禁止(写 PWMA_CCMR1 寄存器的 IC1PS=00)。
5. 设置 PWMA_CCER1 寄存器的 CC1E=1,允许捕获计数器的值到捕获寄存器中。
6. 如果需要,通过设置
PWMA_IER 寄存器中的 CC1IE 位允许相关中断请求。
7.使能计数器设置 PWMA_CR1 寄存器的 CEN 位来启动计数器。
② 学单片机用多大带宽的示波器合适
如果是学习单片机,示波器远远不能满足需要的,最好购置一台逻辑分析仪,如果是学习51系列等8位的,个人认为,50M以下16、25通道足够使用,也可以考虑购置虚拟的USB接口的逻辑分析仪。
③ 有谁把TCP IP协议应用于51单片机通信中吗,能不能给点经验
单片机80C51+以太网控制器RTL8019构成的以太网节点,其中微处理器是使用80C51内核的P89C60负责RTL8019AS初始化及通过控制RTL8019AS实现网络协议,进行数据的接收和发送等通信任务。RTL8019AS是台湾REALTEK公司生产的一种兼容NE2000的ISA总线以太网控制芯片。其主要特点如下:
该芯片符IEEE802.3 10BaseT标准。
网络传输速率为10Mbit/sec,支持CSMA/CD传输协议。
自动奇偶检测及纠错。
支持即插即用(PnP),非即插即用(Non-PnP),可通过软件进行设置,并能够设置中断,输入输出地址等网络参数。
支持两种接口类型,并能自动侦测介质类型,BNC口用于连接同轴电缆,RJ45口用于非屏蔽双绞线。
支持全双工模式。
选取用RTL8019AS的原因:它是一种NE2000类型的兼容网卡芯片,与其它网络芯片如DM9008,DP839011A等兼容,软件移植性好;与51单片机接口简单,不用转换芯片如PCI-ISA桥;价格低、货源好;相对51单片机而言RTL8019AS的带宽充裕。
其中,RTL8019AS的数据线SD0~SD7与80C51的AD0~AD7(P0口)相连,地址线A0~A4与80C51的A0~A4(P0口锁存后的信号)连接。读写信号经16V8产生,RTL8019AS的基地址为0x5000。按照上图电路连接后,当访问地址的范围为0x5000~0x501F时,80C51实现对RTL8019AS读写操作。
RTL8019AS支持3种工作方式:
1) 即插即用方式,I/O地址和中断都由操作系统管理,用户不必过多干预,当然这种方式要耗费系统资源多一些;
2) 跳线方式,网卡的I/O地址和中断都由跳线决定;
3) 免跳线方式,网卡的I/O和中断由外接的E2PROM 93C46中的内容决定。
在这三种方式里,我们的设计使用第二种跳线工作方式。第一种方式对于51系列单片机来说无法实现。未用第三种又可以省掉一片93C46芯片,不但减少了连线,而且降低了成本。
RTL8019AS的引脚悬空时输入状态为低电平,因为芯片引脚内部已经接了一个100K的下拉电阻。
I/O地址:RTL8019AS的第65脚JP决定网卡的工作方式,本设计中JP脚接高电平(VCC),即使用跳线方式。此时,RTL8019AS的I/O地址由引脚85,84,82,81(IOS3..IOS0)决定,本设计中因为IOS3..IOS0都是悬空,选择的基地址为0300H。基地址的确定详见RTL8019AS的数据手册。
中断:芯片的中断由引脚80,79,78(IRQS2..IRQS0)决定。全部悬空时,选择IRQ0。考虑到单片机的资源比较紧张,我们的单片机程序设计中没有使用中断方式而使用的查询方式。
网络接口类型:由74,77(PL0,PL1)引脚决定,使用自动检测。设计中64脚AUI悬空,使用RJ45接口。
BROM:设计中未用BROM,引脚72,71,69,68,67(BS4..BS0)悬空即可。
总线模式:RTL8019AS的IOCS16B引脚通过一个27K的电阻拉低,使得RTL8019AS工作在8位数据总线的模式。
详细电路请参考网上资料。