|
CC2530基礎(chǔ)實(shí)驗(yàn)與TI BasicRF 簡單無線點(diǎn)對(duì)點(diǎn)通
列表:1.GPIO輸出控制實(shí)驗(yàn)-控制Led亮滅
10.串口通訊--收發(fā)字符串
11.串口通訊--串口控制LED
12.AD采集cc2530溫度串口顯示
2.Led閃爍_流水燈
3.按鍵控制LED亮滅
4.按鍵控制LED跑馬燈
5.外部中斷
6.外部中斷控制LED倒流水燈
7.定時(shí)器T1-查詢方式
8.定時(shí)器T3-中斷方式
9.串口通訊-發(fā)送字符串
0.png (8.88 KB, 下載次數(shù): 87)
下載附件
2018-10-11 01:18 上傳
0.jpg (58.13 KB, 下載次數(shù): 95)
下載附件
2018-10-11 01:18 上傳
0.png (102.19 KB, 下載次數(shù): 98)
下載附件
2018-10-11 01:20 上傳
單片機(jī)源程序如下:
- /****************************************************************************
- * 文 件 名: main.c
- * 作 者: Andy
- * 版 本: 1.0
- * 描 述: ADC把芯片溫度通過串口發(fā)給電腦,部分芯片誤差較大需校準(zhǔn)
- * 手摸芯片溫度有明顯變化
- ****************************************************************************/
- #include <stdio.h>
- #include <string.h>
- #include "UartTimer.h"
- /****************************************************************************
- * 名 稱: InitSensor()
- * 功 能: 溫度傳感器初始化函數(shù)
- * 入口參數(shù): 無
- * 出口參數(shù): 無
- ****************************************************************************/
- void InitSensor(void)
- {
- DISABLE_ALL_INTERRUPTS(); //關(guān)閉所有中斷
- InitClock(); //設(shè)置系統(tǒng)主時(shí)鐘為 32M
- TR0=0x01; //設(shè)置為1來連接溫度傳感器到SOC_ADC
- ATEST=0x01; //使能溫度傳感
- }
- /****************************************************************************
- * 名 稱: GetTemperature()
- * 功 能: 獲取溫度傳感器 AD 值
- * 入口參數(shù): 無
- * 出口參數(shù): 通過計(jì)算返回實(shí)際的溫度值
- ****************************************************************************/
- float GetTemperature(void)
- {
- uint value;
-
- ADCCON3 = (0x3E); //選擇1.25V為參考電壓;14位分辨率;對(duì)片內(nèi)溫度傳感器采樣
- ADCCON1 |= 0x30; //選擇ADC的啟動(dòng)模式為手動(dòng)
- ADCCON1 |= 0x40; //啟動(dòng)AD轉(zhuǎn)化
- while(!(ADCCON1 & 0x80)); //等待 AD 轉(zhuǎn)換完成
- value = ADCL >> 4; //ADCL 寄存器低 2 位無效,由于他只有12位有效,ADCL寄存器低4位無效。網(wǎng)絡(luò)上很多代碼這里都是右移兩位,那是不對(duì)的
- value |= (((uint)ADCH) << 4);
-
- return (value-1367.5)/4.5-5; //根據(jù) AD 值,計(jì)算出實(shí)際的溫度,芯片手冊有錯(cuò),溫度系數(shù)應(yīng)該是4.5 /℃
- //進(jìn)行溫度校正,這里減去5℃(不同芯片根據(jù)具體情況校正)
- }
- /****************************************************************************
- * 程序入口函數(shù)
- ****************************************************************************/
- void main(void)
- {
- char i;
- float fSum, AvgTemp;
- char strTemp[6];
-
- InitUART(); //初始化串口
- InitSensor(); //初始化 ADC
-
- while(1)
- {
- fSum = 0;
- for (i=0; i<64; i++)
- {
- fSum += GetTemperature(); //取64次溫度總和
- }
- AvgTemp = fSum/64; //取64次溫度平均數(shù)
-
- memset(strTemp, 0, 6);
- sprintf(strTemp,"%.02f", AvgTemp);//將浮點(diǎn)數(shù)轉(zhuǎn)成字符串,保留2位小數(shù)位
- UartSendString(strTemp, 5); //通過串口發(fā)給電腦顯示芯片溫度
- DelayMS(1000); //延時(shí)
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
第3章 基礎(chǔ)實(shí)驗(yàn).rar
(8.94 MB, 下載次數(shù): 141)
2018-10-10 19:43 上傳
點(diǎn)擊文件名下載附件
基礎(chǔ)實(shí)驗(yàn) 下載積分: 黑幣 -5
CC2530 BasicRF(TI 原文件).rar
(1.04 MB, 下載次數(shù): 105)
2018-10-10 19:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|