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

📄 freescale

📁 Freescale 系列单片机常用模块与综合系统设计
💻
字号:
#include "taximeter.h"

//====================================================
//====================   TABLES   ====================
//====================================================

const Byte TRANSLATE_NUMBER[10]  =    {    // Translates a number to its 8-segment-display equivalent
// numbers from 0 to 9
// PTB = G F A B P C D E 
// PTB = 7 6 5 4 3 2 1 0
SEG_A & SEG_B & SEG_C & SEG_D & SEG_E & SEG_F,    // 0
SEG_B & SEG_C,                                                                       // 1
SEG_A & SEG_B & SEG_D & SEG_E & SEG_G,                     // 2
SEG_A & SEG_B & SEG_C & SEG_D & SEG_G,                    // 3
SEG_B & SEG_C & SEG_F & SEG_G,                                     // 4
SEG_A &    SEG_C & SEG_D & SEG_F & SEG_G,                 // 5
SEG_A &    SEG_C & SEG_D & SEG_E & SEG_F & SEG_G,  // 6
SEG_A & SEG_B & SEG_C,                                                        // 7
SEG_A & SEG_B & SEG_C & SEG_D & SEG_E & SEG_F & SEG_G,    // 8
SEG_A & SEG_B & SEG_C & SEG_D & SEG_F & SEG_G,       // 9
};

const Byte TRANSLATE_LETTER[59] = {
// Valid letters: A,b,Cc,d,E,F,G,Hh,Ii,Jj,Ll,n,Oo,P,q,r,S,Uu,0,1,2,3,4,5,6,7,8,9,-,.
// PTB = G F A B P C D E
// PTB = 7 6 5 4 3 2 1 0                                SYMBOL        ASCII
DISPLAY_OFF,                                            // space      32
DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,    //    33-37
DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,    //    38-42
DISPLAY_OFF,DISPLAY_OFF,                                        //    43-44
SEG_G,                                                    // -        45
SEG_P,                                                    // .        46
DISPLAY_OFF,                                                    //    47
SEG_A & SEG_B & SEG_C & SEG_D & SEG_E & SEG_F,            // 0        48
SEG_B & SEG_C,                                            // 1        49
SEG_A & SEG_B & SEG_G & SEG_E & SEG_D,                    // 2        50
SEG_A & SEG_B & SEG_G & SEG_C & SEG_D,                    // 3        51
SEG_F & SEG_G & SEG_B & SEG_C,                            // 4        52
SEG_A & SEG_F & SEG_G & SEG_C & SEG_D,                    // 5        53
SEG_A & SEG_F & SEG_E & SEG_C & SEG_D & SEG_G,            // 6        54
SEG_A & SEG_B & SEG_C,                                    // 7        55
SEG_A & SEG_B & SEG_C & SEG_D & SEG_E & SEG_F & SEG_G,    // 8        56
SEG_A & SEG_F & SEG_G & SEG_B & SEG_C & SEG_D,            // 9        56
DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,DISPLAY_OFF,    //    57-61
DISPLAY_OFF,DISPLAY_OFF,                                        //    62-63
SEG_A & SEG_B & SEG_C & SEG_E & SEG_F & SEG_G,            // A        64
SEG_F & SEG_E & SEG_D & SEG_C & SEG_G,                    // B        65
SEG_A & SEG_F & SEG_E & SEG_D,                            // C        66
SEG_G & SEG_E & SEG_D & SEG_C & SEG_B,                    // D        67
SEG_A & SEG_F & SEG_G & SEG_E & SEG_D,                    // E        68
SEG_A & SEG_F & SEG_G & SEG_E,                            // F        69
SEG_A & SEG_F & SEG_E & SEG_D & SEG_C & SEG_G,            // G        70
SEG_F & SEG_E & SEG_B & SEG_C & SEG_G,                    // H        71
SEG_B & SEG_C,                                            // I        72
SEG_B & SEG_C & SEG_D & SEG_E,                            // J        73
DISPLAY_OFF,                                              // K        74
SEG_F & SEG_E & SEG_D,                                    // L        75
SEG_E & SEG_A & SEG_C & SEG_B & SEG_F,                    // M        76
SEG_E & SEG_G & SEG_C,                                    // N        77
SEG_A & SEG_B & SEG_C & SEG_D & SEG_E & SEG_F,            // O        78
SEG_E & SEG_F & SEG_A & SEG_B & SEG_G,                    // P        79
SEG_A & SEG_B & SEG_G & SEG_F & SEG_C,                    // Q        80
SEG_E & SEG_G,                                            // R        81
SEG_A & SEG_F & SEG_G & SEG_C & SEG_D,                    // S        82
SEG_A & SEG_B & SEG_C,                                    // T        83
SEG_F & SEG_E & SEG_D & SEG_C & SEG_B,                    // U        84
SEG_F & SEG_E & SEG_D & SEG_C & SEG_B,                    // V        85
DISPLAY_OFF, DISPLAY_OFF,                                 // W-X      86-87,
SEG_B & SEG_C & SEG_F & SEG_G,                            // Y        88
SEG_A & SEG_B & SEG_D & SEG_E & SEG_G,                    // Z        89
};

