⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 音乐-1路转速-1路温度-8led(启动发送按键)-06-7-20.s43

📁 TI公司出品的msp430f449芯片控制led显示温度的程序 同时播放出音乐
💻 S43
字号:
#include  "msp430x12x2.h"
;******************************************************************************
; 测试转速(速度)、温度、电子音乐合成器(S.H.E组合改编的作品:不想长大,原创为莫扎特G小调第40交响曲、祝你生日快乐)、
; 键盘乐器程序,利用功能键转换,测试结果可经串口传送给上位机.版本1.0, 
; 显示器为4位LED,主时钟MCLK采用4MHZ晶振.  2005.5.28
;   Description; Echo a received character, RX ISR used. Normal mode is LPM0, 
;   USART0 RX interrupt triggers TX Echo. 
;   ACLK = LFXT1 = 32768Hz,  MCLK = SMCLK = UCLK0 = DCOCLK = 1048576
;   Baud rate divider with 1048576hz = 1048576Hz/9600 ~ 109 (006Dh)
;   //*An external watch crystal on XIN XOUT is required for ACLK*//	 
;              
;                MSP430F1222
;             -----------------
;         /|\|              XIN|-  
;          | |                 | 2.0MHz  
;          --|RST          XOUT|-
;            |                 |
;            |         P3.5(16)|<----------- 
;            |                 | 9600 - 8N1
;            |         P3.4(15)|----------->
;
;
;控制代码定义:
;     F0H;串行通信数据起始码
;     F1H: 向上位机发送电池基本信息时的起始码
;     FFH;串行通信数据结束码   EDH   !!!
;     CEH;由充电机发来的激活充电码(收到该码后将上次激活后已充电
;          次数单元F_CDCSP和上次充电后存放天数单元F_CFTSP内容清0) 
;     CFH;由充电机发来的充满电代码(收到该码后将上次充电后
;          存放天数单元F_CFTSP内容清0)
;     BEH: 虚拟仪器上位机向下位机发送的测试开始码
;    BFH: 虚拟仪器上位机向下位机发送的暂停测试码
;     EDH: 测试结束码
;通信数据块格式:F0H+1字节地址+1字节温度+2字节时间+2字节转速+2字节速度+2字节备用+FFH
          ORG 01000H                          ;定义LED字型表起始地址
Flash_DAT   DB  3Fh,   06H,    5BH,    4FH,   66H,    6DH,  7DH,    07H   ;0--7
            DB  7FH,   6FH,    77H,    7CH,   39H,    5EH,  79H,    71H   ;8--F
            DB  00H,   54H,    3DH,    5CH,   63H                         ;"空","n","GOOd",o   
             
F_CFTST     =   Flash_DAT+14    ;定义总存放天数单元
F_CFTSP     =   Flash_DAT+16    ;定义上次充电后存放天数单元
F_CDCST     =   Flash_DAT+18    ;定义总充电次数单元
F_CDCSP     =   Flash_DAT+20    ;定义上次激活后已充电次数单元
FDC_DAT     =   22              ;FLASH中保存的电池信息数据个数

;低8度基本音阶表
YJ_TBL      DB  01,     253,    226,    201,    189,    169,    151,    134     ;01,    低8度
YJ_TBL8     DB  126,    114,    103,    95,     85,     75,     67      ;113    中8度
            DB  63,     56,     51,     47,     42,     38,     33      ;       高8度
            DB  31,     28,     25,     24
;键值表            
;K_TBL       DB  01H,    02H,    03H,    04H,    05H,    06H,    07H     ;00,
;            DB  08H,    09H,    0AH,    0BH,    0CH,    0DH,    0EH
;            DB  0FH,    10H,    11H,    12H,    13H,    14H,    15H  
            
;键值表            
K_TBL       DB  03H,    0BH,    02H,    0AH,    01H,    09H,    00H,    08H     ;00,
            DB  07H,    0FH,    06H,    0EH,    05H,    0DH,    04H,    0CH
              
;;;乐曲音符表:音符字节的编码规则为高4位为音高,低4位为基本音阶,紧跟音符的下一个字节为拍节常数
;S.H.E组合改编的作品:不想长大,原创为莫扎特G小调第40交响曲
MU_TBL      DB  14H,04, 13H,04, 13H,08, 14H,04, 13H,04, 13H,08, 14H,04, 13H,04, 13H,08, 21H,16 
            DB  21H,04, 17H,04, 16H,08, 16H,04, 15H,04, 14H,08, 14H,04, 13H,04, 12H,08, 12H,16
            DB  13H,04, 12H,04, 12H,08, 13H,04, 12H,04, 12H,08 
            DB  13H,04, 12H,04, 12H,08, 17H,16, 17H,04, 16H,04, 16H,08, 16H,04, 15H,04     ;00H,01;休止符 
            DB  14H,08, 13H,04, 12H,04, 11H,08, 11H,20, 0FFH  ; 14H!!!!!!
