news 2026/6/16 7:15:02

MTK8088单板机制作(四)10ms定时器生成器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MTK8088单板机制作(四)10ms定时器生成器

1.功能需求

2.硬件

三、Keil 工程配置说明(2MHz 晶振)

1. 新建工程

  • 打开 Keil uVision

  • ProjectNew uVision Project

  • 选择保存路径,输入项目名称(如Timer0_2MHz

2. 选择 CPU 型号

推荐选择以下任一型号(均可正常运行):

  • AT89C52(Atmel / Microchip)

  • STC89C52RC

  • DS89C420

  • 或任何标准8052兼容芯片

3. 添加汇编源文件

  • 右键Source Group 1Add New Item→ 选择Assembly File (.asm)

  • 命名为main.asm

  • 将上一轮回复中的完整汇编代码复制进去

4. 关键配置:晶振频率 ⭐

  • 点击Target 1图标(或ProjectOptions for Target 'Target 1'

  • 切换到Target标签页

  • Xtal (MHz)输入框中填写:2

![设置示意]

text

Xtal (MHz): [2 ]

5. 输出 HEX 文件

  • 同窗口切换到Output标签页

  • 勾选Create HEX File

  • 可选:勾选Create Batch File

6. 编译与烧录

  • F7或点击Build按钮

  • 编译成功后生成.HEX文件

  • 使用编程器(如 STC-ISP、TL866、CH341 等)烧录到单片机

7. 仿真调试(可选)

  • 如果不需要硬件,可用 Keil 自带的软件仿真

  • 点击Start/Stop Debug Session(Ctrl+F5)

  • ViewWatch Window中添加变量TICK

  • ViewLogic Analyzer中观察 P1.7、P3.7 波形

完整可编译程序(2MHz 晶振)

$MOD52 ;------------------------------------------------------------------------------- ; 数据段定义 DSEG AT 30H TICK: DS 1 ; 10ms 计数器 (0-99) ;------------------------------------------------------------------------------- ; 代码段 CSEG AT 0 LJMP MAIN ; 复位入口 ORG 000BH ; Timer0 中断向量 LJMP TIMER0_ISR ;------------------------------------------------------------------------------- ; 主程序 CSEG AT 100H MAIN: ; 初始化堆栈 MOV SP, #60H ; 初始化 I/O 口 MOV P1, #0FFH ; P1 口设为输入 / 高电平输出 MOV P3, #0FFH ; P3 口初始高电平 ; 初始化变量 MOV TICK, #0 ; 初始化 Timer0 (16位定时器模式) MOV TMOD, #01H ; Timer0, 模式1 (16位) ; 定时初值: 2MHz 晶振, 10ms 中断 ; 机器周期 = 6µs, 需要 1667 个机器周期 ; 初值 = 65536 - 1667 = 63869 = 0xF97D MOV TH0, #0F9H MOV TL0, #07DH ; 开启中断 SETB ET0 ; 允许 Timer0 中断 SETB EA ; 总中断允许 SETB TR0 ; 启动 Timer0 ; 主循环:空闲等待中断 SJMP $ ;------------------------------------------------------------------------------- ; Timer0 中断服务程序 (每 10ms 执行一次) TIMER0_ISR: PUSH ACC PUSH PSW ; 重装 Timer0 初值 (10ms @ 2MHz) MOV TH0, #0F9H MOV TL0, #07DH ; 1. 产生 P3.7 低脉冲 (触发 Z80 中断) CLR P3.7 NOP ; 短暂延时 (6µs) NOP ; 又一个延时 (6µs) SETB P3.7 ; 2. 更新 TICK 计数器 MOV A, TICK INC A MOV TICK, A CJNE A, #100, ISR_EXIT ; 是否到达 1 秒? ; 3. 每 1 秒执行一次:P1.7 输出约 30 周期低脉冲 MOV TICK, #0 ; 重置计数器 CLR P1.7 ; 拉低 P1.7 MOV R7, #30 DJNZ R7, $ ; 延时约 30 个机器周期 (180µs) SETB P1.7 ; 拉高 P1.7 ISR_EXIT: POP PSW POP ACC RETI ;------------------------------------------------------------------------------- END
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 7:12:01

告别复杂软件!浏览器中的EPUB电子书编辑器让创作变得如此简单

告别复杂软件!浏览器中的EPUB电子书编辑器让创作变得如此简单 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 你是否曾经想要制作一本属于自己的电子书,却被繁琐的软件安装…

作者头像 李华
网站建设 2026/6/16 7:05:14

【Springboot毕设全套源码+文档】基于springcloud智能推荐算法的网上生鲜销售系统(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/16 7:04:30

MPC Video Renderer终极指南:如何快速上手这款高性能视频渲染器

MPC Video Renderer终极指南:如何快速上手这款高性能视频渲染器 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer MPC Video Renderer是一款功能强大的DirectShow视频…

作者头像 李华
网站建设 2026/6/16 7:03:49

Gemini Ultra家庭组真相:$250买的是AI服务水位权

1. 这个“$250档家庭组”根本不是买硬件,而是买一套被重新定义的AI服务契约“Gemini Ultra 顶配家庭组($250档)主要权益”——看到这个标题,我第一反应是皱眉。不是因为价格,而是因为整个表述方式已经悄然越过了消费电…

作者头像 李华
网站建设 2026/6/16 7:02:50

暗黑破坏神2存档编辑器:可视化修改你的游戏角色数据

暗黑破坏神2存档编辑器:可视化修改你的游戏角色数据 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款基于Web的暗黑破坏神2存档编辑器,专为D2和D2R版本设计。这个开源工具让玩家无需编程知…

作者头像 李华