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

📄 main.c

📁 为日本瑞萨苏州分公司做的一个温控系统
💻 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 FLine=0;  //得到焦点的行号
  //[外部定义64个字节的Lcd显示缓冲区]
  unsigned char LcdShowBuff[64]="苏州大学        "
                                "单片机实验室    "                
                                "http://sumcu.s  "                
                                "uda.edu.cn      ";
//*====================================================*
/*[主函数]*/
void main()
 {  
    unsigned char *RF;        //接收标志
    unsigned char LN;         //行号标志
    asm("SEI");               //关总中断
    Timer1init();             //调定时器1初始化子程序
    Lcdinit();                //Lcd初始化
    SCIInit();                //SCI初始化
    asm("CLI");               //开总中断
  //[主循环]
  //循环等待接收
  while(1)
  {
  	SCISend1(86);
  	if(SCIRe1(RF)!=56) continue;
  	LN=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 + -