;祝你生日快乐:5 5 6 5 1 7- 5 5 6 5 2 1-5 5 5 3 1 7 6- 4 4 3 1 2 1-  
MU_TBL1     DB  05,08,  05,08,  06,16,  05,16,  11H,16, 07,32,  05,08,  05,08,  06,16,  05,16
            DB  12H,16, 11H,32, 05H,08, 05H,08, 15H,16, 13H,16, 11H,16, 07,16,  06,32,  14H,08
            DB  14H,08,  13H,16, 11H,16, 12H,16, 11H,32, 0FFH
            
          ORG 200H
DATA        DW    0             ;RAM区从200H开始  EQU   200H 
DATP        DW    0             ;DATA+2 定义数据指针存放单元
VOLT        DW    0             ;DATA+4 速度采样测试值存放单元
TEMP        DW    0             ;DATA+6 温度采样值存放单元
TC          =     278           ;实测温度修正系数
TIM_S       =     TEMP          ;秒累计时时间存放单元
LEDTP       DW    0             ;DATA+12 字型表指针
DP          DW    0             ;DATA+14 显缓区指针单元
DBUF_P      DW    0             ;DATA+18    VOLT      ;显缓区指针存放地址单元
D_BUF       DS    8             ;DATA+16 显缓区起始地址单元
n           =     11H
G           =     12H
o           =     13H
d           =     0DH
oC          =     14H
RX_DAT      DS    16           ;230H 定义接收数据存放区
TX_DAT      DS    16           ;250H 定义发送数据存放区
RXDP        DW    0            ;RX_DAT-2
TXDP        DW    0            ;RX_DAT-3
DSTP        DW    0            ;DATA+18 目标指针工作单元
CONT1       DS    2           ;DATA+20 计数器工作单元
CONT2       DS    2           ;DATA+22
CONT3       DS    2           ;DATA+24
C_CR0       =     50000       ;25000  50000     9450 
TIM_DAY     DS    2           ;DATA+28 定义小时累计时单元地址
TIM_W       =     TIM_DAY     ;测试时间计时单元
T_WDT       =     5           ;测试时间基本计时单位为1/100秒
HOUR        =     2           ;定义小时累计时值(12X2=24小时)
SPEED       DS    2           ;DATA+30 定义速度采样计数单元
SD          DS    2
T36mS       DB    0           ;DATA+26 定义速度采样定时单元地址
C36mS       =     9           ;采样时间为36mS                              ???
T05S        DB    0           ;DATA+27 500mS累计时时间存放单元
C05S        =     10          ;100 该系数可微调转速,每字相当于0.39转
T1S         DB    0           ;秒时间累计时单元     
C1S         =     10          ;20 秒时间计时系数   !!!!!!!
nL          DB    0            ;DATA+32 显示字符的Y(列)坐标存放单元地址
Y           =     nL
nH          DB    0            ;DATA+33 显示字符的X(行)坐标存放单元地址
X           =     nH
nHL         =     nL
XY          =     nL
T_mS        DB    0            ; 1/100秒累计时时间计数单元
T_S         DB    0            ; 秒累计时时间计数单元
T_M         DB    0            ; 分累计时时间计数单元
RAM1        DS    2            ; 暂存单元1
RAM2        DS    2            ; 
RAM3        DS    2            ;
S_M         DS    2            ;DATA+38 距离(米:M)计数单元
S_CM        DB    0            ;DATA+40 距离(厘米:CM)计数单元 
LED_BIT     DB    0             ;DATA+10 
KEY_N       DB    0             ;DATA+47
KEY_N1      DB    0             ;
KEY_N2      DB    0             ;
KEY_F       DB    0
RX_FLG      DB    0             ;RX_DAT-1  定义接收标志存放单元
COM_FLG     DB    0             ;RX_DAT-4 虚拟仪器上位机发送给下位机的命令码存放单元
FLG         DB    0         ;通用标志单元:D0为乐曲选择标志,为0时选择第1首乐曲;为1时选择第2首乐曲. 
CFT         =   14
CFP         =   16
CDT         =   18
CDP         =   20
TX_BUF      =   77H            ;定义发送缓冲器(在CPU内部)地址
RX_BUF      =   76H            ;定义接收缓冲器(在CPU内部)地址 

ID          =   01             ;下位机地址或ID码
RES         =   BIT1
REQ         =   BIT3
LCD_BUSY    =   BIT6
KEY_ON      =   BIT0
K21         =   BIT1
KP20        =   BIT0
KP21        =   BIT1
LCD_DIS   MACRO   M,  N,  CODE,  W    ;向LCD送显示字符的宏定义指令:形参M为字符所在行;形参N为
            MOV.B   M,       &nH      ;字符所在列;形参CODE为字符代码;形参W为字符写入子程序名
            MOV.B   N,       &nL      ;宏调用指令格式为LCD_DIS  M,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -