08 2012 档案
摘要:1 #include <msp430g2553.h> 2 #include "stdio.h" 3 4 #define uint unsigned int 5 #define uchar unsigned char 6 7 #define DS18B20 BIT3 8 #define DS18B20_H P2OUT |= BIT3 9 #define DS18B20_L P2OUT &= ~BIT3 10 11 //以下是DS18B20所需的函数定义 12 13 void B20_init(void); 14 uchar B20_r...
阅读全文
摘要:1 #include "io430g2553.h" 2 3 unsigned char Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制 4 unsigned char dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选控制 5 6 unsigned char LedOut[4]; 7 8 unsigned int num =1234; 9 unsigned int time...
阅读全文
摘要:1 #include "msp430g2553.h" 2 #include "stdio.h" 3 4 5 unsigned char RxFlag; 6 unsigned char Byte_H; 7 unsigned char Byte_L; 8 unsigned int Dist; 9 unsigned int DistData[8]; 10 unsigned int DistAverage; 11 12 13 int putchar(int ch) 14 { 15 while(!(IFG2&UCA0TXIFG)); 16 UCA0TXBU
阅读全文
摘要:1 #include "msp430g2553.h" 2 #include "stdio.h" 3 4 5 unsigned char RxBuf[256]="haha"; 6 unsigned char RxFlag; 7 unsigned char RxPoint; 8 9 10 int putchar(int ch) 11 { 12 while(!(IFG2&UCA0TXIFG)); 13 UCA0TXBUF=ch; 14 return ch; 15 } 16 17 18 void sendChar(unsigned c
阅读全文
摘要:LaunchPad按键消抖测试,推荐定时方式 1 #include <msp430g2553.h> 2 #define TYPE 0 //0 定时 1 延时 3 void main(void) 4 { 5 WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 6 BCSCTL1 = CALBC1_1MHZ; // Set range 7 DCOCTL = CALDCO_1MHZ; 8 9 BCSCTL2 &= ~(DIVS_3); ...
阅读全文
摘要:1 #include "io430g2553.h" 2 3 void main(void) 4 { 5 volatile unsigned int i; 6 7 WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 8 9 //------------------------------------------10 //ACLK = n/a , MCLK = DCO/8 , SMLK = DCO/8 11 BCSCTL1=CALBC1_16MHZ ; //Setrange12 DCOCTL...
阅读全文
摘要:1.本文来自http://blog.sina.com.cn/s/blog_49d58014010116ld.html2.IO口数字输入/输出端口有下列特性:□ 每个输入/输出位都可以独立编程。□ 允许任意组合输入、输出。□ P1 和 P2 所有 8 个位都可以分别设置为中断。□ 可以独立操作输入和输出数据寄存器。□ 可以分别设置上拉或下拉电阻。在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉
阅读全文
摘要:时钟初始化和GPIO概述:本实验的目的是了解用于执行对MSP430 Value Line设备的初始化过程的步骤。在这个练习中,您将编写初始化代码,并运行该设备使用各种时钟资源。1、写初始化代码2、运行CPU的MCLK的来源方式:VLO 、32768晶体、DCO3、主体程序部分4、观察LED闪光灯速度MSP430时钟:1、在MSP430单片机中一共有三个或四个时钟源:(1)LFXT1CLK,为低速/高速晶振源,通常接32.768kHz,也可以接(400kHz~16Mhz);(2)XT2CLK,可选高频振荡器,外接标准高速晶振,通常是接8Mhz,也可以接(400kHz~16Mhz);(3)DCOC
阅读全文
摘要:1 #include "msp430g2553.h" 2 3 void sendChar(unsigned char c) 4 { 5 while(!(IFG2&UCA0TXIFG)); 6 UCA0TXBUF=c; 7 } 8 9 void sendStr(unsigned char *s)10 {11 while(*s!='\0')12 {13 sendChar(*s);14 s++;15 }16 }17 18 void main(void)19 20 {21 22 unsigned...
阅读全文
摘要:1 #include "msp430g2553.h" 2 3 typedef unsigned char uchar; 4 typedef unsigned int uint; 5 6 #define LED BIT0 7 #define TXD BIT1 // TXD on P1.1 8 #define RXD BIT2 // RXD on P1.2 9 #define POUT P1OUT 10 11 #define BITT...
阅读全文
摘要:/*************************************************** * LCD1602显示* cpu:AVRmega16** 描述:4线数据宽度,操作Lcd1602* 在LCD1602屏幕上第一行显示 www.goodmcu.cn * 第二行显示 13652037001* 如果没有显示请按复位键,并多试几次** 时间:2008年1月5日调试成功(出现问题主要是因为LCD第3脚V0的2K接地电阻没有接好)* www.goodmcu.cn** 硬件电路:MSP430F135核心实验板-I型* 硬件连接: * * MSP430与LCD连接信息 * LCD1602
阅读全文
摘要://******************************************************************************// 测试MSP430单片机向FLASH中写入操作// // 描述; 每次掉电或复位后都能看到数码管上显示的数值增1,说明对flash的写入与读取成功//// 注意:修改flash中的内容必须首先执行擦除操作,// 因为对FLASH的操作只能将1写成0,而不能将0写成1只有擦除才能将0写回1// 擦除操作至少将擦除1个段//// 如果使用其它型号的单片机,只需将头文件改为相应的<msp430xx.h>;// 并在Option
阅读全文
摘要:一、MSP430单片机FLASH存储器模块特点1.8~3.6V工作电压,2.7~3.6V编程电压;擦除/编程次数可达100000次:数据保持时间从10年到100年不等:60KB空间编程时间<5秒:保密熔丝烧断后不可恢复,不能再对JTAG进行任何访问;FLASH编程/擦除时间由内部硬件控制,无任何软件干预;二、FLASH存储器的操作由于FLASH存储器由很多相对独立的段组成,因此可在一个段中运行程序,而对另一个段进行擦除或写入操作。正在执行编程或擦除等操作的FLASH段是不能被访问的,因为这时该段是与片内地址总线暂时断开的。对FLASH模块的操作可分为3类:擦除、写入及读出。而擦除又可分为
阅读全文
摘要://******************************************************************************// D13x 实例4 - 12位AD转换//// 描述:系统处于休眠状态LPM0// 如果AD采样值大于等于7FF小灯点亮;如果小于7FF小灯熄灭。// ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k//// MSP430F13x// -------------------// /|\| XIN|- // | | | 32kHz// --|RST XOUT|-// | |// Vin-->|
阅读全文
摘要:一、ADC12转换模式ADC12提供4种转换模式:单通道单次转换对选定的通道进行单次转换要进行如下设置:x=CSStartAdd,指向转换开始地址ADC12MEMx存放转换结果ADC12IFG.x为对应的中断标志ADC12MCTLx寄存器中定义了通道和参考电压转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。在ENC复位并再次置位之前的输入信号将被忽略。序列通道单次转换对序列通道进行单次转换要进行如下设置:x=CSStartAdd,指示转换开始地址EOS(ADC12MCTLx.7)=1标志序列中最后通道y,非最后通道的EOS位都是0,表示序列没有结束。ADC12MEMx,...
阅读全文
摘要://*******************************************************************************// D13x Demo - 利用Timer_A及中断实现RTC,观察LED灯的闪烁频率//// 描述:利用Timer_A及中断实现RTC;通过 P1 异或 来取反 P1.5;// 系统处于休眠状态LPM3,中断时唤醒执行P1.5切换// ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k//// MSP430F13x// -------------------// /|\| XIN|- // | |
阅读全文
摘要://*******************************************************************************// D13x Demo - 在上一节基础上改变系统时钟,观察LED灯的闪烁频率//// 描述:通过改变系统时钟,来改变闪烁频率;通过 P1 异或 来取反 P1.5;软件循环延时// ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k//// MSP430F13x// -----------------// /|\| XIN|- // | | |// --|RST XOUT|-// | |// | P
阅读全文
摘要:CPU内状态寄存器SR中的SCG1、SCG2、OscOff和CPUOff位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可以恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些位;这样允许程序在中断返回(RETI)后,以另一种功耗方式继续运行。各控制位作用如下:SCG1:当SCG1复位时,使能SMCLK;SCG1置位则禁止SMCLK。SCG0:当SCG0复位时,直流发生器被激活,只有SCG0被置位且DCOCLK信号没有用于MCLK或SMCLK,直流发生器才能被禁止。OscOff:当OscOff复位时,LFXT晶体振荡器激活,只
阅读全文
摘要:一、时钟源种类LFXT1CLK低频时钟源——MSP430每一种器件都有XT2CLK高频时钟源——存在于X13X、X14X、X15X、X16X、X43X、X44X等DCOCLK数字控制RC振荡器二、时钟源说明ACLK辅助时钟:ACLK是LFXT1CLK(低频时钟源)信号经过1、2、4、8分频得到的。ACLK可由软件选为各个外围模块的时钟信号,一般用于低速外设。MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK(低频时钟源)、XT2CLK(高频时钟源)、DCOCLK(数字控制RC振荡器)三者之一,然后经过1、2、4、8分频得到。MCLK主要用于CPU和系统。SMCLK子系统时钟:可由软件
阅读全文
摘要:定时器A是一个16位的定时/计数器。它有3个捕获/比较寄存器;能支持多个时序控制、多个捕获/比较功能和多个PWM输出;有广泛的中断功能,中断可由计数器溢出产生,也可以由捕获/比较寄存器产生。一、TimerA的4种工作模式1.停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。2.增计数模式捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器。因为CCR0为16位寄存器,所以该模式适用于定时器周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0
阅读全文
摘要:1 #include "msp430g2553.h" 2 unsigned int rate = 0; 3 unsigned char updown = 1; 4 5 void main(void) { 6 7 WDTCTL = WDT_MDLY_32; 8 9 TACTL = TASSEL1 + TACLR;10 TACTL |= MC0;11 12 CCR0 = 20; // PWM周期13 14 CCTL1 = OUTMOD_7;15 CCR1 = 0;16 17 P1DIR |= 0x40; // P1.6 输出18 ...
阅读全文
摘要:STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下#define NVIC_PriorityGroup_0 ((u32)0x700)#define NVIC_PriorityGroup_1 ((u32)0x600)#define NVIC_PriorityGroup_2 ((u32)0x500)#define NVIC_PriorityGroup_3 ((u32
阅读全文
摘要:本文摘自:与非网原文地址:http://www.eefocus.com/linexy/blog/11-07/227211_6f679.htmlSTM32中在使用任何一个外设都必须打开相应的时钟,所以我从STM32的时钟学起。RCC时钟在STM32中有5个时钟源:①、HSI是高速内部时钟,RC震荡器,频率为 8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HIS/2、HS
阅读全文
摘要:[转]Stm32时钟分析该分析材料大部分来自opendev论坛,我所做的只不过是加上一些自己的分析和整理,由于个人能力有限,纰漏之处在所难免,欢迎指正。Stm32时钟结构图如下,(http://www.openedv.com/posts/list/302.htm)对上图的分析如下:重要的时钟: PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚; 1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率)精度较差 2、HSE:高速外部时钟信号精度高来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟 3、LSE:低速外部晶体 32..
阅读全文
摘要:1 #include "stdio.h" 2 #include "string.h" 3 4 unsigned char ChartoByte(char c) 5 { 6 if(c-'a'>=0 ) return(c-'a'+10); 7 else if(c-'A'>=0 ) return(c-'A'+10); 8 else return(c-'0'); 9 }10 11 unsigned char Char2toByte(char* s)12 {13 retur
阅读全文
摘要:有些人说Linux下怎么开发单片机程序? 我们学得都是在Windows下的开发工具和烧录工具。其实这只是中国的情况,中国大都是用Windows系统的。所以我们也只接触到Windows下的开发工具。在国外,许多大牛是不用Windows的。那么,他们如果要做单片机怎么办?肯定没问题的,Linux也有许多的单片机和嵌入式的开发工具。下面,我以51系列单片机为例,介绍一下怎么使用Linux系统玩单片机。首先,说一下我的硬件和软件情况。硬件:一台笔记本、 一个51单片机开发板(这个在网上有很多卖,也就150左右的价格)。单片机芯片有两块 :一块是Atmel的AT89S52, 另一块是STC的STC89C
阅读全文
摘要:LCD有如下控制线:CS:Chip Select 片选,低电平有效RS:Register Select 寄存器选择WR:Write 写信号,低电平有效RD:Read 读信号,低电平有效RESET:重启信号,低电平有效DB0-DB15:数据线假如这些线,全部用普通IO口控制。根据LCD控制芯片手册(大部分控制芯片时序差不多):如果情况如下:DB0-DB15的IO全部为1(表示数据0xff),也可以为其他任意值,这里以0xff为例。CS为0(表示选上芯片,CS拉低时,芯片对传入的数据才会有效)RS为1(表示DB0-15上传递的是要被写到寄存器的值),如果为0,表示传递的是数据。WR为0,RD为1(
阅读全文

浙公网安备 33010602011771号