//===============================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//==============================================================
//============================================================
// 工程名称: UART&LCD&SPR4096.spj
// 功能描述: 将UART通讯接收的数据在LCD上显示。
// 文件来源:《SPCE061A单片机实验指导书》,"实验三十七 UART控制液晶显示" 第132页
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.4
//
// 涉及的库:
// 组成文件:
// main.c hardware.asm 4096.asm isr.asm SPLC501DisplayTAB.asm SPLC501Hardware.asm Splc501sys.asm
//===============================================
//============================================================
// 文件名称:main.c
// 实现功能: 将UART通讯接收的数据在LCD上显示
//============================================================
extern void SP_SIOInitial(void);
extern void SP_SIOMassErase(void);
extern unsigned int SP_SIOReadAByte(unsigned long int g_ulAddr);
extern void Init_sys(void);
extern void FG_InitGraphic(void);
void SP_UARTInitial(void);
#define C_UARTBaudRate_9600_H 0x05
#define C_UARTBaudRate_9600_L 0x00
#define M_SECTOR 10 //第几个扇区(0~255)
#include "SPCE061V004.H"
#include "unSPMACRO.h"
#include "lab_parameter.h"
unsigned long ulStartAddr,ulEndAddr,g_ulAddr;
unsigned int g_uiData,g_uiFlag,g_uiTimeOutCnt,g_uiHalfSecondCnt;
//=============================================================
// 函数名称: int main()
// 功能描述: 将UART通讯接收的数据在LCD上显示
// 语法格式: int main()
//入口参数: 无
// 出口参数: 无
// 注意事项: 仅为用户模型
//=============================================================
main()
{
int X,Y; //X:横坐标 Y:纵坐标
unsigned char *ucStr1 = "UART Ready";
unsigned char *ucStr2 = "Receiving...";
unsigned char *ucStr3 = "Complete";
unsigned char *ucCode;
SP_SIOInitial(); //SIO初始化
SP_UARTInitial(); //UART初始化
Init_sys(); //LCD初始化
FG_InitGraphic();
*P_INT_Ctrl = C_IRQ5_2Hz; //开2Hz中断,用来定时清看门狗
INT_IRQ();
// g_uiData = *P_IOB_Buffer; //IOB11:低电平,选择SPR4096的FLASH
// g_uiData &= 0xf7ff;
// *P_IOB_Data = g_uiData;
ulStartAddr=0x800*(M_SECTOR);
g_ulAddr = ulStartAddr;
SP_SIOMassErase(); //对SPR4096的所有扇区进行擦除
ucCode = ucStr1;
X = 120;
Y = 40;
FG_PutStr(ucCode,large,X,Y); //LCD显示ucStr1的内容
g_uiFlag=0;
while(g_uiFlag==0); //等待接收到第一个数据
FG_ClearScreen(0); //LCD清屏
ucCode = ucStr2;
X = 120;
Y = 40;
FG_PutStr(ucCode,large,X,Y); //LCD显示ucStr2的内容
g_uiTimeOutCnt = 0;
while(g_uiFlag==1) //等待接收完毕
{
g_uiTimeOutCnt++;
if(g_uiTimeOutCnt >= 0xfffe)
g_uiFlag = 2;
}
ulEndAddr = g_ulAddr;
FG_ClearScreen(0); //LCD清屏
ucCode = ucStr3;
X = 120;
Y = 40;
FG_PutStr(ucCode,large,X,Y); //LCD显示ucStr3的内容
FG_ClearScreen(0); //LCD清屏
g_ulAddr = ulStartAddr;
for(X = 125,Y = 60;g_ulAddr < ulEndAddr;g_ulAddr++)
{
g_uiData=SP_SIOReadAByte(g_ulAddr); //从SPR4096读出一个Byte的数据
FG_PutChar(g_uiData,large,X,Y); //在LCD上显示该数据
X -= FG_GetCharWidth(g_uiData,large);
if(X < 10) //换行
{
X = 125;
Y -= (2+FG_GetCharHeight(g_uiData,large));
}
if(Y < FG_GetCharHeight(g_uiData,large)) //换屏
{
X = 125;
Y = 60;
g_uiHalfSecondCnt = 0;
while(g_uiHalfSecondCnt < 6); //延时
FG_ClearScreen(0); //LCD清屏
}
}
while(1);
}
//=============================================================
// 函数名称: SP_UARTInitial()
// 功能描述: UART初始化
// 语法格式: void SP_UARTInitial(void);
// 入口参数: 无
// 出口参数: 无
// 注意事项: 无
//=============================================================
void SP_UARTInitial(void)
{
*P_IOB_Dir |= 0x0400; //bit10设为输出(Tx),bit7设为输入(Rx)
*P_IOB_Dir &= 0xff7f;
*P_IOB_Attrib |= 0x0480;
*P_IOB_Buffer &= 0xfb7f;
*P_UART_Command1 = C_UART_Reset; //UART复位
*P_UART_BaudScalarHigh = C_UARTBaudRate_9600_H; //波特率设为9600
*P_UART_BaudScalarLow = C_UARTBaudRate_9600_L;
*P_UART_Command1 = C_UART_Rx_IRQ_ENB; //UART接收中断使能
*P_UART_Command2 = C_UART_Rx_Pin_ENB; //UART接收管脚使能
}
用汇编和C编写的,完成将UART通讯接收的数据在LCD上显示的功能,无解压密码.zip
版权申诉
20 浏览量
2023-03-29
10:31:23
上传
评论
收藏 58KB ZIP 举报
GZM888888
- 粉丝: 202
- 资源: 2968
最新资源
- TbReactions(BaseModel)
- request-validator.cpython-37
- pygments.lexers.javascript ~~~~~~~~~~~~~~~~~~~~~~~~~~
- 简单小游戏制作-飞行棋
- Python数学建模例子.rar
- Java项目-基于SSM+JSP的校园外卖配送系统的设计与实现(源码+万字LW+部署视频+代码讲解视频+全套软件)
- Color-Transformer introduction
- FastStone Capture屏幕长截图软件包
- Table IoT物联网工具,简单快速的搭建物联网服务平台
- zheng2020 ecg new dataset-12 lead-add-label
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