资源简介

基于单片机的频率脉宽的测量(频率脉宽可调)附代码 原理图 及所需元器件

资源截图

代码片段和文件信息

#include 
# include 
# include 
#define uchar unsigned char
#define uint  unsigned int
#define ulong  unsigned long
//MAX7219部分***************************************************
sbit Max7219_pinCLK = P3^2;
sbit Max7219_pinCS  = P3^1;
sbit Max7219_pinDIN = P3^0;

void delay(uint x){
 uint ij;
 for(i=0;i  for(j=0;j<112;j++);
}

void Write_Max7219_byte(uchar DATA){
     uchar i;    
Max7219_pinCS=0;
    for(i=8;i>=1;i--)
          {   
            Max7219_pinCLK=0;
            Max7219_pinDIN=DATA&0x80;
            DATA=DATA<<1;
            Max7219_pinCLK=1;
           }                                 
}

void Write_Max7219(uchar addressuchar dat){ 
     Max7219_pinCS=0;
 Write_Max7219_byte(address);           //写入地址,即数码管编号
     Write_Max7219_byte(dat);               //写入数据,即数码管显示数字 
 Max7219_pinCS=1;                        
}

void Init_MAX7219(void){
 Write_Max7219(0x09 0xff);       //译码方式:BCD码
 Write_Max7219(0x0a 0x03);       //亮度
 Write_Max7219(0x0b 0x07);       //扫描界限;4个数码管显示
 Write_Max7219(0x0c 0x01);       //掉电模式:0,普通模式:1
 Write_Max7219(0x0f 0x01);       //显示测试:1;测试结束,正常显示:0
}
//max7219写数据
//Init_MAX7219();
//Delay_xms(500);
//Write_Max7219(0x0f 0x00);

//MAX7219部分结束**********************************************//

//AD9850部分***************************************************//

sbit ad9850_w_clk    =P1^4; 
sbit ad9850_fq_up    =P1^5;  
sbit ad9850_rest     =P1^7;  
sbit ad9850_bit_data =P1^6; 

//ad9850复位(串口模式)
void ad9850_reset(){
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信号
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信号
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}

//向ad9850中写命令与数据(串口)
void ad9850_write(unsigned char w0double frequence){
unsigned char iw;
long int y;
double x;
//计算频率的HEX值
x=4294967295/125;//适合125M晶振
//如果时钟频率不为25MHZ,修改该处的频率值,单位MHz  !!!
frequence=frequence/1000000;
frequence=frequence*x;
y=frequence;
//写w4数据
w=(y>>=0);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w3数据
w=(y>>8);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w2数据
w=(y>>16);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w1数据
w=(y>>24);
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//写w0数据
w=w0;   
for(i=0;i<8;i++)
{
ad9850_bit_data=(w>>i)&0x01;
ad9850_w_clk=1;
ad9850_w_clk=0;
}
//移入始能
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//*************************************************************//
//串行写1000Hz程序
//ad9850_reset();
//ad9850_write(0x001000);

//AD9850部分结束***********************************************//

sbit key_left=P1^3;
sbit key_right=P1^2;
sbit key_up=P1^1;
sbit key_down=P1^0;

void show(ulong freq){
uint i;
delay(5);
for(i=0;i<8;i++){
Write_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      79272  2015-05-06 23:12  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\aa.DSN

     文件     114016  2014-05-07 23:18  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\Last Loaded proteus仿真电路图.DBK

     文件     114016  2014-05-08 07:10  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\proteus仿真电路图.DSN

     文件        792  2015-05-05 10:52  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\proteus仿真电路图.PWI

     文件     231936  2015-05-04 15:41  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\单片机产生可调方波(c语言).doc

     文件     303262  2015-05-07 14:51  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\基于单片机的脉宽和频率测量报告.doc

     文件       5055  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx

     文件       1961  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.c

     文件       2041  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.hex

     文件         36  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.lnp

     文件       4864  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.LST

     文件       7459  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.M51

     文件       5567  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.OBJ

     文件        974  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.Opt

     文件       1137  2014-05-08 07:09  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.plg

     文件       2129  2014-05-07 21:50  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx.Uv2

    .......       973  2014-05-07 23:17  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx_Opt.Bak

    .......         0  2014-05-07 18:37  基于单片机的频率脉宽的测量\51单片机测量方波频率资料\程序\cx_Uv2.Bak

     文件       4874  2013-03-01 22:31  基于单片机的频率脉宽的测量\main.c

     文件       6149  2013-03-01 22:32  基于单片机的频率脉宽的测量\信号发生器.hex

     文件       2389  2011-06-27 11:11  基于单片机的频率脉宽的测量\占空比可调--低频准确版\12864.c

     文件       5580  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\12864.LST

     文件       7097  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\12864.OBJ

     文件       3027  2011-06-22 18:02  基于单片机的频率脉宽的测量\占空比可调--低频准确版\keycode.c

     文件       7640  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\keycode.LST

     文件      10429  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\keycode.OBJ

     文件       3195  2011-06-27 11:11  基于单片机的频率脉宽的测量\占空比可调--低频准确版\main.c

     文件       7425  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\main.LST

     文件      12014  2015-05-04 10:04  基于单片机的频率脉宽的测量\占空比可调--低频准确版\main.OBJ

     文件        372  2011-06-22 10:16  基于单片机的频率脉宽的测量\占空比可调--低频准确版\public.h

............此处省略39个文件信息

评论

共有 条评论