1. 定时器和延时

#include    "15W4KxxS4.h"
#define FOSC 12000000
#define CLK (65536-FOSC/2/12/1000)
sbit clk=P3^; void clk_wave(void) //1KHZ@12MHz
{ AUXR |= 0x00; //串口1选择定时器2为波特率发生器
T2L = CLK; //设定定时初值
T2H = CLK>>; //设定定时初值
AUXR |= 0x10; //启动定时器2
INT_CLKO=0x04; }
void Delay5ms() //@12.000MHz
{
unsigned char i, j; i = ;
j = ;
do
{
while (--j);
} while (--i);
} int main(void)
{ //clk_wave();
while ()
{
clk=;
Delay5ms();
clk=;
Delay5ms();
};
}

2. 中断

#include    "15W4KxxS4.h"
#include "intrins.h" #define uint8 unsigned char
#define uint16 unsigned int //uint8 data temp[100];
uint8 ti = ; sbit clk=P3^; void Timer0Init(void) //500微秒@12.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x0C; //设置定时初值
TH0 = 0xFE; //设置定时初值
TF0 = ; //清除TF0标志
ET0=;
EA=;
TR0 = ; //定时器0开始计时
} int main(void)
{
Timer0Init();
while ();
} void wave() interrupt
{
if(ti<=)
clk=;
if(ti>&&ti<=)
clk=;
ti++;
ti=ti%;
//clk=!clk;
}

3. 占空比

#include    "15W4KxxS4.h"
#include "intrins.h" #define uint8 unsigned char
#define uint16 unsigned int //uint8 data temp[100];
uint8 ti = ; sbit SI=P3^;
sbit CLK=P0^; void Timer0Init(void) //1毫秒@12.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值
TF0 = ; //清除TF0标志
ET0=;
EA=;
TR0 = ; //定时器0开始计时
}
int main(void)
{
ti=;
Timer0Init();
while ();
} void wave() interrupt
{
ti++;
if(ti==) //低电平循环次数,高电平为两者之差
CLK=;
else if(ti==) //总循环次数
{
CLK=;
ti=;
} }

4. 两束波,相位延迟

#include    "15W4KxxS4.h"
#include "intrins.h" #define uint8 unsigned char
#define uint16 unsigned int //uint8 data temp[100];
uint8 ti = ; sbit CLK=P3^;
sbit SI=P0^; void Timer0Init(void) //1毫秒@12.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值
TF0 = ; //清除TF0标志
ET0=;
EA=;
TR0 = ; //定时器0开始计时
}
void Delay500us() //@12.000MHz
{
unsigned char i, j; i = ;
j = ;
do
{
while (--j);
} while (--i);
}
void Delay1ms() //@12.000MHz
{
unsigned char i, j; i = ;
j = ;
do
{
while (--j);
} while (--i);
}
void Delay359500us() //@12.000MHz
{
unsigned char i, j, k; _nop_();
_nop_();
i = ;
j = ;
k = ;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
} int main(void)
{ Timer0Init(); ti=;
while ()
{
Delay500us();
SI=;
Delay1ms();
SI=;
Delay359500us();
};
} void wave() interrupt
{
CLK=!CLK; }

stc15w wave的更多相关文章

  1. RIFF和WAVE音频文件格式

    RIFF file format RIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构.RIFF文 ...

  2. IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)

    IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩充的通讯协定.这个通讯协定主要用在 ...

  3. Wave - 花たん 音乐

    Wave 歌手:花たん 所属专辑:Flower 間違えて宇宙終わって(宇宙因为一个错误而终结了) 青信号はいつも通り(通行的灯号一如往常的) 飛んでまた止まって(又再停止传播) また 飛びそうだ(然后 ...

  4. Web 播放声音(AMR 、WAVE)

    最近甚是苦闷,属于边学边做,跳进了很多坑,别提有多惨了,不过结果还是不错滴,纵观前后,一句话足以概括 “痛并快乐着” ~~~ ok,我少说废话,下面来总结下 Web 播放声音一些注意事项. 说到 We ...

  5. 多媒体(2):WAVE文件格式分析

    目录 多媒体(1):MCI接口编程 多媒体(2):WAVE文件格式分析 多媒体(3):基于WindowsAPI的视频捕捉卡操作 多媒体(4):JPEG图像压缩编码 多媒体(2):WAVE文件格式分析

  6. UVa 488 - Triangle Wave

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...

  7. modelsim 中 WAVE窗口中能不能只显示变量名,而不显示路径

    可以的,在wave窗口左下角有一个黑色的logo,你点击它就可以省电路径,只显示port名称,再点击就切换回来了,如图红色圈圈标记的logo,你可以试试!

  8. C# 获取wave文件信息【转】

    public class WaveHelper { /// <summary> /// 数据流 /// </summary> private Stream m_WaveData ...

  9. 【转载】PMC/PEC Boundary Conditions and Plane Wave Simulation

    原文链接 PMC/PEC Boundary Conditions and Plane Wave Simulation (FDTD) OptiFDTD now has options to use Pe ...

随机推荐

  1. debian删除i386的包

    sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`; sudo dpkg --remo ...

  2. 【疑难杂症】gdb调试多线程程序报错:interrupted system call

    一. cmake生成可调试版本的程序,该内容参考自https://www.linuxidc.com/Linux/2014-03/98622.htm 具体内容如下: 1, 使用CMAKE编译确实很方便. ...

  3. 【fork/join】java并发编程-fork/join示例

    package com.chinamobile.epic.tako.common.graphite.query.sync.impl; import com.google.common.collect. ...

  4. 查看docker容器的内存占用

    使用docker stats命令可以查看容器的内存,但是有时候docker stats命令获得的数据可能准确,可以参考下面这种方式 先通过docker ps -a 找到容器的container id ...

  5. 异步启动solidworks

    两种方法: SldWorks App = new SldWorks(); App.Visible = true; //SldWorks.Application.24是2016 // App = (Sl ...

  6. js解决转义字符问题

    数据“\\s=7\\c=1\\j=1\\p=1”, 转义出来变成“\s=7\c=1\j=1\p=1” 结果:可以这样转换str=str.replace(/\\/g,'\\\\');

  7. Error during artifact deployment. See server log for details.

    Error during artifact deployment. See server log for details. 这两个地方要一样.不然.就报 Error during artifact d ...

  8. leetcode72

    class Solution { private: ][]; public: int minDistance(string word1, string word2) { int len1 = word ...

  9. CMake Error at cuda_compile_generated_warp.cu.o.cmake:264 (message)

    今天,我来给大家分享一下opencv安装时报的错.然后讲错是怎么解决的. 为啥老是写一些环境搭建的博客?因为环境搭建琐碎而繁杂,希望写下来,帮助大家.让大家少走弯路. 专注主业,专注算法的实现和优化. ...

  10. python批量处理文件夹中文件的问题

    用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...