您的位置 主页 正文

怎样制定学习STC单片机的目标

一、怎样制定学习STC单片机的目标 第一:懂得是什么。看郭天祥的视频就行了,浏览快速看,困了就睡觉。 第二:懂得怎么做。买个开发板,开始写程序,实现功能,思考原理。 第三

一、怎样制定学习STC单片机的目标

第一:懂得是什么。看郭天祥的视频就行了,浏览快速看,困了就睡觉。

第二:懂得怎么做。买个开发板,开始写程序,实现功能,思考原理。

第三:系统学习。找本书系统学习单片机寄存器、功能、电路等。

第四:举一反三。51玩熟了,再玩玩MSP430、STM32。到最后随便一个单片机,拿到datasheet就能快速上手。这个能力主要是看前三步踏实不,基础踏实不。

第五:追根溯源。学习《微机原理》、《计算机系统原理》等,从更底层了解单片机原理。

第六:高瞻远瞩。这时候你开始思考如何让自己的程序更好看,开始思考怎么更好的组织系统架构。你开始去主动了解编程规范、面向对象编程、有限状态机、事件触发、操作系统。

二、三极管msp2222a参数与代换?

NEC的高放达林顿管,放大倍数在800~3200

参数:50V 300mA 0.75W NPN

FT:150~220MHz,hfe分3档:M 800~1600,L 1200~2400,K 2000~3200

TO-92封装~

三、cpu的封装方式有哪些?

这是所有封装方式:

DIP技术

QFP技术

PFP技术

PGA技术

BGA技术

目前较为常见的封装形式:

OPGA封装

mPGA封装

CPGA封装

FC-PGA封装

FC-PGA2封装

OOI 封装

PPGA封装

S.E.C.C.封装

S.E.C.C.2 封装

S.E.P.封装

PLGA封装

CuPGA封装

1、早期CPU封装方式

CPU封装方式可追朔到8088时代,这一代的CPU采用的是DIP双列直插式封装。

而80286,80386CPU则采用了QFP塑料方型扁平式封装和PFP塑料扁平组件式封装。

2、PGA(Pin Grid Array)引脚网格阵列封装

PGA封装也叫插针网格阵列封装技术(Ceramic Pin Grid Arrau Package),目前CPU的封装方式基本上是采用PGA封装,在芯片下方围着多层方阵形的插针,每个方阵形插针是沿芯片的四周,间隔一定距离进行排列的,根据管脚数目的多少,可以围成2~5圈。它的引脚看上去呈针状,是用插件的方式和电路板相结合。

四、MSP430单片机ADDC12电压采集程序

/**********************************************

*功 能:单通道采样一次,选用内部的参考电压2.5V

*入口参数:channel:选择的采样通道 0~7

*出口参数:采样得到的数字值

***********************************************/

unsigned int sample1(int channel)

{

switch(channel)

{ case 0: P6SEL |= BIT0; break; //A0

case 1: P6SEL |= BIT1; break; //A1

case 2: P6SEL |= BIT2; break;

case 3: P6SEL |= BIT3; break;

case 4: P6SEL |= BIT4; break;

case 5: P6SEL |= BIT5; break;

case 6: P6SEL |= BIT6; break;

case 7: P6SEL |= BIT7; break; //A7

default:P6SEL |= BIT0;

}

ADC12CTL0 = ADC12ON + SHT0_2 +REF2_5V;//2.5V内部参考电压

ADC12CTL1 = SHP; //采样信号来源采样定时器

ADC12MCTL0 =(unsigned char)channel; //VR+=VREF+,VR-=AVss

ADC12CTL0 |= ENC; //使能

ADC12CTL0 |= ADC12SC; //开始采样转换

while((ADC12IFG & BIT0)==0);

return (unsigned int)(ADC12MEM0);

}

/**********************************************

*功 能:单通道采样一次,选用外部参考电压2.5V

*入口参数:channel:选择的采样通道 0~7

*出口参数:采样得到的数字值

***********************************************/

unsigned int sample2(int channel)

{

switch(channel)

{ case 0: P6SEL |= BIT0; break; //A0

case 1: P6SEL |= BIT1; break; //A1

case 2: P6SEL |= BIT2; break;

case 3: P6SEL |= BIT3; break;

case 4: P6SEL |= BIT4; break;

case 5: P6SEL |= BIT5; break;

case 6: P6SEL |= BIT6; break;

case 7: P6SEL |= BIT7; break; //A7

default:P6SEL |= BIT0;

}

ADC12CTL0 = ADC12ON + SHT0_2 +REF2_5V;//2.5V内部参考电压

ADC12CTL1 = SHP; //采样信号来源采样定时器

ADC12MCTL0 =SREF_2+(unsigned char)channel; //Vr+=VeEF+,Vr-=AVss

ADC12CTL0 |= ENC; //使能

ADC12CTL0 |= ADC12SC; //开始采样转换

while((ADC12IFG & BIT0)==0);

return (unsigned int)(ADC12MEM0);

}

#include #include ADC12.c void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P5DIR |= 0x02; // P5.1 output for (;;) { if(sample1(1)<120) P5OUT &= ~0x02; else P5OUT |= 0x02; } } // ADC12 interrupt service routine #pragma vector=ADC12_VECTOR __interrupt void ADC12_ISR (void) { if (ADC12MEM0 < 120) P5OUT &= ~0x02; // Clear P5.1 LED off else P5OUT |= 0x02; // Set P5.1 LED on _BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR) } 这么久了,还请采纳,俺可是付出的啊

为您推荐

返回顶部