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

📄 main.c

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 C
字号:
/*-----------------------------------------------------*
*工 程 名:TG12864E02.prj                               *
*硬件连接: 1.LCD的DB0-7与MCU的B口的PTB0-7连接          *
*          2.LCD的RS,R/W,E与MCU的PTC0,PTC1,PTC2连接    *
*   功 能:初始时显示:"苏州大学        "                *
*                    "单片机实验室    "                *
*                    "http://sumcu.s  "                *
*                    "uda.edu.cn      "                *
*-----------------------------------------------------*/

/*[头文件]*/
#include "GP32C.h"        //映像寄存器地址头文件
#include "lcd.h"          //Lcd头文件
#include "SCI.h"          //SCI头文件

//有关定时器寄存器位定义
#define TSTOPBit   5      //定时器计数停止位

//定时器初始化函数声明
void Timer1init(void);
//SCI初始化
extern void SCIInit(void);

//全局变量声明
unsigned char Num=0;    //显示的数据
unsigned char FLine=0;  //得到焦点的行号
//[外部定义64个字节的Lcd显示缓冲区]
unsigned char LcdShowBuff[64]="           as   "
                              "            df  "                
                              "            df  "                
                              "            da  ";
unsigned char YNo=0,XNo=0;
unsigned int Data=12;
//*====================================================*

#pragma abs_address:0x8000
const INT16U BigNumCode[320]={
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,0x0C60, //"0"
 0x0830,0x1830,0x3018,0x3018,0x3018,0x3018,0x701C,0x701C,
 0x701C,0x701C,0x701C,0x3018,0x3018,0x3018,0x3018,0x1830,
 0x1830,0x0C60,0x0380,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0040,0x03C0, //"1"
 0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
 0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,
 0x01C0,0x01C0,0x0FF8,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x1FF0, //"2"
 0x3078,0x603C,0x403C,0x001C,0x001C,0x001C,0x0018,0x0038,
 0x0030,0x0060,0x0040,0x00C0,0x0180,0x0300,0x0600,0x0C02,
 0x1806,0x3FFC,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0FF0, //"3"
 0x1878,0x2038,0x0018,0x0018,0x0010,0x0020,0x0040,0x01F0,
 0x07F8,0x00F8,0x003C,0x001C,0x000C,0x000C,0x000C,0x0008,
 0x3810,0x3C20,0x1FC0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0070, //"4"
 0x00F0,0x00F0,0x0170,0x0170,0x0270,0x0470,0x0470,0x0870,
 0x1870,0x1070,0x2070,0x6070,0x7FFE,0x7FFE,0x0070,0x0070,
 0x0070,0x0070,0x0070,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x07F0, //"5"
 0x07F0,0x0800,0x0800,0x1E00,0x1F80,0x3FE0,0x03F0,0x00F0,
 0x0078,0x0038,0x0018,0x0018,0x0018,0x0018,0x0010,0x0030,
 0x3060,0x3FC0,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003C,0x00E0, //"6"
 0x0380,0x0700,0x0E00,0x1C00,0x1800,0x3800,0x33E0,0x7C70,
 0x7038,0x703C,0x701C,0x701C,0x701C,0x701C,0x301C,0x3818,
 0x1830,0x0C70,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1FFE,0x3FFE, //"7"
 0x3FFC,0x200C,0x401C,0x0018,0x0018,0x0038,0x0030,0x0030,
 0x0070,0x0060,0x0060,0x00E0,0x00C0,0x00C0,0x01C0,0x0180,
 0x0180,0x0380,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, 
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07E0,0x0C38, //"8"
 0x1818,0x381C,0x381C,0x381C,0x3C38,0x1E30,0x0F60,0x0780,
 0x03E0,0x05F0,0x0CF8,0x1878,0x383C,0x381C,0x381C,0x381C,
 0x1C18,0x0E30,0x07E0,0x0000,0x0000,0x0000,0x0000,0x0000,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07C0,0x0C70, //"9"
 0x1838,0x301C,0x701C,0x700E,0x700E,0x700E,0x700E,0x780E,
 0x380E,0x1C1E,0x0FEC,0x001C,0x0038,0x0030,0x0070,0x00E0,
 0x0180,0x0F00,0x7800,0x0000,0x0000,0x0000,0x0000,0x0000};
#pragma end_abs_address

/*[主函数]*/
void main()
 {  
    unsigned char *RF;        //接收标志
    unsigned char tmp;        //行号标志
    asm("SEI");               //关总中断
    Timer1init();             //调定时器1初始化子程序
    Lcdinit();                //Lcd初始化
    SCIInit();                //SCI初始化
    asm("CLI");               //开总中断
  //[主循环]
  //循环等待接收
  while(1)
  {
  	//LcdShBigCh(0,0,(INT16U *)(BigChCode_NUM[Num]));
  	//tmp=SCIRe1(RF);
  	//if(tmp!=0xFF) Num=tmp;
  	//SCISend1(Num);
  	
  	SCISend1(86);
  	if(SCIRe1(RF)!=56) continue;
  	YNo=SCIRe1(RF);
  	XNo=SCIRe1(RF);

  	/*
  	if(LN==1)     //将接收到的数据放在第一行显示缓冲区
       SCIReN(16,LcdShowBuff);
  	else if(LN==2)//将接收到的数据放在第二行显示缓冲区
  	   SCIReN(16,LcdShowBuff+16);
  	else if(LN==3)//将接收到的数据放在第三行显示缓冲区
  	   SCIReN(16,LcdShowBuff+32);
  	else if(LN==4)//将接收到的数据放在第四行显示缓冲区
  	   SCIReN(16,LcdShowBuff+48);
    */
  }
 }

/*[内部直接调用子程序存放处]*/
/*Timer1init:定时器1初始化子程序-----------------------*
*功能:对定时器1初始化                                  *
*参数:无                                               *
*返回:无                                               *
*-----------------------------------------------------*/
void Timer1init(void)
 {
     //允许溢出中断、不启动计数、分频因子=64
     T1SC=0b01100110;
     //计数寄存器初值=0x0000
     T1CNTH=0x00; T1CNTL=0x00;           
     //1/2秒产生1次溢出中断
     //计数寄存器=1/2×(2457600/64)=1200
     T1MODH=0x12; T1MODL=0x00;
     //允许定时器1计数寄存器计数
     T1SC&=~(1<<TSTOPBit);
 }

⌨️ 快捷键说明

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