仿真图:

(附文件)

程序源码:

#include<reg51.h>
#include<intrins.h>
sbit  E=P3^0;
sbit  RW=P3^1;
sbit  DI=P3^2;
sbit  CS2=P3^3;
sbit  CS1=P3^4;
#define uchar unsigned char
#define uint unsigned int
unsigned char cons,cont;
//uchar code
//l[]=
//{0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x10,0x11,0x16,0xD0,0x10,0x10,
//0x00,0x80,0x40,0x20,0x18,0x06,0x41,0x20,0x10,0x3F,0x44,0x42,0x41,0x40,0x40,0x78},
//c[]=
//{0x00,0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,
//0x00,0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41},
//dian[]=
//{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
//0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},
//qi[]=
//{0x20,0x10,0x4C,0x47,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0xD4,0x04,0x04,0x00,0x00,
//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x30,0x40,0xF0,0x00},
//ban[]=
//{0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84,0x84,0x00,
//0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00};
uchar code
shuzi[16][32]={{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",0*/
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",1*/
{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",2*/
{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",3*/
{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",4*/
{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",5*/
{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",6*/
{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",7*/
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",8*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",9*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"a",
0*/
{0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"b",
1*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",
2*/
{0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"d",
3*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",
4*/
{0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};/*"f"
,5*/
unsigned char i;
void delay(uint x)//ÑÓʱ
{
uint a,b;
for(a=x;a>0;a--)
for(b=10;b>0;b--);
}
void keycan(void)
{
for(i=0;i<4;i++)
switch(i)
{
case 0:
P1=0x7f;
delay(5);
switch(P1|0xf0)
{
case 0xfe:cont=0;break;
case 0xfd:cont=1;break;
case 0xfb:cont=2;break;
case 0xf7:cont=3;break;
default:break; }
case 1:
P1=0xbf;
delay(5);
switch(P1|0xf0)
{
case 0xfe:cont=4;break;
case 0xfd:cont=5;break;
case 0xfb:cont=6;break;
case 0xf7:cont=7;break;
default:break; }
case 2: P1=0xdf;
delay(5);
switch(P1|0xf0)
{
case 0xfe:cont=8;break;
case 0xfd:cont=9;break;
case 0xfb:cont=10;break;
case 0xf7:cont=11;break;
default:break; }
case 3:
P1=0xef;
delay(5);
switch(P1|0xf0)
{
case 0xfe:cont=12;break;
case 0xfd:cont=13;break;
case 0xfb:cont=14;break;
case 0xf7:cont=15;break;
default:break; }
default:break;
}
} void readbusy(void)     /* ÅжÏ×î¸ßλÊÇ·ñΪ 1£¬Îª 0 ²Å¶ÁдÊý¾Ý */
{
P0=0x00;
cons=P0;
DI=0;
RW=1;
E=1;
while(cons&0x80);
E=0;
}
void Select(uchar i)
{
switch(i) { case 0:CS1=0;CS2=0;break; case 1:CS1=0;CS2=1;break; case 2:CS1=1;CS2=0;break; default:break; }
}
void xieminling(uchar value)
{
readbusy();/* ÿ´Î¶Áд¶¼ÒªÃ¦ÅÐ¶Ï */
DI=0;
RW=0;
P0=value;
E=1;
_nop_();
_nop_();
E=0;
}
void Setonoff(uchar onoff)
{
onoff=0x3e|onoff;
xieminling(onoff);
}
void xieshuju(uchar dat)
{
readbusy();
DI=1;
RW=0;
P0=dat;
E=1;
_nop_();
_nop_();
E=0;
}
void  Setpage(uchar page)/* ÉèÖÃÒ³ */
{
page=0xb8|page;
xieminling(page);
}
void Setline(uchar line) /* ÉèÖÃÁÐ */
{
line=0x40|line;
xieminling(line);
}
void qingping(uchar screen)   /* ÇåÆÁ*/
{
uchar i,j;
Select(screen);
for(i=0;i<8;i++) {   Setline(0); Setpage(i);  for(j=0;j<64;j++) {  xieshuju(0x00); } }
}
void chushihua(void)
{
Select(0);
Setonoff(0);
Select(0);
Setonoff(1);
Select(0);
qingping(0);
}
void xianshi(uchar ss,uchar lie,uchar page1,uchar *p)
{ uchar i; Select(ss); Setpage(page1); Setline(lie); for(i=0;i<16;i++) {
xieshuju(p[i]);
}
Setpage(page1+1); Setline(lie);
for(i=0;i<16;i++) {xieshuju(p[i+16]); }
}
void main()
{
//xianshi(2,0,2,l);
//xianshi(2,16*2,2,c);
//xianshi(1,0,2,dian);
//xianshi(1,16,2,qi);
//xianshi(1,16*2,2,shuzi[1]);
//xianshi(1,16*3,2,ban);
//xianshi(2,0,4,shuzi[2]);
//xianshi(2,8,4,shuzi[0]);
//xianshi(2,16,4,shuzi[1]);
//xianshi(2,16+8,4,shuzi[1]);
//xianshi(2,16*2,4,shuzi[0]);
//xianshi(2,16*2+8,4,shuzi[2]);
//xianshi(2,16*3,4,shuzi[4]);
//xianshi(1,0,4,shuzi[1]);
//xianshi(1,8,4,shuzi[0]);
//xianshi(1,8+8,4,shuzi[9]);
while(1)
{
chushihua();
keycan();
xianshi(2,0,0,shuzi[cont]);delay(); }
}  

.

链接:https://pan.baidu.com/s/1_zz0vTJlj3Le0yGRxVwBUA
提取码:41iu

.

基于51单片机的12864液晶显示4X4矩阵键盘程序仿真相关推荐

  1. 基于51单片机汽车胎压温度监测报警系统(程序+仿真+原理图+元件清单)

    功能介绍: 采用51单片机作为主控单片机,通过采集传感器的胎压和DS18b20的温度,显示到LCD1602上面,并且可以通过按键设置温度和压力的阈值,超过此值蜂鸣器进行报警,可以及时的提醒驾驶员胎压或 ...

  2. 基于51单片机轮胎胎压监测系统-压力传感器(仿真+程序+报告)

    本设计: 基于51单片机轮胎胎压监测系统-压力传感器(仿真+程序+报告) Proteus仿真版本:proteus7.8 程序编译器:keil 4 编程语言:C语言 编号C0018 ----本设计分享下 ...

  3. 【043】基于51单片机的篮球比赛积分计时系统Proteus仿真

    一.压缩包资料内容 (1).基于51单片机的篮球比赛积分计时系统proteus仿真设计一份: (2).基于51单片机的篮球比赛积分计时系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  4. 【038】基于51单片机的土壤湿度自动浇花系统Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的土壤湿度自动浇花系统proteus仿真设计一份: (2).基于51单片机的土壤湿度自动浇花系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  5. 基于51单片机HX711的电子秤称重计价proteus仿真程序设计

    设计要求 1.利用压力传感器检测重量信号,经放大和A/D转换,送单片机进行处理,并在液晶屏上显示出被称重量值: 2.最小显示单位为1克: 3.量程超过报警值蜂鸣器报警 资料下载地址:基于51单片机HX ...

  6. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  7. 基于51单片机的可控硅调压调光程序-带过零检测

    基于51单片机的可控硅调压调光程序-带过零检测 #include<reg52.h> #include<intrins.h> sbitledRS=P1^0; sbitledRW= ...

  8. Arduino与Proteus仿真实例-4x4矩阵键盘驱动仿真

    4x4矩阵键盘驱动仿真 键盘是广泛用于各种电子和嵌入式项目的输入设备. 它们用于以数字和字母的形式获取输入,并将其输入系统以进行进一步处理. 矩阵键盘由一组相互连接的按钮组成. 在本次实例中使用 4X ...

  9. 利用c51进行数模转换并在液晶屏上显示_基于C51单片机的智能计算器、矩阵键盘、lcd1602...

    目录 1绪论.............................................................................................. ...

  10. 基于51单片机轮胎胎压监测系统-压力传感器proteus仿真

    基于51单片机轮胎胎压监测系统-压力传感器仿真+程序+报告 Proteus仿真版本:proteus7.8 程序编译器:keil 4 编程语言:C语言 编号C0018 百度云网盘下载链接 基于单片机的轮 ...

最新文章

  1. Java 8 开发的 4 大顶级技巧,你都知道吗 ?
  2. 安卓2.3刷机包_红米K20Pro 安卓Q刷机包下载+刷机教程
  3. java代码快速_java代码编写快捷途经
  4. C++ Variadic Templates(可变参数模板)
  5. python(48):re.split 多分隔符
  6. php 5.3.29 怎么开启debug_PHP代码审计之环境安装(一)
  7. 常用animation动画
  8. IDEA+Maven+Git
  9. echo, print, printf 和 sprintf 区别(PHP)
  10. Hierarchical clustering
  11. SuiteCRM的汉化
  12. 关于XAMPP Apache 启动失败的问题
  13. 青海省海西蒙古族藏族自治州谷歌高清卫星地图下载
  14. 青春期的我们……妥协…挣扎…惊醒
  15. setdbprefs matlab,matlab数据导入与导出
  16. L1-7 机工士姆斯塔迪奥
  17. sonar入门:全网最全的概念解析与安装
  18. win10总显示打印机未连接服务器,win10安装打印机一直未响应。。。
  19. 【闲谈】我为什么不想回答你的问题
  20. 每日刷题记录 (二十七)

热门文章

  1. OpManager12——一个完整的网络管理解决方案
  2. 98道常见Hadoop面试题及答案解析
  3. 人工智能革命:人类将永生或者灭绝
  4. ROS学习笔记(一)#ROS系统及RoboWare的安装
  5. 2021-09-07NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡说明
  6. R语言实现PVAR(面板向量自回归模型)
  7. 激励函数-Activation Funciton
  8. 如何从网页上下载页面嵌入的PDF文件
  9. 利用云终端减少硬件冗余 提高机房整体管理效率
  10. 公司人事管理系统(C++)