資源簡介
這個程序是利用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
- 上一篇:qt aes加密 源代碼
- 下一篇:實時獲取麥克風聲音
評論
共有 條評論