有错误,高人帮改?谢谢、、、、
#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
#include "cpu.h"
#include "interrupt.h"
#define uint unsigned int
#define uchar unsigned char
#define YJ_PERIPH SYSCTL_PERIPH_GPIOB //LED外围 B端口作为通用输入/输出 宏定义
#define YJ_PORT GPIO_PORTB_BASE //(GPIO通用输入/输出_PORTBB端口_BASE基准)
#define RS GPIO_PIN_0 // PB5控制D1 B端口的2脚
#define RW GPIO_PIN_1 // PB5控制D1 B端口的4脚
#define EN GPIO_PIN_2 // PB5控制D1 B端口的6脚
#define YJBUS_PERIPH SYSCTL_PERIPH_GPIOD //LED外围 B端口作为通用输入/输出 宏定义
#define YJBUS_PORT GPIO_PORTD_BASE //(GPIO通用输入/输出_PORTBB端口_BASE基准)
//#define aa GPIOPinWrite(YJ_PORT ,0xff);
#define RS_L GPIOPinWrite(YJ_PORT,RS ,0x00); //ser管脚为低
#define RW_L GPIOPinWrite(YJ_PORT,RW ,0x00); //SRCLK1管脚为低
#define EN_L GPIOPinWrite(YJ_PORT,EN ,0x00); //SRCLK1管脚为低
#define RS_H GPIOPinWrite(YJ_PORT,RS ,0xff); //ser管脚为高
#define RW_H GPIOPinWrite(YJ_PORT,RW ,0xff); //SRCLK1管脚为高
#define EN_H GPIOPinWrite(YJ_PORT,EN ,0xff); //SRCLK1管脚为高
uchar LCDDISPLAY_ROW1[]={" 08131106 "};
uchar LCDDISPLAY_ROW2[]={" hapyy!!!!!!! "};
/*
uchar LED[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xfe,0xbf}; //共阳极段码表说明
uint i,j,k,n=0; //说明整数变量
uchar aa,bb[]={2,0,1,0,0,6,1,1},cc=0xc0,dd; // 8个数码管显示的数数组
*/
void Delay(uint t)
{
while(t)t--;
}
void lcd_delay(unsigned int delaytime)
{
while(delaytime)delaytime--;
}
void write_lcd_command(uchar write_command)
{
lcd_delay(40);
RS_L;
RW_L;
GPIOPinWrite(YJBUS_PERIPH,YJBUS_PORT,write_command);
EN_H;
EN_L;
}
void write_lcd_data(unsigned char write_data)
{
lcd_delay(40);
RS_H;
RW_L;
GPIOPinWrite(YJBUS_PERIPH,YJBUS_PORT,write_data);
EN_H;
EN_L;
}
void initize_lcd(void)
{
uchar i;
EN_L;
for(i=200;i>0;i--)lcd_delay(248);
write_lcd_command(0x3f);
for(i=4;i>0;i--)lcd_delay(248);
write_lcd_command(0x3f);
write_lcd_command(0x0f);
write_lcd_command(0x01);
for(i=4;i>0;i--)lcd_delay(248);
write_lcd_command(0x06);
}
void lcd_displaystr(uchar x,uchar y,uchar *str)
{
switch(x)
{
case 0:
write_lcd_command(0x80+y);
break;
case 1:
write_lcd_command(0xc0+y);
break;
}
while(*str)
{
write_lcd_data(*str);
str++;
}
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_6MHZ); //SysCtlClockSet函数()系统时钟设置 采用主振荡器 外接6MHz晶振 不分频
SysCtlPeripheralEnable(YJ_PERIPH); //sysctl的周边启用
SysCtlPeripheralEnable(YJBUS_PERIPH);
GPIOPinTypeGPIOOutput(YJ_PORT, RS); //GPIO输出型的 (GPIO输出引脚:GPIO_PIN_2)
GPIOPinTypeGPIOOutput(YJ_PORT, RW); //GPIO输出型的 (GPIO输出引脚:GPIO_PIN_4)
GPIOPinTypeGPIOOutput(YJ_PORT, EN); //GPIO输出型的 (GPIO输出引脚:GPIO_PIN_6)
GPIOPadConfigSet(YJ_PORT, RS, GPIO_STRENGTH_8MA_SC, //GPIO_STRENGTH_8MA:GPIO输出强度8毫安
GPIO_PIN_TYPE_STD_WPU);
GPIOPadConfigSet(YJ_PORT, RW, GPIO_STRENGTH_8MA_SC, //GPIO_STRENGTH_8MA:GPIO输出强度8毫安
GPIO_PIN_TYPE_STD_WPU);
GPIOPadConfigSet(YJ_PORT, EN, GPIO_STRENGTH_8MA_SC, //GPIO_STRENGTH_8MA:GPIO输出强度8毫安
GPIO_PIN_TYPE_STD_WPU);
initize_lcd();
write_lcd_command(0x80);
uchar i;
for(i=0;i<16;i++)
{
write_lcd_data(i+'A');
Delay(60000);
Delay(60000);
}
write_lcd_command(0xC0);
for(i=0;i<16;i++)
{
write_lcd_data(i+'a');
Delay(60000);
Delay(60000);
}
lcd_displaystr(0,0,LCDDISPLAY_ROW1);
Delay(60000);
Delay(60000);
lcd_displaystr(1,0,LCDDISPLAY_ROW2);
while(1);
} |