📄 io.c
字号:
/***************************
IO测试程序,LCD显示
***************************/
#include "F2407_c.h"
#include "stdlib.h"
unsigned char lcd_data[64];/*数组定义*/
char lcd_data1[1];
int pData[4];
int a=100;
/*系统 初始化子程序*/
initial()
{
asm(" setc INTM ");
asm (" setc SXM");/*抑制符号位扩展*/
asm (" clrc OVM");/*累加器中结果正常溢出*/
asm (" clrc CNF");/*B0被配置为数据存储空间*/
WDCR=0x6F;
WSGR=0x04;
SCSR1=0x86FF; /*CLKIN=15M*/
IMR=0X0000;
IFR=0x0FFFF;
MCRA=0x0000; /*IOPA5~7 配置为一般I/O功能*/
PADATDIR=0x0F700;/*IOPA1~6配置为输出方式.IOPA0配置为输入方式*/
PBDATDIR=0x0FFFF;/*IOPB配置为输出方式*/
/* MCRC=0x0FB71; /*IOPE1~3,IOPF2配置为一般I/O口*/
/* PEDATDIR=0x8000;
PFDATDIR=0x0000;*/
}
/*中断屏蔽子程序*/
void inline disable()
{
asm (" setc INTM ");
}
/*中断使能子程序*/
void inline enable()
{
asm (" clrc INTM ");
}
/*延时子程序*/
void Delay(int count)
{
int ii;
int jj;
for (ii=0;ii<=50;ii++)
{
jj=count;
while(jj > 0)
jj--;
}
}
/*发送数据子程序*/
void SendData()
{
Delay(30);/*等待数据稳定*//*本句必须有*/
PADATDIR=(PADATDIR | 0x0010);/*发送请求*/
loop:
/*检测BUSY位是否为1,即数据是否处理完*/
if(!(PADATDIR & 0x0008))
goto loop;
PADATDIR=(PADATDIR & 0x0FFEF);/*撤消请求*/
Delay(30);/*等待模块内部处理完成*/
/*本句也必须有,否则虽然能够正常显示汉字,但会不时的有闪烁*/
}
/*液晶复位清屏子程序*/
void ResetLCD(void)
{
PBDATDIR=0x0FFF4;
SendData(); /*以上两句为清屏,向数据口送清屏指令#F4H*/
}
/*显示汉字*/
void hanzi()
{
int comd;int adres_x;int adres_y;unsigned char_qu;unsigned char_wei;
unsigned i;
unsigned j;
unsigned m;
strcpy(lcd_data," 闻亭科技 发展责任有限公司 谢谢使用 ");
comd=0x0fff0;
for(i=0;i<4;i++)
{ for(j=2;j<10;j++)
{ adres_x=j;
adres_y=i;
char_qu=lcd_data[i*16+(j-2)*2]-0x0a0;
char_wei=lcd_data[i*16+(j-2)*2+1]-0x0a0;
pData[0]=comd;
pData[1]=adres_x|0x0ff00;
pData[2]=adres_y|0x0ff00;
pData[3]=char_qu|0x0ff00;
pData[4]=char_wei|0x0ff00;
for(m=0;m<5;m++)
{PBDATDIR=pData[m];SendData();}
}
}
}
void interrupt nothing()/*假中断程序*/
{
return;
}
/*********************************************************************************
主程序
**********************************************************************************/
main()
{
disable();//禁止所有中断
initial();//系统初始化
ResetLCD();//液晶清屏
hanzi();//显示成功
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -