标题:
1602显示小程序,熟悉用1602
[打印本页]
作者:
腾飞的龙
时间:
2016-6-6 10:23
标题:
1602显示小程序,熟悉用1602
按键控制1602显示。加、减、乘、除。并显示得数。
/********************************************************
功 能:按键控制1602显示
单片机: STC12C5A60S2
晶 振:11.0592M
作 者: 苏义江
时 间:2016-6-6
********************************************/
#include<reg52.h>//51单片机头文件
#define uchar unsigned char//宏定义
#define uint unsigned int
uchar code digit[]={"0123456789"};//定义字符数组数字
uchar code tab[]="An Jian Xian Shi";
sbit rs=P2^7;//数据命令选择
sbit rw=P2^6;//读写控制信号
sbit e=P2^5;//使能信号
sbit key=P3^7; //按键
uchar shi,ge;
///////////////
void delay_50us(uint t)//50us延时函数
{
uchar j;
for(;t>0;t--)
for(j=190;j>0;j--);
}
void write_com(uchar com)//写地址
{
e=0;
rs=0;
rw=0;
P0=com;
delay_50us(10);
e=1;
delay_50us(30);
e=0;
}
///////
void write_data(uchar dat)// 写数据
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_50us(10);
e=1;
delay_50us(30);
e=0;
}
//////
void init(void)//液晶初始化
{
uchar i;
delay_50us(300);
write_com(0x38);
delay_50us(100);
write_com(0x38);
delay_50us(100);
write_com(0x38);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x80);
for(i=0;i<16;i++)
{
write_data(tab[i]);
delay_50us(30);
}
}
void femwei(uchar x) //分位函数
{
shi=x/10+0x30;
ge=x%10+0x30;
}
void keyscan() //按键扫描
{
uchar dd,w;
if(key==0)
{
delay_50us(200);
if(key==0)
{
dd++;
if(dd==5)//按下次数
dd=0; //清零
}
if(dd==1)
{
w=10;
femwei(w);
write_com(0x80+0x44); //显示地址
write_data('5');
write_data('+');
write_data('5');
write_data('=');
write_data(shi);
write_data(ge);
delay_50us(300);
}
if(dd==2)
{
w=72;
femwei(w);
write_com(0x80+0x44);
write_data('8');
write_data('*');
write_data('9');
write_data('=');
write_data(shi);
write_data(ge);
delay_50us(300);
}
if(dd==3)
{
w=04;
femwei(w);
write_com(0x80+0x44);
write_data('9');
write_data('-');
write_data('5');
write_data('=');
write_data(shi);
write_data(ge);
delay_50us(300);
}
if(dd==4)
{
w=07;
femwei(w);
write_com(0x80+0x44);
write_data('8');
write_data('-');
write_data('1');
write_data('=');
write_data(shi);
write_data(ge);
delay_50us(300);
}
}
}
void main()
{
init();
while(1)
{
keyscan();
}
}
复制代码
作者:
爱玩单片机
时间:
2016-6-7 00:26
谢谢51hei又学习了
作者:
heicc
时间:
2016-6-7 00:58
很经典的程序 1602显示英文和数字,收藏了
作者:
kening@6
时间:
2017-6-17 22:53
谢谢楼主分享
作者:
fontex
时间:
2017-6-18 09:25
学习了,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1