/*****************************************/
/* Copyright (c) 2005, 通信工程学院 */
/* All rights reserved. */
/* 作 者:戴 佳 */
/*****************************************/
#include "PWM.h"
/* 定时器0中断服务子程序 */
void timer0_int() interrupt 1 using 1
{
TR0 = 0; // 关闭T0
TH0 = -(20000/256); // 重置20ms定时器的计数初值
TL0 = -(20000%256);
/* 用8254计数器发送第1路PWM信号 */
COMWORD = 0x30;
// 1MHz时钟作为计数时钟,计数1000次,实现1ms高电平
COUNT0 = 0xE8;
COUNT0 = 0x03;
/* 用8254计数器发送第2路PWM信号 */
COMWORD = 0x70;
// 1MHz时钟作为计数时钟,计数2000次,实现2ms高电平
COUNT0 = 0xD0;
COUNT0 = 0x07;
/* 用8254计数器发送第3路PWM信号 */
COMWORD = 0xB0;
// 1MHz时钟作为计数时钟,计数3000次,实现3ms高电平
COUNT0 = 0xB8;
COUNT0 = 0x0B;
TR0 = 1; // 启动T0
}
/* 主程序 */
void main()
{
EA = 1; // 开CPU中断
ET0 = 1; // 开定时器0中断
TMOD = 0x01; // 定时器0方式1
TH0 = -(20000/256); // 20ms定时器的计数初值
TL0 = -(20000%256);
/* 向8254控制字寄存器选择计数器0,并对其赋初值0 */
COMWORD = 0x30;
COUNT0 = 0; // 先赋低位字节
COUNT0 = 0; // 再赋高位字节
/* 向8254控制字寄存器选择计数器1,并对其赋初值0 */
COMWORD = 0x70;
COUNT0 = 0; // 先赋低位字节
COUNT0 = 0; // 再赋高位字节
/* 向8254控制字寄存器选择计数器2,并对其赋初值0 */
COMWORD = 0xB0;
COUNT0 = 0; // 再赋低位字节
COUNT0 = 0; // 再赋高位字节
TR0 = 1; // 启动定时器T0
while(1){} // 无限循环
}
pwm.rar_PWM步进电机_step motor
版权申诉
81 浏览量
2022-09-24
01:02:56
上传
评论
收藏 9KB RAR 举报
我虽横行却不霸道
- 粉丝: 77
- 资源: 1万+
最新资源
- sql语句常用语句使用用例
- Anaconda简介及安装教程(详细版).docx
- iBiliPlayer-bilih5.apk
- 基于Maven 多模块实现 SpringBoot 和 MyBatis 整合RestFul URL 设计源码.zip
- 基于html5+css3模拟学院网页的源码设计.zip
- arcgis portal 10.8 ecp 许可 文件
- Jarboot 是一个强大的Java进程管理、诊断的平台,可以在线管理、监控及诊断本地和远程的Java进程
- 基于html5+css3模拟学院网页的源码设计.zip
- 路径规划-基于Python实现的常用路径规划算法实现+带动画展示-附项目源码-优质项目实战.zip
- 电子行业深度报告:边缘域AI的“寒武大爆发”
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