基于51单片机stc89c52的温湿度检测系统Word文件下载.docx
- 文档编号:16510286
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:242.18KB
基于51单片机stc89c52的温湿度检测系统Word文件下载.docx
《基于51单片机stc89c52的温湿度检测系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机stc89c52的温湿度检测系统Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
5μs
2、增强性能
d)高达25MHz
e)全线产品8MHz(1.8-3.6V)
f)1.8VISP闪存擦除及写入
g)自动防故障,灵活的时钟系统
3、创新性能
h)集成LDO,BOR,WDT+,RTC
i)多通道DMA支持待机模式下的数据传送
j)更多连接方式:
USB,RF
k)AES加密,RTC后备电池
l)用户定义的引导装入程序
m)业界领先的代码密度
4、主电路图
三、系统软件基本思路
根据系统定义,用C语言以及430单片机语言编写代码,并使系统能够正常工作,流程图如下:
四.程序
1.显示进入页面
#include<
stdint.h>
#include"
msp430.h"
HAL_PMM.h"
HAL_UCS.h"
HAL_Board.h"
HAL_Buttons.h"
HAL_Cma3000.h"
HAL_Dogs102x6.h"
HAL_Menu.h"
HAL_Wheel.h"
LPM.h"
PMM.h"
lab2.h"
uint16_ttimeoutCounter;
//ThisimagehasbeencreatedbyImageDogusing'
ti_bug.jpg'
staticconstuint8_ttiBug[]=
{
0x42,//Imagewidthinpixels
0x08,//Imageheightinrows(1row=8pixels)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x02,0x03,0x01,0x00,0x03,0x03,0x02,0x02,0x03,0x03,0x02,0x02,0x03,0x03,0x00,
0x02,0x02,0x03,0x07,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x00,
0x20,0x20,0x3F,0xBF,0x02,0xFA,0xFA,0x92,0x93,0xFF,0xFF,0x93,0x92,0xFA,0xFA,0x02,
0x41,0x4F,0xFF,0xFF,0x4E,0x46,0xEB,0xE9,0x49,0x49,0x4F,0x4F,0x49,0xE9,0xE9,0x08,
0x00,0x20,0xE0,0xC0,0xE0,0xE0,0x40,0xC0,0x80,0xF0,0xF0,0x80,0xC0,0x40,0x60,0x20,
0x80,0x00,0xF0,0xF0,0x00,0x20,0x20,0x20,0x20,0x20,0xE0,0xE0,0x20,0x20,0x20,0x20,
0x04,0x44,0x67,0x37,0x14,0x0D,0x1D,0x79,0x71,0x41,0x41,0x41,0x7D,0x7D,0x05,0x04,
0x04,0xC4,0x77,0x37,0x00,0x04,0x04,0x04,0x04,0xFF,0xFF,0xFF,0x04,0x04,0x04,0x04,
0x00,0x00,0xFC,0xFC,0x1A,0x1E,0xC6,0xE4,0x7C,0x18,0x18,0x7C,0xE4,0xC6,0x02,0x02,
0x00,0x00,0xFE,0xFE,0x0C,0x18,0x18,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,
};
voidmain(void)
{
uint8_tcontrast=*((unsignedchar*)contrastSetpointAddress);
//读取FLASH中对比度值
uint8_tbrightness=*((unsignedchar*)brightnessSetpointAddress);
//读取FLASH中背光值
//Initializeaccelerometeroffsetfromflash
Cma3000_setAccel_offset(*((unsignedchar*)accelXcalibrationAddress),//初始化加速度偏移量
*((unsignedchar*)accelYcalibrationAddress),
*((unsignedchar*)accelZcalibrationAddress));
//StopWDT
WDTCTL=WDTPW+WDTHOLD;
//关闭看门狗
//BasicGPIOinitialization
Board_init();
//初始化GPIO
//SetVcoretoaccomodateformax.allowedsystemspeed
SetVCore(3);
//设VCore为最大
//Use32.768kHzXTALasreference
LFXT_Start(XT1DRIVE_0);
//利用LFXT1(32.768kHZ)作为时钟参考
//Setsystemclocktomax(25MHz)
Init_FLL_Settle(25000,762);
//利用FLL(锁频环)将系统时钟设为最大25MHZ
SFRIFG1=0;
//清中断标志
SFRIE1|=OFIE;
//使能晶振失效中断
//Globallyenableinterrupts
__enable_interrupt();
//使能全局中断
//Setuprealtimeclock
//SetupRTC();
//设置实时时钟
//SetupLCD
Dogs102x6_init();
//初始化LCD
Dogs102x6_backlightInit();
//背光初始化
//ContrastnotprogramedinFlashYet
if(contrast==0xFF)//若当前FLASH中无对比度值,则将对比度值设为11(默认)
//SetDefaultContrast
contrast=11;
//BrightnessnotprogramedinFlashYet
if(brightness==0xFF)//若当前FLASH中无背光值,则将背光值设为11(默认)
//SetDefaultBrightness
brightness=11;
Dogs102x6_setBacklight(brightness);
//设置初始背光值
Dogs102x6_setContrast(contrast);
//设置初始对比度值
Dogs102x6_clearScreen();
//清屏
//Setupwheel
Wheel_init();
//初始化齿轮电位计
Buttons_init(BUTTON_ALL);
//初始化按键
Buttons_interruptEnable(BUTTON_ALL);
//使能所有按键中断
buttonsPressed=0;
//键值清零
//DisplayTIlogo
Dogs102x6_imageDraw(tiBug,0,16);
//显示图案
//Waitforbuttonpress
while(!
buttonsPressed)//等待按键被按下,或者超时退出等待
for(timeoutCounter=0;
timeoutCounter<
0xFFFF;
timeoutCounter++)
if(buttonsPressed)
break;
__delay_cycles(1000);
}
//Timeoutbreak
//超时退出
//显示文字说明:
Dogs102x6_stringDraw(3,10,"
Welcome"
DOGS102x6_DRAW_NORMAL);
Dogs102x6_stringDraw(4,0,"
toNKuniversity"
Dogs102x6_stringDraw(7,0,"
orpressS1|S2"
DOGS102x6_DRAW_INVERT);
__delay_cycles(2000);
//主循环
while
(1)
lab2();
//
}
2.主程序
Clock.h"
Random.h"
Demo_Cube.h"
CTS_Layer.h"
stdlib.h"
staticconstchar*constcapMenuText[]={
"
==LAB2:
CapApp==="
1.test1"
2.CapDemo"
3.happy"
char*itoa(int,char*,int);
//ForwardDeclaredFunction
voidtest1(void);
voidCapDemo(void);
/***************************************************************************//**
*@briefThemenuoflab2.
*@paramnone
*@returnnone
******************************************************************************/
voidlab2(void)
uint8_tselection=0;
*S1=EnterS2=Esc*"
selection=Menu_active((char**)capMenuText,3);
if(buttonsPressed&
BUTTON_S2);
else
switch(selection)
case1:
test1();
//读取已存文件
case2:
CapDemo();
//触摸按键柱形图
default:
*@briefCapLED.
voidtest1(void)
uint8_tsliderPosition=0;
Board_ledOff(LED_ALL);
//关闭所有LED
Dogs102x6_stringDraw(1,0,"
SlideFingeron"
Dogs102x6_stringDraw(2,0,"
TouchPads"
TI_CAPT_Init_Baseline(&
slider);
//触摸按键初始化
(buttonsPressed&
BUTTON_S2))//S2按键按下退出程序
sliderPosition=TI_CAPT_Slider(&
sliderPosition=(sliderPosition+10)/20;
//得到触摸按键位置
//以下根据触摸按键位置点亮相应LED
switch(sliderPosition)
page_one"
Dogs102x6_stringDraw(2,0,"
friend'
name"
page_two"
message"
break;
case3:
page_three"
case4:
page_four"
case5:
page_five"
case(255/17):
*@briefAllowsusertoselectUSBapps
voidCapDemo(void)
uint8_tquit=0,spacing=0,height=0,height1=0,i;
uint16_tdeltaCount[5];
buttonDebounce=0;
Dogs102x6_stringDraw(0,0,"
==TouchDemo=="
//menuactiveuntilselectionismade
quit)
TI_CAPT_Custom(&
slider,deltaCount);
//测量电容传感器变化
//5=No.ofsensors
for(i=0;
i<
5;
i++)
spacing=20*i+10;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 stc89c52 温湿度 检测 系统