//====================================================
//=============  REPROGRAMMABLE TABLES  ==============
//====================================================

#pragma CONST_SEG FLASH_TABLES

volatile const Byte FARE_MESSAGE_TABLE[45] = {
' ','D','A','Y',' ',
'N','I','G','H','T',
'S','U','N','D','A',
'T','I','M','E',' ',
'F','A','R','E','5',
'F','A','R','E','6',
'F','A','R','E','7',
'F','A','R','E','8',
'F','A','R','E','9',
};

volatile const Word INI_CH_TABLE[9] = {    // Price of initial charges
600,
1200,
1000,
3500,
500,
600,
700,
800,
900,
};

volatile const Word FARE_TABLE[9] = {    // Price of every fare
150,
300,
200,
100,
50,
60,
70,
80,
90,
};

volatile const Word EXTRA_TABLE[9] = {    // Price of extra charges
1000,
2000,
3000,
4000,
5000,
6000,
7000,
8000,
9000,
};

volatile const Byte INFO_TABLE[24] = { 
'S','E','R','I','A','L',' ',' ',  // Serial n鷐ber
'P','L','A','T','E','S',' ',' ',  // License plate
'M','O','T','O','R','O','L','A',  // Advertiser
};       

//====================================================
//================  FLASH VARIABLES  =================
//====================================================

#pragma CONST_SEG FLASH_VARIABLES
/* 
 * Accumulators in flash.
 * These accumulators are transmitted to the programmer at the 
 * beginning of the programming process and are erased. If you
 * wish to keep these in the taximeter, the programmer should
 * send them back so they are re-programmed. All accumulators
 * are incremented in the state PAY, but the TOTAL_DISTANCE_
 * TRAVELED is also incremented in the state OFF. 
 * To be modified, these accumulators are read into RAM 
 * <BackupAccumulator()> starting at address 0x008C. There
 * are global variables defined in that space. Those global
 * variables are incremented and the they are re-programmed
 * into flash.
 */

ulong TOTAL_DISTANCE_TRAVELED   @0xEC81; 
ulong TOTAL_DISTANCE_IN_SERVICE @0xEC85; 
ulong TOTAL_NUMBER_TRAVELS      @0xEC89; 
ulong TOTAL_NUMBER_INCREMENTS   @0xEC8D; 
ulong TOTAL_INCOME              @0xEC91; 

volatile const Byte FARES_NUMBER  @ 0xEC9E = 2; // Number of active fares
volatile const Byte EXTRAS_NUMBER @ 0xEC9F = 5; // Number of active extras


#pragma CONST_SEG FLASH_VERIFY
volatile const Byte FLASH_PROGRAM = UNCORRUPT_FLASH; // Key to verify flash programmation

#pragma DEFAULT_SEG

⌨️ 快捷键说明

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