You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GPSIM中如何生成20kHz方波并连接至PIC16F628的Timer1

解决GPSIM中PIC16F628 Timer1外部激励连接问题及20kHz方波生成方案

核心问题定位

你的GPSIM脚本无法连接激励到Timer1的关键原因是引脚映射错误:PIC16F628的Timer1外部时钟输入引脚是T1CKI,对应PORTB的RB0(物理引脚6),而非你脚本中指定的RB6。

修正后的20kHz方波激励脚本

假设你的PIC采用4MHz晶振(默认分频后核心时钟Fcy=1MHz,每个CPU周期1μs),20kHz方波的周期为50μs,对应50个CPU周期,高低电平各占25个周期。以下是修正后的GPSIM脚本:

load s lcmtest.cod

# 定义异步方波激励
stimulus asy
initial_state 1
start_cycle 20
# 20kHz方波周期=50us=50个CPU周期,高低电平各25周期
period 50
{25, 0,
 25, 1}
name osc_input
end

# 创建节点并连接到正确的Timer1输入引脚RB0
node t1cki
attach t1cki portb0 osc_input

关键参数说明

  • period 50:指定激励的总周期为50个CPU周期,匹配20kHz的频率(1MHz / 50 = 20kHz)
  • {25,0,25,1}:定义波形时序:从初始高电平开始,25个周期后变为低电平,再25个周期回到高电平,循环往复
  • attach t1cki portb0 osc_input:将激励正确连接到Timer1的外部时钟输入引脚RB0

Timer1初始化代码确认

你的Timer1初始化代码是正确的,需确保以下关键配置:

movlw       b'00000010'
;                   1-      TMR1CS      选择外部时钟源(必须设为1)
;                    0      TMR1ON      先关闭Timer1,初始化后再开启
movwf       T1CON

clrf        TMR1L           
clrf        TMR1H
bsf         T1CON, TMR1ON   ; 启动Timer1
return

如果需要异步采样外部时钟(不与Fcy同步),可将T1CON的T1SYNC位(bit2)设为1:

movlw       b'00000110'  ; T1SYNC=1,异步外部时钟

验证方法

  1. 运行修正后的GPSIM脚本
  2. 在GPSIM的寄存器窗口中监控TMR1L和TMR1H,确认计数随方波输入递增
  3. 可通过GPSIM的示波器工具查看RB0引脚的波形,验证20kHz方波是否正常输出

内容的提问来源于stack exchange,提问作者jcoppens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:56:12