本程序由好几个头文件组成,都在下面,你能够仿制代码并保存为独立的文件
头文件STC12C5A.H下载:http://www.51hei.com/mcu/2564.html
#include
#include “stdio.h”
#include “LCD1602.h”
#include “interrupt.h”
#include “chiclet_keyboard.h”
#define uchar unsigned char
#define uint unsigned int
void main()
{
delay(500);
LCD_init();
interrupts_init();
chiclet_keyboard_();
EA=0;
while(1);
}
#ifndef _LCD1602_H
#define _LCD1602_H
/*
单片机:STC89CXX,晶体: 12M 编译:KEIL uVision4
LCD1602指令代码:
代码 阐明
1 铲除显现
2 光标复位
输入形式挑选:
X 0000 01(I/D)S
I/D:光标移动方向,1右移,0左移
S:屏幕文字是否移动.1移动.
显现开/关操控:
X 0000 1DCB
D:全体显现开关,1为开
C:光标开关,1为开
B:光标闪耀,1为闪耀
光标或字符移位:
X 0001 (S/C)(R/L)**
S/C: 1时移动文字,0时移动光标
R/L:1为右移,0为左移
功用设置:
X 001(DL) NF**
DL:1为8线形式,0为4线形式
N: 0为单行显现,1为2行显现
F: 0为5X7字符,1为5X10字符
字符地址:
X 01xx xxxx
xxxxx:对应的ASCII地址
显现地址:
X 1xxx xxxx
xxx xxxx:屏幕显现地址
内部显现和屏幕的地址对应注明:
00–0x0F 对应屏幕榜首行,00–0x27内部榜首行
0x40–0x4F对应屏幕第二行,0x40–0x67内部第二行
*/
#define uchar unsigned char
#define uint unsigned int
//界说硬件接口
#define LCD_DATA P0
sbit LCD_EN=P2^5;
sbit LCD_RS=P2^3;
sbit LCD_RW=P2^4;
/**********************************************
函数称号:
函数功用:
函数调用:
输入参数:
输出参数:
版权信息:
时刻版别: V1.0
***********************************************/
/**********************************************
函数称号: delay_ms(uint num)
函数功用: 延时
函数调用:
输入参数: ms
输出参数:
版权信息:
时刻版别: V1.0
补白:晶体:12M
***********************************************/
void delay_ms(uint temp)
{
uint x,y;
for(x=temp;x>0;x–)
for(y=110;y>0;y–);
}
/**********************************************
函数称号: write_com(uchar com)
函数功用: 写指令
函数调用: delay_ms(uint num)
输入参数: 指令代码
输出参数:
版权信息:
时刻版别: V1.0
***********************************************/
void LCD_w_com(uchar com)
{
LCD_RS=0;
LCD_RW=0;
LCD_DATA=com;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}