您的位置 首页 编程

XS128单片机试验:在示波器上模仿乒乓球竞赛

includehidefh>*commondefinesandmacros*includederivativeh*derivative-specificdefinitions*******

#include /* common defines and macros */
#include “derivative.h” /* derivative-specific definitions */
/*****************************************************************/
// This progam is the second homework from Fresscale Traning
// 本题是电子设计大赛的标题:在示波器模仿乒乓球的竞赛;
//示波器作业在XY李萨如图形式下;设定两路PWM波经过改动占空比,
// 在低通滤波器的效果下,操控电压的改变,转化为xy坐标下,黑点的
// 的周期运动。本题的难点是PWM的发生,xy的联系用单片机内的变量类型
// 精确表示出来。还有便是依据自己的频率选取不同的低通滤波电路
//1)PWM初始化子程序
/*************************************************************************
//功 能:完结PWM模块初始化
//进口参数:无
//出口参数:无
*************************************************************************/
void PWM_Init(void)
{
PWME = 0x00; //制止PWM模块
PWMPRCLK = 0x00; //CLOCKA的预分频设置为8/clockb的预分频设置为8
PWMSCLA = 5; //SA的分频因子设置为5
PWMSCLB = 5; //SB的分频因子设置为5
PWMCLK = 0x05; //通道0/2挑选SASB 作为PWM时钟
PWMPER0 = 200; //通道0周期寄存器设置为200
PWMPER2 = 200; //通道2周期寄存器设置为200
PWMDTY0 = 0; //通道0占空比寄存器设置
PWMDTY2 = 0; //通道2占空比寄存器设置
PWMPOL = 0x05; //PWM输出先为高电平,之后变为低电平
PWMCAE = 0x00; //左对齐输出
PWMCTL = 0x00; //不级联
PWME = 0x05; //使能PWM通道0/2
}
//2)延时子程序
/*************************************************************************
//功 能:完成一段时间的延时
//进口参数:无
//出口参数:无
*************************************************************************/
void delay(unsigned int delay_time)
{
unsigned int loop_i, loop_j; //界说循环变量

for (loop_i=0; loop_i< delay_time; loop_i++)
{
for (loop_j=0; loop_j<5000; loop_j++)
{
;
}
}
}
//3)主程序
/*************************************************************************
//功 能:初始化PWM模块,并完成输出波形占空比的增大和减小
//进口参数:无
//出口参数:无
*************************************************************************/
void main(void)
{
uchar loop_index; //界说循环变量
long temp;
uchar ceshi ;
PWM_Init();
while(1){
for(loop_index=0;loop_index<200;loop_index++) {
temp=loop_index;
PWMDTY0 = temp;

PWMDTY2 = (1480*temp-7*temp*temp+95000)/1000;
delay(5);
}

for(loop_index=200;loop_index>0;loop_index–) {
temp=loop_index;
PWMDTY0 = temp;
PWMDTY2 = (1480*temp-7*temp*temp+95000)/1000;
delay(5);
}
}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/255042.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部