微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > XS128单片机实验:在示波器上模拟乒乓球比赛

XS128单片机实验:在示波器上模拟乒乓球比赛

时间:12-01 来源:互联网 点击:
#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);
}
}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top