📄 boot.c
字号:
/*
;***********************************************************************
;* 北京达盛科技有限公司
;* 研 发 部
;*
;* http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ---------------
;*
;* 文件名称 : boot.C
;* 文件功能 : 该文件为专家4实验系统的综合程序,CPU=TMS320VC5402
;* 拨码开关SW2 :
; 1-ON、2-ON、3-ON、4-ON:ADCLK=250KHZ,LCD 串行
*/
//---------------------------------------------------------------------
//--------------CPU1\CPU2通讯说明
//---------------------------------------------------------------------
//CPU1 1F80 = 0000H 空循环
// = 1111H IO实验 ,CPU2发送过来的数据在1400H的低8位
// = 2222H DTMF实验,CPU2发送过来的数据从1400H的开始的102个单元
// = 3333H 语音回放
// = 4444H 语音低通
// IF90 = 5555 CPU1准备好,CPU2可以传输数据给CPU1
// = AAAA CPU1没准备好,CPU2不可以传输数据给CPU1
//
// 1FA0 = 5555 CPU2已经完成数据传输
// = AAAA CPU2正在数据传输
//---------------------------------------------------------------------
//------------------头文件--------------------------------------
#include "DspRegDefine.h" //VC5402 寄存器定义
#include "math.h" //数学计算定义
#include "stdio.h" //标准输入输出借口定义
//---------------------------------------------------------------
/* ****************** 宏定义 ***************
*****************************************************************
*/
#define UCHAR unsigned char
#define UINT16 unsigned int
#define UINT32 unsigned long
#define TRUE 1
#define FALSE 0
#define OUTH 0x0000 //LED输出亮
#define OUTL 0xffff //LED输出灭
//---------------------------------------------------------------
//--------------- LCD 指令 -----------------------------
//基本指令集 RE = 0
#define CLEAR 0x0001 //清除显示
#define RESAC 0x0002 //位址歸位
#define SETPOINT 0x0006 //進入點設定,游標右移,DDRAM 位址計數器(AC)加1
#define CURSOR 0x000C //整體顯示,游標顯示,游標位置反白
#define MCURSOR 0x0014 //游標向右移動,AC=AC+1
#define FUCSET 0x0030 //功能設定,BIT MPU 控制界面,基本指令集,默认设置
#define CGRAMAC 0x0040 //設定CGRAM 位址
#define DDRAMAC 0x0080 //設定DDRAM 位址
//第一行AC 範圍為80H..8FH
//第二行AC 範圍為90H..9FH
//第三行AC 範圍為A0H..AFH
//第四行AC 範圍為B0H..BFH
//#define READBF RS=0,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
// BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
// 讀取忙碌旗標(BF)和位址
// 就是读取指令寄存器,PORT8006,BF=1,表示LCD忙碌
//#define WRITERAM RS=1,RW=0,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
// D7 D6 D5 D4 D3 D2 D1 D0
// 寫入資料到RAM
// 就是写数据寄存器: PORT8005
//#define READRAM RS=1,RW=1,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
// D7 D6 D5 D4 D3 D2 D1 D0
// 讀取RAM 的值
// 就是从数据寄存器讀取資料, PORT8007
//擴充指令集 RE=1
#define IDLE 0x01 //待命模式
#define CGRAMSET 0x02 //捲動位址或RAM 位址選擇
#define REVERSE 0x04 //反白選擇
#define SLEEP 0x0c //脫離睡眠模式
#define EFUCSET 0x66 //擴充功能設定,8 BIT MPU 控制界面,為擴充指令集動作,繪圖顯示ON
#define SISA 0x40 //設定IRAM 位址或捲動位址
#define SETGDRAM 0x80 //設定繪圖RAM 位址
//---------------------------------------------------------
//--------------- AD7303 控制字 --------------------------------
// 15--------14-------13-----12-----11-----10------9-------8-----
// INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---
// 参考电压--保留---- -B省电--A省电----0/A-1/B-
//-------------------------------------------------------------
//---------------------------------------------------------
/* 端口定义 */
//---------------------------------------------------------
//--------------IO------------------------------
ioport UINT16 port8000; //IO输入地址
ioport UINT16 port8001; //IO输出地址
//--------------LCD----------------------------
ioport UINT16 port8006; //LCD串行时钟地址
ioport UINT16 port8007; //LCD串行数据地址
//---------------AD---------------------------
ioport UINT16 port8002; //AD端口地址
//---------------HPI-------------------------
ioport UINT16 port8008; //"读写HPIC(控制寄存器)寄存器第一字节"地址
ioport UINT16 port8009; //"读写HPIC(控制寄存器)寄存器第二字节"地址
ioport UINT16 port800A; //"读写HPID(数据寄存器)寄存器,HPIA自动增加第一字节"地址:自增模式
ioport UINT16 port800B; //"读写HPID(数据寄存器)寄存器,HPIA自动增加第二字节"地址:自增模式
ioport UINT16 port800C; //"读写HPIA(地址寄存器)寄存器第一字节"地址
ioport UINT16 port800D; //"读写HPIA(地址寄存器)寄存器第二字节"地址
ioport UINT16 port800E; //"读写HPID(数据寄存器)寄存器第一字节"地址:非自增模式
ioport UINT16 port800F; //"读写HPID(数据寄存器)寄存器第二字节"地址:非自增模式
//----------------------------------------------------------
//--------------- HD7279A 指令 -----------------------------
#define CMD_RESET 0xa4 //复位
#define CMD_TEST 0xbf //测试
#define RTL_UNCYL 0xa1 //左移
#define RTR_UNCYL 0xa0 //右移
#define RTL_CYCLE 0xa3 //循环左移
#define RTR_CYCLE 0xa2 //循环右移
#define DECODE0 0x80 //下载数据按方式0译码
#define DECODE1 0xc8 //下载数据按方式1译码
#define UNDECODE 0x90 //下载数据但不译码
#define BLINKCTL 0x88 //闪烁控制
#define ACTCTL 0x98 //消隐控制
#define SEGON 0xe0 //段点亮
#define SEGOFF 0xc0 //段关闭
#define CMD_READ 0x15 //读键盘数据
//---------------------------------------------------------
//---------------------------------------------------------
/* 全局变量定义 */
//---------------------------------------------------------
//------开机画面公司LOGO显示-------------------
const UCHAR icon[64][16] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x1f, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x07, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x1f, 0xff, 0xff, 0xf0, 0x0, 0x07, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x3f, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x3f, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x3f, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x7f, 0xfe, 0x0, 0x0f, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0,
0x0, 0x7f, 0x0, 0x0, 0x0f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0,
0x0, 0x78, 0x0, 0x0, 0x0f, 0xf8, 0x0, 0x0, 0x20, 0x0, 0x0, 0x40, 0xfc, 0x80, 0x0, 0x0,
0x0, 0x7c, 0x0, 0x0, 0x0f, 0xc0, 0x0, 0x0, 0x60, 0x0, 0x01, 0xc0, 0xa6, 0x80, 0x0, 0x0,
0x0, 0xfe, 0x0, 0x0, 0x0e, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x01, 0xc1, 0x22, 0x0, 0x0, 0x0,
0x0, 0xfe, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x01, 0x81, 0x26, 0x40, 0x0, 0x0,
0x0, 0xfe, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x01, 0x81, 0x3c, 0x40, 0x0, 0x0,
0x01, 0xfe, 0x0, 0x01, 0xf0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x01, 0x81, 0x24, 0x40, 0x0, 0x0,
0x01, 0xfe, 0x0, 0x39, 0xf0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x03, 0x80, 0x22, 0x80, 0x0, 0x0,
0x01, 0xfc, 0x0, 0xf9, 0xf0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x03, 0x80, 0xe3, 0x80, 0x0, 0x0,
0x01, 0xfc, 0x07, 0xf1, 0xf0, 0x0, 0x0, 0x01, 0xc0, 0x0, 0x03, 0x80, 0x41, 0x0, 0x0, 0x0,
0x03, 0xfc, 0x1f, 0xf1, 0xf0, 0x0, 0x0, 0x01, 0xc0, 0x0, 0x03, 0x0, 0x3e, 0x0, 0x0, 0x0,
0x03, 0xf8, 0xff, 0xf3, 0xf0, 0x0, 0x0, 0x01, 0x80, 0x0, 0x03, 0x0, 0x0, 0x0, 0x0, 0x0,
0x03, 0xfb, 0xff, 0xf3, 0xf0, 0x0, 0x0, 0x01, 0x80, 0x0, 0x03, 0x0, 0x0, 0x0, 0x0, 0x0,
0x03, 0xff, 0xff, 0xf3, 0xf0, 0x0, 0x0, 0x01, 0x80, 0x0, 0x07, 0x0, 0x0, 0x0, 0x0, 0x0,
0x07, 0xff, 0xff, 0xe3, 0xf0, 0x0, 0x0, 0x03, 0x80, 0x02, 0x07, 0x0, 0x0, 0x0, 0x0, 0x0,
0x07, 0xff, 0xff, 0xe3, 0xf0, 0x1c, 0x03, 0xc3, 0x9c, 0x07, 0x06, 0x30, 0x08, 0x0, 0xc0, 0x1c,
0x07, 0xff, 0xff, 0xe7, 0xf0, 0x3c, 0x05, 0xc3, 0x3c, 0x0f, 0x06, 0x78, 0x18, 0x19, 0xc0, 0x3e,
0x0f, 0xff, 0xff, 0xe7, 0xf0, 0xdc, 0x0d, 0xc3, 0x7c, 0x13, 0x06, 0xf0, 0x38, 0x1b, 0xc0, 0x4e,
0x0f, 0xff, 0xff, 0xe7, 0xf0, 0x8c, 0x19, 0x83, 0x18, 0x31, 0x06, 0x70, 0x30, 0x3b, 0xc0, 0xce,
0x0f, 0xff, 0xff, 0xc7, 0xf1, 0x9c, 0x19, 0x03, 0x18, 0x30, 0x0e, 0x30, 0x30, 0x39, 0xc0, 0x8c,
0x1f, 0xff, 0xff, 0xcf, 0xf1, 0x18, 0x30, 0x07, 0x18, 0x38, 0x0e, 0x70, 0x70, 0x39, 0xc1, 0x8c,
0x1f, 0xff, 0xff, 0xcf, 0xf3, 0x18, 0x30, 0x07, 0x38, 0x3c, 0x0e, 0x60, 0x70, 0x31, 0x81, 0x98,
0x1f, 0xff, 0xff, 0xcf, 0xf3, 0x30, 0x30, 0x07, 0x30, 0x3c, 0x0c, 0x60, 0x60, 0x31, 0x83, 0x98,
0x1f, 0xff, 0xff, 0xcf, 0xf3, 0x20, 0x70, 0x06, 0x30, 0x1e, 0x0c, 0x60, 0x60, 0x73, 0x83, 0xb0,
0x3f, 0xff, 0xff, 0x8f, 0xf3, 0xc0, 0x70, 0x06, 0x30, 0x0e, 0x1c, 0xe0, 0x60, 0x63, 0x83, 0x80,
0x3f, 0xff, 0xff, 0x9f, 0x73, 0x80, 0x70, 0x06, 0x70, 0x0c, 0x1c, 0xe0, 0xe0, 0x63, 0x03, 0x80,
0x3f, 0xff, 0xff, 0x98, 0x33, 0xc0, 0x78, 0x0e, 0x7c, 0x0c, 0x18, 0xf0, 0xe0, 0x63, 0x03, 0xc0,
0x3f, 0xff, 0xff, 0x80, 0xf3, 0xfc, 0x7f, 0x8c, 0x7c, 0x78, 0x18, 0xf8, 0xf8, 0xe3, 0x83, 0xfc,
0x7f, 0xff, 0xff, 0x1f, 0xf3, 0xf0, 0x3e, 0x0c, 0x70, 0x70, 0x10, 0xe0, 0x70, 0xc3, 0xc1, 0xf8,
0x7f, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x03, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
//--------------------宣传口号---------------------------
const UCHAR data_buff1[8] = "达盛科技";
const UCHAR data_buff2[8] = "科教兴国";
const UCHAR data_buff3[10] = " Techshine";
//----------------------绘图RAM-------------------------
UINT16 gdram_cur_x; //LCD绘图RAM 水平位置
UINT16 gdram_cur_y; //LCD绘图RAM 垂直位置
UCHAR *DPTR; //指向ICON数组
//----------------------7279----------------------------
char send_buff = 0x00; //7279发送缓冲
char rece_buff = 0x00; //7279接收缓冲
UINT16 data_buff = 0x0000; //7279数据缓冲
UINT16 show = 0x0000; //OUT 输出数据
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -