標(biāo)題:
1602顯示小程序,熟悉用1602
[打印本頁(yè)]
作者:
騰飛的龍
時(shí)間:
2016-6-6 10:23
標(biāo)題:
1602顯示小程序,熟悉用1602
按鍵控制1602顯示。加、減、乘、除。并顯示得數(shù)。
/********************************************************
功 能:按鍵控制1602顯示
單片機(jī): STC12C5A60S2
晶 振:11.0592M
作 者: 蘇義江
時(shí) 間:2016-6-6
********************************************/
#include<reg52.h>//51單片機(jī)頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int
uchar code digit[]={"0123456789"};//定義字符數(shù)組數(shù)字
uchar code tab[]="An Jian Xian Shi";
sbit rs=P2^7;//數(shù)據(jù)命令選擇
sbit rw=P2^6;//讀寫(xiě)控制信號(hào)
sbit e=P2^5;//使能信號(hào)
sbit key=P3^7; //按鍵
uchar shi,ge;
///////////////
void delay_50us(uint t)//50us延時(shí)函數(shù)
{
uchar j;
for(;t>0;t--)
for(j=190;j>0;j--);
}
void write_com(uchar com)//寫(xiě)地址
{
e=0;
rs=0;
rw=0;
P0=com;
delay_50us(10);
e=1;
delay_50us(30);
e=0;
}
///////
void write_data(uchar dat)// 寫(xiě)數(shù)據(jù)
{
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) //分位函數(shù)
{
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)//按下次數(shù)
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();
}
}
復(fù)制代碼
作者:
愛(ài)玩單片機(jī)
時(shí)間:
2016-6-7 00:26
謝謝51hei又學(xué)習(xí)了
作者:
heicc
時(shí)間:
2016-6-7 00:58
很經(jīng)典的程序 1602顯示英文和數(shù)字,收藏了
作者:
kening@6
時(shí)間:
2017-6-17 22:53
謝謝樓主分享
作者:
fontex
時(shí)間:
2017-6-18 09:25
學(xué)習(xí)了,謝謝!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1