51單片機(jī)按鍵搶答器程序
頭文件STC12C5A.H下載:http://www.51hei.com/mcu/2564.html
本文引用地址:http://2s4d.com/article/201612/324577.htm#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
/*
單片機(jī):STC89CXX,晶體: 12M 編譯:KEIL uVision4
LCD1602命令代碼:
代碼 說明
1 清除顯示
2 光標(biāo)復(fù)位
輸入模式選擇:
X 0000 01(I/D)S
I/D:光標(biāo)移動方向,1右移,0左移
S:屏幕文字是否移動.1移動.
顯示開/關(guān)控制:
X 0000 1DCB
D:整體顯示開關(guān),1為開
C:光標(biāo)開關(guān),1為開
B:光標(biāo)閃爍,1為閃爍
光標(biāo)或字符移位:
X 0001 (S/C)(R/L)**
S/C: 1時移動文字,0時移動光標(biāo)
R/L:1為右移,0為左移
功能設(shè)置:
X 001(DL) NF**
DL:1為8線模式,0為4線模式
N: 0為單行顯示,1為2行顯示
F: 0為5X7字符,1為5X10字符
字符地址:
X 01xx xxxx
xxxxx:對應(yīng)的ASCII地址
顯示地址:
X 1xxx xxxx
xxx xxxx:屏幕顯示地址
內(nèi)部顯示和屏幕的地址對應(yīng)注明:
00--0x0F 對應(yīng)屏幕第一行,00--0x27內(nèi)部第一行
0x40--0x4F對應(yīng)屏幕第二行,0x40--0x67內(nèi)部第二行
*/
#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;
/**********************************************
函數(shù)名稱:
函數(shù)功能:
函數(shù)調(diào)用:
輸入?yún)?shù):
輸出參數(shù):
版權(quán)信息:
時間版本: V1.0
***********************************************/
/**********************************************
函數(shù)名稱: delay_ms(uint num)
函數(shù)功能: 延時
函數(shù)調(diào)用:
輸入?yún)?shù): ms
輸出參數(shù):
版權(quán)信息:
時間版本: V1.0
備注:晶體:12M
***********************************************/
void delay_ms(uint temp)
{
uint x,y;
for(x=temp;x>0;x--)
for(y=110;y>0;y--);
}
/**********************************************
函數(shù)名稱: write_com(uchar com)
函數(shù)功能: 寫命令
函數(shù)調(diào)用: delay_ms(uint num)
輸入?yún)?shù): 命令代碼
輸出參數(shù):
版權(quán)信息:
時間版本: 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;
}
評論