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

📄 boot.c

📁 双CPU BOOTLOADER 综合实验,不用烧写工具 将.out文件转换成.hex文件烧写到flash里
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
;***********************************************************************
;*				  						 北京达盛科技有限公司
;*                                     	    研    发    部
;*
;*                                 	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 + -