www.rtmj.net > 1602液晶显示器如何通过AT89S51单片机显示4*4矩阵...

1602液晶显示器如何通过AT89S51单片机显示4*4矩阵...

4*4矩阵键盘用行列扫描方式获得键值,1602有固定的驱动时序,按时序操作并发数据到1602就可以了

将三个程序段:1602,18b20,矩阵键盘,的程序组合移植修改能实现功能.

这个你看看可以参考!#include#include#define uint unsigned int#define uchar unsigned charuchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};//这三个引脚参考资料sbit E=P2^7; //1602使能引脚sbit RW=P2^6; //

本题用一个带4*4矩阵键盘作为输入,用一个共阳数码管作为显示器,16个按键#include

查看8255数据手册,了解它的控制字,有pa,pb,pc三个接口.矩阵键盘一般接pc口比较好,将其设置为4位输出,4位输入方式,1602接pa或pb口,设为输出方式.8255是专用io口扩展芯片,不用其他芯片了.1602用单片机控制,不用判忙,因为比起1602,单片机速度慢多了.

#define LCD1602_FLAG#define LCD1602_PORT P0#include<reg51.h>#include<stddef.h>#define uchar unsigned char sbit lcd1602_rs=P2^0;sbit lcd1602_e=P2^2;sbit lcd1602_rw=P2^1;sbit lcd1602_busy=P0^7; uchar str[]="This is Key Test";

不能合并?那你写的按键程序和lcd程序有什么用,lcd部分需要有个函数,这个函数负责在液晶屏的任意位置显示想要显示的字符;按键部分需要一个进行按键扫描程序,合并的话,主程序不断进行按键扫描,当检查到有键按下时,就调用lcd那个函数

并不是设置4次,而是要设置4个参数,如下write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口write_com(0x0c); //设置开显示,不显示光标write_com(0x06); //写一个字符后地址指针加一write_com(0x01); //显示清零,数据指针清零其中write_com( )为写命令字函数.

设定一个标志位,确定你输的每二次是接着弟一个数的,我这是一个程序中的一部分,你看看吧 if(flag1) { switch(flag) { case 0: flag = 1; one = key_val; command(0x80); data(tab[key_val]); k1 = (float)one; break; case 1: flag = 2; two = key_val; command(0x80+1); data(tab[key_val]); k1 = (float)(one*10 + two); break;我之前也是遇到这个问题不懂,后来花钱学的,就这么点东西用了我20元钱钱

你这代码无法看的,没有换行符,图片能看,但也很累人的,要验证还得输入,还是文件发来叫好,可以发我邮箱或VX,头像上有.

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com