MSP430单片机的开发及应用
RESET MOV #SFE(CSTACK),SP /*初始化堆栈指针*/
MOV #(WDTHOLD+WDTPW),&WDTCTL /*停止看门狗定时器*/ MOV.B #02EH,&UTCTL1 / *选定时钟源*/ MOV.B #043H,&UBR01 /*确定分频因子*/ MOV.B #003H,&UBR11 MOV.B #000H,&UMCTL1
BIS.B #030H,&P5DIR /*初始化端口功能为外设*/ BIS.B #030H,&P5SEL
MOV.B #040H,&BCSCTL1 /*转换时钟*/ BIC #OSCOFF,SR PUSH #050H LOOP DEC 0(SP)
JNZ LOOP BIC.B #OFIFG,&IFG1 MOV.B #088H,&BCSCTL2 MOV.B #000H,&P3DIR MOV.B #0FFH,&P3SEL MOV #0200H,R6 EINT
MOV.B #URXE1,&ME2 /*USART0 MOV #GIE,SR
MOV.B #URXIE1,&IE2 MOV.B #020H,&UTCTL1 BIC.B #URXSE,&UTCTL1 BIS.B #URXSE,&UTCTL1
MOV.B #010H,&UCTL1 /* MOV.B #008H,&URCTL1
MOV.B #043H,&UBR01 /* MOV.B #003H,&UBR11 MOV.B #000H,&UMCTL1
MOV.B #URXIE1,&IE2 /* EINT
URT MOV.B #URXIE1,&IE2
JMP URT /*RECEI MOV.B &U1RXBUF,0(R6) /* MOV.B #000H,&IE2 /* RETI /* COMMON INTVEC /* ORG UART1RX_VECTOR DW RECEI
ORG RESET_VECTOR DW RESET END
3 Eerom.s43程序:
#include \
ORG 0FFFEH /* DW Reset
RSEG UDATA0 DS 0
RSEG CSTACK DS 0
西安邮电学院63# 710061 陈小忠接受模块允许*/ 控制寄存器的写入*/ 写分频因子*/ 接收中断允许*/ 中断等待,接受数据*/
中断程序,接收数据到数据段*/
中断禁止*/ 中断返回*/ 中断向量表*/ 定义段和复位地址*/ 26
MSP430单片机的开发及应用
RSEG CODE DS 0
Reset MOV #SFE(CSTACK),SP /*初始化堆栈指针*/
MOV #(WDTHOLD+WDTPW),&WDTCTL/*停看门狗*/ CALL #XIE /*调用写子程序*/ DU1 CALL #DU /*调用读子程序*/
JMP DU1 /*重复调用便于观察一帧的数据*/ CUSHIHUA / *初始化子程序*/ CALL #QIDONG /*调用启动子程序*/
CALL #SONG1 /*以下为调用芯片地址1010000*/ CALL #SONG10 /* CALL #SONG1 /* CALL #SONG10 /* CALL #SONG00 /* CALL #SONG00 CALL #SONG00 RET
XIE CALL #CUSHIHUA /* CALL #SONG00 /* CALL #YINDA /* CALL #SONG1 /* CALL #SONG10 CALL #SONG00 CALL #SONG00 CALL #SONG00 CALL #SONG00 CALL #SONG00 CALL #SONG00
CALL #YINDA /* CALL #SONG1 /* CALL #SONG11 /* CALL #SONG10 CALL #SONG00 CALL #SONG1 CALL #SONG11 CALL #SONG10 CALL #SONG00
CALL #YINDA /* MOV.B #060H,&P4DIR /* MOV.B #000H,&P4OUT /* CALL #TINGZHI /* RET /*DU CALL #CUSHIHUA /* CALL #SONG00 /* CALL #YINDA /* CALL #SONG1 /* CALL #SONG10 CALL #SONG00 CALL #SONG00 CALL #SONG00
西安邮电学院63# 710061 调用1后的送0子程序*/ 调用0后的送1子程序*/ 调用1后送0子程序*/
调用0后送0子程序*/ 调用初始化子程序*/
为写,因此送0*/
送完地址字节10100000,等待应答*/ 送选定的地址10000000*/ 送完选定的地址字节后为等待应答*/ 送数据11001100到指定的地址*/ 调用1后送1 的子程序*/ 等待应答*/
应答后SDA数据线应为输出状态*/
输出数据线SDA和SCL都为低,便于停止位的执行*/ 调用停止子程序*/ 写完后返回*/
读子程序,调用初始化子程序,选芯片地址为1010000*/
先送写信号为0*/ 送完为等应答*/
送选中的地址为10000000*/ 陈小忠 27
MSP430单片机的开发及应用
CALL #SONG00 CALL #SONG00 CALL #SONG00
CALL #YINDA /*送完地址,等待应答*/ MOV.B #000H,&P4OUT /*应答完,转为输出方式*/ MOV.B #060H,&P4DIR
CALL #QIDONG1 /*又启动*/
CALL #SONG1 /*送选中的地址1010000*/ CALL #SONG10 CALL #SONG1 CALL #SONG10 CALL #SONG00 CALL #SONG00 CALL #SONG00
CALL #SONG1 /*送读信号1*/ CALL #YINDA /*等待应答*/
CALL #DUSHU /*读1000000数据*/ CALL #DUSHU CALL #DUSHU CALL #DUSHU CALL #DUSHU CALL #DUSHU CALL #DUSHU CALL #DUSHU
CALL #TINGZHI /*读完后停止*/ RET /*返回*/
QIDONG MOV.B #060H,&P4OUT /*启动子程序,是在非忙时当SCL 为高,SDA由1到0跳变*/
MOV.B #060H,&P4DIR MOV.B #060H,&P4OUT MOV.B #040H,&P4OUT RET
QIDONG1 /*是在由读转为写时的启动信号*/
MOV.B #060H,&P4DIR MOV.B #060H,&P4OUT MOV.B #040H,&P4OUT RET
SONG1 MOV.B #060H,&P4DIR /*在上一个时刻是0时的送1子程序*/
MOV.B #000H,&P4OUT MOV.B #020H,&P4OUT MOV.B #060H,&P4OUT CALL #WAIT1 RET
SONG11 MOV.B #020H,&P4OUT /*在上一个时刻是1时的送1子程序*/
MOV.B #060H,&P4DIR MOV.B #060H,&P4OUT CALL #WAIT1 RET
SONG10 MOV.B #060H,&P4DIR /*在上一个时刻是1时的送0子程序*/
MOV.B #020H,&P4OUT MOV.B #000H,&P4OUT MOV.B #040H,&P4OUT
西安邮电学院63# 710061 陈小忠 28
MSP430单片机的开发及应用
CALL #WAIT1 RET
SONG00 MOV.B #060H,&P4DIR /*在上一个时刻是0时的送0子程序*/
MOV.B #000H,&P4OUT MOV.B #040H,&P4OUT CALL #WAIT1 RET
WAIT1 MOV #50H,R5 /*延时子程序*/ WW SUB #1,R5
JZ FAHUI JMP WW FAHUI RET
YINDA MOV.B #000H,&P4OUT /*应答子程序,时序见论文*/
MOV.B #020H,&P4OUT MOV.B #040H,&P4DIR MOV.B #040H,&P4OUT CALL #WAIT1 RET
TINGZHI MOV.B #000H,&P4OUT /*停止子程序,时序见论文*/
MOV.B #040H,&P4OUT MOV.B #060H,&P4OUT RET
DUSHU MOV.B #000H,&P4OUT /*读数子程序,时序见论文*/
MOV.B #040H,&P4OUT CALL #WAIT1 RET END
4 A/D转换程序
... ...
MAIN MOV #SFE(CSTACK),SP /*初始化堆栈指针*/
MOV #(WDTHOLD+WDTPW),&WDTCTL BB CALL #ADCHANGE
JMP BB ADCHANG BIS #GIE,SR
EINT
MOV #0098H,&ADC12CTL0 MOV.B #040H,&ADC12MCTL0 BIS #00004H,&ADC12CTL1 MOV.B #000H,&P6DIR MOV.B #0FFH,&P6SEL
BIS #ENC,&ADC12CTL0 BIS #00001H,&ADC12CTL0 CLR &ADC12MEM0 RET
END
西安邮电学院63# 710061 陈小忠 29
MSP430单片机的开发及应用
摘要:MSP430是一类现场16位数据线FLASH存储器的单片机,该单片机以丰富的片上资源,高速和高精度而深受广大单片机爱好者的青睐。而本设计充分利用其资源,实现了A/D转换、多机通信、外存和实时时钟、PWM波形的函数发生器、比较器测量、定时器的捕获测量周期、8M方波产生、硬件乘法器等等。通过设计的PCB板,可以应用到大量的工业自动控制中,实现低功耗、低辐射、低污染的控制。
关键字:MSP430 A/D转换 USART 24WCXX 8563 比较器 PWM 定时器 硬件乘法器 电源管理 捕获定时 AAT3221 FLASH
Abstract: MSP430 is a kind of Single-Chip CPU that is presented 16 bit bus and has FLASH memory. Many people will like it because it has a lot of resources in the chip and it runs in high speed and high precision . We use its resource and realize A/D switch、correspondence between compute and Single-Chip CPU、 external memory、to come into being PWM wave、comparison and measure 、to enumerate and capture 、to come into being 8 M pulses 、 the multiplication of hardware and so on . We can use the PCB in the control of industry to realize low power and low radiation and low pollution . KEYWORD:MSP430 A/D switch USART 24WCXX 8563 Comparison Enumerate Pwm Multiplication of Hardware Manager of Power Enumerate and Capture AAT3221 FLASH
西安邮电学院63# 710061 陈小忠 30