一、怎样制定学习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) } 这么久了,还请采纳,俺可是付出的啊