- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定时器中断 与蜂鸣器程序设置 一、窗机控制板的硬件构成 电源5V 晶振8MHZ(四分频后内部总线频率为2MHZ) 控制板上用的是05系列的SR3芯片座(40个管脚),08系列的JL3芯片(28个管脚)通过过渡板(4094芯片)连接到SR3芯片座上,我们针对JL3芯片编程 二、控制电路原理图 初识平台程序 查找T_overflw_int、Off_bp、Beep_ctrl、TIME_FL 定时器模块 形成计时的基准 时钟溢出中断 内部总线频率为2M,分频系数为1,计数器计数脉冲周期则为0.5uS 每秒中断8000次,则溢出中断周期为125uS 则计数模数初值(预置寄存器的值)是250 定时溢出中断即是定时器的计数溢出操作,实际上是一个软件定时器,不需要使用定时器的I/O引脚,只需开放定时器的溢出中断即可 每个定时器都有一个16位预置计数值寄存器TMOD,分为两个8位寄存器TMODH和TMODL。 b.自由运行计数器TCNT(TCNTH:TCNTL) 是动态计数的,由两个8位计数器构成1个16位计数器。它的值可随时读出。 d.定时器工作过程 训练一 ;溢出中断处理 T_overflw_int PSHH BCLR 7,TSCR MOV #tscr_init,TSCR ;溢出中断,1分频 MOV #tmodh_init,TMODH MOV #tmodl_init,TMODL ;$FA=250,8000次中断/每秒 BRCLR 2,TIME_FL,Rmt_pls 利用仿真软件,测试中断溢出周期 如果把分频系数改为2,则tmod的值如何改变?利用仿真软件进行验证。 如果仅对分频系数和tmod两个值之一进行修改,注意蜂鸣器鸣叫有什么变化? 蜂鸣器处理 规格为4KHZ 接A口的bit5 DDRA的值? 蜂鸣器处理 计时标记TIME_FL Beep_on BSET 2,TIME_FL ;响蜂鸣器标记 练习三 LDA PORTA EOR #把#为#重新烧录,再观察现象?并思考为什么? 练习五 Init_setup CLR PORTD MOV #init_mode,RUN_MODEL MOV #init_temp,SET_TMP MOV #init_spd,MIX_FLAG MOV #BEEP_CNT MOV #$40,INT_CNT_TO_S_L MOV #$1F,INT_CNT_TO_S_H 改变MOV #BEEP_CNT 中立即数的值分别为####……汇编并烧写芯片,观察现象,有什么不同? * 复位处理 清变量区 检查是否 需要自检, 产生标记 复位处理 (给寄存器初始化) 清变量区 检查是否需要自检, 产生标记 基本参数设置 (给相关变量赋初始) 主控程序 公共部分:读键、 跳线、开关机检查 主程序流程控制: 转各子程序 自检程序:self_test 读传感器:Read_snsr 外设控制:Cntrl_OP 处理显示:Display_hdl 外时钟:Timing_OP 主输出:Main_drv 外中断处理:Int_receive 溢出中断:T_overflw_int 分频系数。共同设置定时器的分频系数: 000 表示分频系数为1; 001 表示分频系数为2; 010 表示分频系数为4; 011 表示分频系数为8; 100 表示分频系数为16; 101 表示分频系数为32; 110 表示分频系数为64; 111 保留,暂未使用。 - 清除计数器的计数值,写入1清除。计数器清除时也清除该位,0无影响 计数控制,该位为1停止计数,0恢复计数 溢出中断允许。发生溢出时,系统可执行溢出中断处理程序,该位置0表示禁止溢出中断。该位可读可写,读取的数值就是该位的实际值 溢出标志。当定时器的计数达$FFFF(自由运行状态)或计到预置计数值时,定时器的计数器溢出且清零,同时该位置1 功能描述 PS0 PS1 PS2 TRST TSTP TOIE TOF
文档评论(0)