改变CCS字体方法:
perferance>General>Apperance>Colors and Fonts >Basic>Text Font
将c语言编译成汇编语言之后执行。如果c语言结构不好,则编译后 会出现编译成汇编后代码冗余, 使得执行效率不高。
板子有可能与电脑连接出问题,可以拔下重插一次。
在单片机内部flash存储空间有剩余时,可以用于数据存储空间, 并且可以使用单片机程序进行数据管理。 POR PUC是复位信号
看门狗定时器溢出发生复位 复位时设置如下:
1.RAM堆栈的指针指到最顶端 2.初始化看门狗 3.初始化外设 GIE是总中断
具有欠压复位功能 工作电流小于20UA 待机电流小于0.8UA 4个特殊功能寄存器 R0是PC指针 R1是堆栈指针 R2是状态寄存器 R3是常数发生器
12个通用寄存器R4-R15 27条内核指令
24条仿真指令 7中地址模式 无累加器
三个时钟:
ACLK辅助时钟:频率较低,低速外设 MCLK是主时钟,CPU运行的时钟,高频 SMCLK是次主时钟,高速外设
DCO是数字震荡控制器1M 8M 12M 16M共4个级别,可以通过 内置数据进行设置
内置VLO低频振荡器,频率为4-20khz。所以可以通过DCO进行分频 Timer_A频率可达系统振荡频率,用于定时器时,最小单位时间 是20ns
2553的电阻有0~15共16中。用RSEL选择。RSEL与DCO配合 ,值越大 频率越大。
LF是外接时钟
USART支持UART、SPI 共2种通讯方式 USCI支持 UART、I2C、SPI 共3种通讯方式
关于变量:
static变量是对于局部变量而言,如果不定义成静态变量,则 每次执行时都会被重新初始化,静态变量则不重新初始化。 全局变量和静态变量是存储在RAM中的。
extern是外部变量,即将一个文件中的变量在另一个文件中 使用。如在文件1中声明了变量z,在文件2中声明extern int z 就可以使用文件1的z
I/O口赋值方法与C51中的相同,可以使用OXxx或OXxxxx赋值。 对P管脚整体赋值是对寄存器的赋值操作
BIT0,BIT1,BIT2,BIT3分别表示二进制的第一位,二位, 三位为1,四位为1.表示0x01,0x02,,0x04,0x08.
P1OUT|=BIT1,是除了第一位的寄存器值被改变,其他位的值 都不变,这样可以防止对其他位做了误操作。
关于逻辑操作:
&0xff与|0x00则不改变原值
^BIT0分为^0和^1,^1则每次之前的状态都改变,^0则每次之前的 状态都不变。因此^BIT0表示^0x0001,即前15位都不改变状态 只有最后一位翻转,可以用于位翻转操作。
<<移位操作经常用于数值计算以及某些循环操作。左移n位表示 *2^n.
必须先对需要的未进行输入输出设置,之后才能进行读写操作。
模数转换器具有14路输入。
定时器与比较器配合,可以得到某个时间函数,如果知道了某 物理量随时间的变化规律,就可以进行测量。
利用定时器和RAM等存储数据的模块或数组,可以实现任意PWM波的 产生,再利用电容的充放电作用可以模拟出任何的周期性波形,方 法如下:定时器赋初值,启动定时器,计数停止后进入中断,在中 断中将下一个要计的时间加在初值上,继续计数。如此循环。每次 进入中断时都翻转一下输出电平。定下某个循环的次数作为一个大
周期。
P口要选择作为I/O口还是作为寄存器,选定后还要在方向寄存器中 确定是输入还是输出。
PXDIR为0时,要使用PxREN进行上拉下拉操作,上拉则默认输入是高 电平,下拉则默认是低电平。如P1REN|=BIT0;
不操作时都默认为下拉。可以在P1REN寄存器里找到各位状态。
上电后P1DIR全部为0,即输入状态。P1OUT 的7~1都是1,p1.0是0. P1IN 的P1.1 P1.2为高,其他为低。
在使用时应该先分清自己是要输入还是要输出,然后可以根据需要 使用P1REN调整初始状态。
I/O口作为输出时,如果输出寄存器P1OUT是高,则对输入寄存器PIN 有影响,会直接将P1IN寄存器变为高电平,这就是那位学长说的要 注意的问题,要尽量避免,如在进行初始化时P1OUT =0X00;不应该 利用这一现象,这不正宗。
I/0口的中断注意事项:
1.寄存器名称根据芯片的寄存器名称设置,2553是IE1,IE2,不是 P1IE,P2IE (要以调试时的寄存器为准,不要看头文件中的。) 2.IE1为1是开中断,不要搞反了
3.将需要的端口的PxREN置1,即接上拉电阻。 4.标志位要软件清零
5.逻辑判断时要加括号,否则不能执行
6.不必局限于头文件中宏定义的OFIE,OFIFG等,P1,P2的所有管脚
都可以独立中断。可以独立设置。
7.PxSELx只要置1,那么中断就自动禁止,不管PxIE是什么
不同的编译软件的寄存器名称不一样,设置时需要根据实际的进行 设置,否则寄存器无效。!!!!!!!!!!
定时器是CCR0,CCR1,CCR2,CCR0的优先级最高,并且返回时不要 软件清除中断标志位,是自动复位的(相当于51的8位自动重装 定时器)。其他定时器必须软件清除中断标志位。CCR0,CCR1都是 计数值,相当于51的TH0,TL0.TH1,TL1.
关于定时器的连续工作模式和增计数模式????????
数据段的数据个数一般要超过256个才能通过8路AD转换。
MCLK的频率等于机器频率,每一个周期都能够完成一个基本操作。 一个指令周期等于1-6个机器周期,根据指令而定。可以参照MSP430 时钟设置及其总结一文。 ACLK用于低速外设 MCLK用于CPU
SMCLK用于高速外设
注意对寄存器进行位设置时的语法,可以是x|=a+b+c... x表示寄存器名称,a,b,c表示寄存器的位名。
多机USART通信时,数据格式为 :起始位 地址 停止位 起始位 数据