• 大小: 32KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: MSP430  频率  

资源简介

这个程序是利用msp430 的定时器来测量脉冲的频率,外部脉冲作为定时器的时钟源,程序计数计算出脉冲的频率,测量精确度高

资源截图

代码片段和文件信息

#include 
#include “12864.h“

typedef unsigned int uint;
typedef unsigned char uchar;

#define BIT(x) ( 1<<(x))

extern const unsigned char shuzi_table[];



/**********液晶控制IO的宏定义*************/
#define cyCS      0    //P5.0,片选信号
#define cySID     1    //P5.1,串行数据  
#define cyCLK     2    //P5.2,同步时钟
#define PSB       3    //P5.3 串并选择
#define cyPORT    P5OUT  
#define cyDDR     P5DIR

/*******************************************
函数名称:delay_Nus
功    能:延时N个us的时间
参    数:n--延时长度
返回值  :无
********************************************/
void delay_Nus(uint n)
{
uchar i;
for(i = n;i > 0;i--)
        _NOP();

/*******************************************
函数名称:delay_1ms
功    能:延时约1ms的时间
参    数:无
返回值  :无
********************************************/
void delay_1ms(void)
{
uchar i;
for(i = 150;i > 0;i--)   _NOP();
}  
/*******************************************
函数名称:delay_Nms
功    能:延时N个ms的时间
参    数:无
返回值  :无
********************************************/  
void delay_Nms(uint n)
{
    uint i = 0;
    
    for(i = n;i > 0;i--)
        delay_1ms();
}
/*******************************************
函数名称:Ini_Lcd
功    能:初始化液晶模块
参    数:无
返回值  :无
********************************************/
void LCD_Init(void)
{
    cyDDR |= BIT(cyCLK) + BIT(cySID) + BIT(cyCS) + BIT(PSB);   //相应的位端口设置为输出
    cyPORT&= ~BIT(PSB);             //设置串行传输方式
   // P5DIR |=0X10;
    //P5OUT |=0X10;
    delay_Nms(100);                 //延时等待液晶完成复位
    Send(00x30);  /*功能设置:一次送8位数据基本指令集*/
    delay_Nus(72);
    Send(00x02);  /*DDRAM地址归位*/
    delay_Nus(72);
    Send(00x0c);  /*显示设定:开显示不显示光标不做当前显示位反白闪动*/
    delay_Nus(72);
    Send(00x01);  /*清屏,将DDRAM的位址计数器调整为“00H”*/
    delay_Nus(72);
    Send(00x06);  /*功能设置,点设定:显示字符/光标从左到右移位DDRAM地址加1*/
    delay_Nus(72);
}  
/*******************************************
函数名称:Send
功    能:MCU向液晶模块发送1一个字节的数据
参    数:type--数据类型,0--控制命令,1--显示数据
          transdata--发送的数据
返回值  :无
********************************************/
void Send(uchar typeuchar transdata)
{
    uchar firstbyte = 0xf8;
    uchar temp;
    uchar ij = 3;

    if(type) firstbyte |= 0x02;
    
    cyPORT |= BIT(cyCS);  
    cyPORT &= ~BIT(cyCLK);
    while(j > 0)
    {
            if(j == 3) temp = firstbyte;
            else if(j == 2) temp = transdata&0xf0;
            else  temp = (transdata << 4) & 0xf0;
            
            for(i = 8;i > 0;i--)
            {
                    if(temp & 0x80) cyPORT |= BIT(cySID); 
                    else cyPORT &= ~BIT(cySID);
                    cyPORT |= BIT(cyCLK);
                    temp <<= 1;
                    cyPORT &= ~BIT(cyCLK);
            }
            //三个字节之间一定要有足够的延时,否则易出现时序问题
            if(j == 3) delay_Nus(600); 
            else       delay_Nus(200);
            
            j--;
    } 
    
    cyPORT &= ~BIT(cySID);       
    cyPORT &= ~BIT(cyCS);
}


void LCD_Set

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

     文件       3871  2010-08-10 15:19  定时器测频率\12864.c

     文件        368  2010-08-09 21:55  定时器测频率\12864.h

     文件       3317  2010-08-13 11:32  定时器测频率\cap.dep

     文件      13738  2010-08-13 09:58  定时器测频率\cap.ewd

     文件      46845  2010-08-12 19:26  定时器测频率\cap.ewp

     文件         95  2010-10-05 18:35  定时器测频率\cap.eww

     文件      23944  2010-08-13 11:25  定时器测频率\Debug\Exe\cap.d43

     文件      17279  2010-08-12 19:26  定时器测频率\Debug\Obj\12864.r43

     文件        225  2010-08-13 11:25  定时器测频率\Debug\Obj\cap.pbd

     文件        544  2010-08-12 19:13  定时器测频率\Debug\Obj\main.pbi

     文件      25882  2010-08-13 11:25  定时器测频率\Debug\Obj\main.r43

     文件       2971  2010-08-13 11:25  定时器测频率\main.c

     文件       2289  2010-08-13 11:32  定时器测频率\settings\cap.cspy.bat

     文件       8883  2010-08-13 11:32  定时器测频率\settings\cap.dbgdt

     文件       1207  2010-08-13 11:32  定时器测频率\settings\cap.dni

     文件       2488  2010-10-05 18:37  定时器测频率\settings\cap.wsdt

     目录          0  2010-09-03 01:40  定时器测频率\Debug\Exe

     目录          0  2010-08-12 19:16  定时器测频率\Debug\List

     目录          0  2010-09-03 01:40  定时器测频率\Debug\Obj

     目录          0  2010-09-03 01:40  定时器测频率\Debug

     目录          0  2010-09-03 01:40  定时器测频率\settings

     目录          0  2010-09-03 01:40  定时器测频率

----------- ---------  ---------- -----  ----

               153946                    22


评论

共有 条评论