06 12864LCD显示计算器键盘按键实验
实验(二十一)PS2键盘控制LCD12864显示

华南理工大学无线电爱好者协会F D R 工作室实验二十一:PS2键盘控制LCD12864实验一. 实验目的:1. 认识ps2键盘协议2. 掌握12864液晶模块的使用方法。
3. 学会利用12864实现小型可视化图形界面 二. 实验原理:12864与单片机连接原理图12864跟ps2键盘的底层通讯较为复杂,我们在文件夹里提供了相应的资料给读者。
在此不再累述。
提醒读者一下:12864 驱动电流加大,使用时请先调lcd 座旁的蓝色可调电阻,使lcd 上能显示一个一个的小方格。
然后才能正常显示。
12864有并行跟串行两种通讯方式。
当psb 脚为高平时是并行,反之为串行。
华南理工大学F D R 工作室华南理工大学无线电爱好者协会F D R 工作室键盘要注意通码(按下键盘时发出)跟断码(松开键盘时发出)之间的联系。
三.硬件链接图:12864连线:如图所示的红线排针连到单片机各IO口,12864的几个控制脚都是连接在P0口上,从右到左依次是RS、RW、E、PSB、NC(我们提供的12864用不到该引脚)、RST,依次连接到P0^0,P0^1,P0^2,P0^3,P0^4,P0^5; 而数据线则直接接到P1口。
键盘连线:键盘的两条控制线在排针P7靠近红外接收头的两根上,最后一根是时钟线sclk,上边一根是数据线dat,将数据线接到单片机P3^2上靠近单片机一侧的排针上,将时钟线接到单片机INT1上。
12864连线图四.实验程序:#include<AT89X52.h>#include"led.h" //该头文件包含数码管显示数字驱动 #include"tg12864p.h"//该头文件包含lcd12864驱动sbit dat =P3^2;//DATA IN华南理工大学F D R 工作室华南理工大学无线电爱好者协会F D R 工作室#define uchar unsigned char // 即 uchar 等同与unsigned char #define uint unsigned int uchar sp2key_scan();/*****************常量声明区******************************************/ uchar code key_table[47]={'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', //说明:存放键盘上按键的as2码值 'u','v','w','x','y','z',' ','-','=',']', ';','"',',','.','/','[',' ' //作用:方便日后传值到液晶上 };/****************全局变量声明区************************************/ uchar key=0; //用于存放键盘解码函数的解码结果 uchar key_temp=0; bit BF=0; //接收到通码的标志位uchar key_count=0; //记录键盘传任一个数据时传来时钟脉冲个数 uchar key_buffer[5]={0,0,0,0,0};//接收键盘传来数据的缓冲区uchar key_num=0;//一个按键动作,键盘会发出通码,段吗,这用于记录收到编码个数。
实验三 LCD12864液晶显示

实验三 LCD12864液晶显示参赛序号实验题目LCD12864液晶显示实验成组员左虎博杨颂王志鹏指导教师赵勇报告日期2014年7月16日-2014年7月18日摘要:本设计以超低功耗MSP430单片机为微控制器,以4位/8位并行,2线或3线串行多种接口方式的LCD12864为输出显示器。
通过对MSP430单片机进行编程,在LCD12864上显示8×4行16×16点阵的汉字。
关键字:MSP430 LCD12864目录一.方案论证 (4)液晶显示器的论证与选择 (4)二.LCD12864的工作原理 (4)1.引脚功能说明 (4)LCD12864采用20接口,各引脚接口说明如表3所示: (4)2. 指令说明 (5)三.实验框图和电路图 (7)1. 系统框图 (7)2. 电路原理图 (7)四.实验程序设计 (7)五.系统测试 (11)1. 测试方案 (11)2. 测试结果 (11)3. 测试分析与结论 (12)一.方案论证液晶显示器的论证与选择方案一:采用带中文字库的LCD12864。
LCD12864具有4 位/8 位并行、2 线或3 线串行多种接口方式,可以显示8×4 行16×16 点阵的汉字。
也可完成图形显示。
低电压低功耗是其一显著特点。
方案二:采用LCD1602。
LCD1602显示内容为16X2,即可以显示两行,每行16个字符液晶模块,只能显示字符和数字。
通过论证可知LCD12864显示内容多,功能多,低电压低功耗,因此选用方案一。
二.LCD12864的工作原理1.引脚功能说明LCD12864采用20接口,各引脚接口说明如表1所示:表1 引脚说明表管脚号管脚名称电平管脚功能描述1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整4 RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5 R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线表1 引脚说明表注释1:如在实际应用中仅使用串口通讯模式,可将PSB 接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
(完整版)12864lcd显示部分试验总结报告

12864lcd显示部分试验总结报告管岱2014.12.19【实验目的】在12864液晶显示屏上能够显示出在4×4小键盘上输入的激励源频率值,如输入“789HZ”、“8MHZ”、“2.3KHZ”,显示出“789H”、“8M”、“2.3K”。
并且要求此部分程序有较好的可移植性,在最后对电阻率值的显示上能够较好的应用。
【实验原理】12864-3A接口说明表:在12864液晶显示原理的基础上,通过在ise上编写vhdl语言,使之能够在fpga学习板上顺利显示数据。
【实验内容】12864的显示原理并不难理解,并且在以前也用汇编语言实现过,所以本次实验的难点不在于显示原理的理解,而在于VHDL语言的编写。
在实验初期,由于对vhdl语言的不熟练,我们“类比”汇编语言的显示程序,编写出如下的程序:发现编译时就出现了问题,出现如“multi-source in unit <*> on signal <*>”的报错。
在仔细调试检查后发现,我们错误的原因在于:在不同的进程中对同一个信号赋值。
例如,在写指令的进程中,将rs信号置‘0’,而在后面写数据的进程中又将rs置‘1’,由于在vhdl中各进程之间是并行的关系,因此这样编写程序会出现在同一时刻对同一个引脚赋高电平和低电平,从而出现矛盾。
虽然在程序实际运行中,写指令进程在系统一上电就会完成,远早于写数据进程,但是在逻辑上这样编写是不符合VHDL语言的规则的。
因此,我们利用状态机的思想,将写指令和写数据的两个进程合二为一。
程序片段如下:利用状态机,将写指令和写数据的各个步骤分为一个一个分立的状态,顺序执行。
这样编写将对同一个引脚信号的变化放在一个进程中,很好的解决了之前存在的问题。
并且受此启发,在写数据的程序段,对百位、十位、个位以及单位的译码程序中,将原本分别对各自数位信号敏感的四个单独进程改成了受一个的时钟上升沿敏感的一个进程,从而较好的保证了程序的时序性和同步性,经实验验证效果良好。
按键显示电路实验报告(3篇)

第1篇一、实验目的1. 熟悉按键电路的基本原理和设计方法。
2. 掌握按键电路的搭建和调试方法。
3. 了解按键电路在实际应用中的重要性。
4. 提高动手实践能力和电路分析能力。
二、实验原理按键显示电路是一种将按键输入转换为数字信号,并通过显示设备进行显示的电路。
本实验主要涉及以下原理:1. 按键原理:按键通过机械触点实现电路的通断,当按键被按下时,电路接通,产生一个低电平信号;当按键释放时,电路断开,产生一个高电平信号。
2. 译码电路:将按键输入的信号转换为相应的数字信号,以便后续处理。
3. 显示电路:将数字信号转换为可视化的信息,如LED灯、数码管等。
三、实验器材1. 电路板2. 按键3. 电阻4. LED灯5. 数码管6. 电源7. 基本工具四、实验步骤1. 按键电路搭建(1)根据电路原理图,在电路板上焊接按键、电阻、LED灯等元器件。
(2)连接电源,确保电路板供电正常。
2. 译码电路搭建(1)根据电路原理图,在电路板上焊接译码电路所需的元器件。
(2)连接译码电路与按键电路,确保信号传输正常。
3. 显示电路搭建(1)根据电路原理图,在电路板上焊接显示电路所需的元器件。
(2)连接显示电路与译码电路,确保信号传输正常。
4. 电路调试(1)检查电路连接是否正确,确保无短路、断路等问题。
(2)按下按键,观察LED灯或数码管显示是否正常。
(3)根据需要调整电路参数,如电阻阻值、电源电压等,以达到最佳显示效果。
五、实验结果与分析1. 实验结果通过实验,成功搭建了一个按键显示电路,按下按键后,LED灯或数码管能够正确显示数字信号。
2. 结果分析(1)按键电路能够正常工作,实现电路通断。
(2)译码电路能够将按键输入转换为相应的数字信号。
(3)显示电路能够将数字信号转换为可视化的信息。
六、实验总结1. 通过本次实验,掌握了按键电路的基本原理和设计方法。
2. 提高了动手实践能力和电路分析能力。
3. 了解了按键电路在实际应用中的重要性。
06 12864LCD显示计算器键盘按键实验

目录1 课程设计概述和要求 (1)1.1 课程设计要求与任务 (2)1.2 课程设计思路 (2)1.3 课程设计需要配置的环境 (3)2 系统设计 (3)2.1 设计框图 (3)2.2 元件解析 (3)2.2.1 LCD12864芯片……………………………………………………………42.2.2 AT89C51芯片 (5)2.2.3 其他部件 (6)2.2.4 电路分析 (7)3 软件设计 (12)3.1 程序流程图 (12)3.2 程序代码 (12)4 系统的仿真与调试 (13)4.1 硬件调试 (13)4.2 软件调试 (14)4.3 软硬件调试 (14)5 总结 (14)附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图1 课程设计概述和要求1.1 课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。
设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。
重点就是各部分硬件的连接设计以及程序的编写。
本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。
将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。
1.2 课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。
3、分析一下此程序的各部分的功能,各零件的工作原理。
4、对程序进行调试,分析调试结果,观察并得出结论。
1.3 课程设计需要配置的环境1、一台主机,一台显示器2、Keil uVision3/Keil uVision4 应用程序软件3、ISIS 7 Professional 仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2 系统设计2.1.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。
12864汉字液晶显示--按键电子时钟程序(具有闪烁,移位,加一,减一功能)

//12864汉字液晶显示--按键电子时钟程序(具有闪烁,移位,加一,减一功能)#include <reg52.h>#include <intrins.h>#define uchar unsigned charvoid lcd_ini();void ascii_change(void);void delay();void wri_add(uchar com);void wri_dat(uchar com1);void shan(void);void disp();void tkey(void);sbit cs=P1^7;sbit sid=P1^6;sbit sclk=P1^5;bit flag=1;uchar dat,count,f=1;//f测试哪个单元为当前闪烁状态uchar data clock[3]={23,45,12};uchar code clockname[10]={"北京时间:"};uchar data num[6];/*******主程序*************/void main(){lcd_ini();count=10;//机器周期为1us,每次定时50ms,此变量用来控制循环次数,在下面赋值为20,共定时1秒TMOD=0x01;TL0=0XB0;TH0=0X3C;EA=1;ET0=1;IT0=1;EX0=1;TR0=1;while(1){back:ascii_change();disp();delay();if(flag==1)goto back;tkey();shan();delay();}}/****lcd初始化*******/void lcd_ini(){wri_add(0x30);delay();wri_add(0x0c);delay();wri_add(0x01);delay();wri_add(0x06);delay();}/********定时程序*************/ void timer1() interrupt 1 using 2 {TL0=0XB0;TH0=0X3C;count--;if(count==0){count=10;clock[2]++;//秒//}elsegoto out;if(clock[2]==60){clock[2]=0;clock[1]++;//分//}if(clock[1]==60){clock[1]=0;clock[0]++;}if(clock[0]==24)//时//clock[0]=0;out:_nop_();}/*******十位个位转换成ASCII码************/ void ascii_change(void){num[5]=clock[2]-(clock[2]/10)*10+0x30;num[4]=clock[2]/10+0x30;num[3]=clock[1]-(clock[1]/10)*10+0x30;num[2]=clock[1]/10+0x30;num[1]=clock[0]-(clock[0]/10)*10+0x30;num[0]=clock[0]/10+0x30;}/********廷时程序*************/void delay(){uchar i,j;for (i=250;i>0;i--)for (j=250;j>0;j--);}/*****Write address*********/void wri_add(uchar com){uchar i,j,k;cs=0;cs=1;dat=0xf8;for(i=1;i<=8;i++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}dat=com;dat=dat&0xf0;for(j=1;j<=8;j++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}dat=com;dat=_cror_(dat,4);// 此为高低四位交换dat=dat&0xf0;for(k=1;k<=8;k++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}}/*********Write data*************/ void wri_dat(uchar com1){uchar i,j,k;cs=0;cs=1;dat=0xfa;for(i=1;i<=8;i++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}dat=com1;dat=dat&0xf0;for(j=1;j<=8;j++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}dat=com1;dat=_cror_(dat,4);// 此为高低四位交换dat=dat&0xf0;for(k=1;k<=8;k++){sid=(bit)(dat&0x80);sclk=0;sclk=1;sclk=0;dat=dat<<1;}}/******display program***********/ void disp(){uchar i,k=0;wri_add(0x80);for (i=1;i<=9;i++)wri_dat(clockname[i-1]);wri_add(0x90);for (i=1;i<=6;i++) {k++;if(k==3||k==5)wri_dat(clockname[8]);//时间之间的冒号。
点阵12864液晶操作

点阵LCD12864的显示原理(不带字库)在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。
对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。
而对于中文,常用却有6000以上,于是我们的D OS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。
而剩下的低128位则留给英文字符使用,即英文的内码。
那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:图1 “A”字模图而中文的“你”在字模中的记载却如图2所示:图2 “你”字模图12864点阵型LCD简介12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。
可完成图形显示,也可以显示8×4个(16×16点阵)汉字。
管脚号管脚名称LEVER 管脚功能描述1 VSS 0 电源地2 VDD +5.0V 电源电压3 V0 - 液晶显示器驱动电压4 D/I(RS) H/L D/I=“H”,表示DB7∽DB0为显示数据D/I=“L”,表示DB7∽DB0为显示指令数据5 R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR或DR6 E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0R/W=“H”,E=“H”DDRAM数据读到DB7∽DB07 DB0 H/L 数据线8 DB1 H/L 数据线9 DB2 H/L 数据线10 DB3 H/L 数据线11 DB4 H/L 数据线12 DB5 H/L 数据线13 DB6 H/L 数据线14 DB7 H/L 数据线15 CS1 H/L H:选择芯片(右半屏)信号16 CS2 H/L H:选择芯片(左半屏)信号17 RET H/L 复位信号,低电平复位18 VOUT -10V LCD驱动负电压19 LED+ - LED背光板电源20 LED- - LED背光板电源表1:12864LCD的引脚说明在使用12864LCD前先必须了解以下功能器件才能进行编程。
12864+键盘按键控制

LCD12864_data=dat; DelayMs(5); LCD12864_E=1; DelayMs(5); LCD12864_E=0; } //------设定显示位置-----------void set_LCD12864_pos(uchar x,uchar y) { uchar pos; if(x==0) x=0x80; if(x==1) x=0x90; if(x==2) x=0x88; if(x==3) x=0x98; pos=x+y; write_12864cmd(pos); //地址 } //------------写字符串---------------void write_12864str(uchar *s) { while(*s) {
#endif
Lcd12864.h #ifndef __LCD12864_H__ #define __LCD12864_H__ #include"keyboard.h" #define uchar unsigned char #define uint unsigned int //-----端口定义-----------#define LCD12864_data P0 sbit LCD12864_RS =P2^4; sbit LCD12864_RW =P2^5; sbit LCD12864_E = P2^6; sbit LCD12864_PSB=P2^1; sbit LCD12864_RES=P2^3; //------------------------//extern void delay_1ms(uint x); extern void set_LCD12864_pos(uchar x,uchar y);//x 确定行,y 确定起始位置 extern void LCD12864_init(); extern void write_12864cmd(uchar cmd);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 课程设计概述和要求
1.1 课程设计任务与要求
设计任务:利用 AT89C51 单片机结合 12864LCD 显示器设计计算器键盘按键。 设计要求 1:本设计实现一个 12864LCD 显示 12864LCD 显示器设计计算器
1.2 课程设计目的思路
1、先把与题目有关的芯片资料找到,熟悉一下芯片资料 2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。 3、分析一下此程序的各部分的功能,各零件的工作原理。 4、对程序进行调试,分析调试结果,观察并得出结论。
1.3 课程设计需要配置的环境
1、一台主机,一台显示器 2、Keil uVision3/Keil uVision4 应用程序软件 3、ISIS 7 Professional 仿真软件 4、老师交给的仿真电路图,及案例 5、纸张,以及一些参考资料
AT89C51 芯片图如下图所示。
图 AT89C51 芯片图 (1)AT89C51 主要特性:
与 MCS-51 兼容;4K 字节可编程闪烁存储器;寿命:1000 写/擦循环; 数据保留时间:10 年;全静态工作:0Hz-24MHz;三级程序存储器锁定; 128×8 位内部 RAM;32 可编程 I/O 线;两个 16 位定时器/计数器;5 个中断 源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。 2.2.3 计算器键盘
1、RS,R/W 的配合选择决定控制界面的 4 种模式:
RS
R/W
功能说明
L
L
MPU 写指令到指令暂存器(IR)
读出忙标志(BF)及地址记数器(AC)
L
H
的状态
H
L
MPU 写入数据到数据暂存器(DR)
H
H
MPU 从数据暂存器(DR)中读出数据
2、E 信号
E 状态
执行动作
结果
高——>低
I/O 缓冲——>DR 配合/W 进行写数据或指令
4
标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存 储 器 组 合 在 单 个 芯 片 中 , ATMEL 的 AT89C51 是 一 种 高 效 微 控 制 器 , AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供 了一种灵活性高且价廉的方案。
键盘电路的设计原理 首先行列式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处,通 过按键加以连接。当按下某个键时,该交点的行线和列线接通,相应行线或列线上的的 电平发生变化,从而可以确定被按下的功能键。4 行×4 列的行列式键盘如图:
其次运用线翻转法判断有无键按下: 键盘的高 4 位用于列控制,低 4 位用于行控制,并将全部行线 P0.0~P0.3 置低电平,然后 再检查列线电平的状态。只要其中有一列电平为低,则表示右键按下,并且被按下的键位于 低电平和 4 根行线交叉的某一个按键中。 判断被按下键的位置: 依次将所有的行线 P0.4~P0.77 置为低电平,在判断 4 根列线的电平状态,当遇到某一列的 电平为低时表示此键按下。
16×2 12864 液晶显 示电路
4×4 非 编码行 列式矩 阵
2.2 元件解析
2.2.1 12864 LCD 芯片
1、主要技术参数和显示特性: 电源:VDD 3.3V~+5V(内置升压电路,无需负压); 显示内容:128 列× 64 行 显示颜色:黄绿 显示角度:6:00 钟直视 LCD 类型:STN 与 MCU 接口:8 位或 4 位并行/3 位串行 配置 LED 背光 多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等
LCD1
LGM12641BS1R
CS1 CS2 GND VCC V0 DI R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 RST -Vout
CS1 1 CS2 2
3 4 5 DI 6 RW 7 E8 D0 9 D1 10 D2 11 D3 12 D4 13 D5 14 D6 15 D7 16 RST 17 18
此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定 DDRAM 中的光标或闪烁 位置。
2.2.2 AT89C51 芯片
(1)AT89C51 简介 AT89C51 是 一 种 带 4K 字 节 闪 存 可 编 程 可 擦 除 只 读 存 储 器
(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、 高性能 CMOS8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存 可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦 除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业
3
字型产生 ROM(CGROM) 字型产生 ROM(CGROM)提供 8192 个此触发器是用于模 块屏幕显示开和关的控制。DFF=1 为开显示(DISPLAY ON),DDRAM 的内容就显示 在屏幕上,DFF=0 为关显示(DISPLAY OFF)。DFF 的状态是指令 DISPLAY ON/OFF 和 RST 信号控制的。 显示数据 RAM(DDRAM)模块内部显示数据 RAM 提供 64×2 个位元组的空间,最 多可控制 4 行 16 字(64 个字)的中文字型显示,当写入显示数据 RAM 时,可分 别显示 CGROM 与 CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型 (16*8)、CGRAM 字型及 CGROM 的中文字型,三种字型的选择,由在 DDRAM 中写入 的编码选择,在 0000H—0006H 的编码中(其代码分别是 0000、0002、0004、0006 共 4 个)将选择 CGRAM 的自定义字型,02H—7FH 的编码中将选择半角英数字的 字型,至于 A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码 形成中文字型的编码 BIG5(A140—D75F),GB(A1A0-F7FFH)。 字型产生 RAM(CGRAM) 字型产生 RAM 提供图象定义(造字)功能, 可以提供四组 16×16 点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行 定义到 CGRAM 中,便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏幕中。 地址计数器 AC 地址计数器是用来贮存 DDRAM/CGRAM 之一的地址,它可由设定指令 暂存器来改变,之后只要读取或是写入 DDRAM/CGRAM 的值时,地址计数器的值就 会自动加一,当 RS 为“0”时而 R/W 为“1”时,地址计数器的值会被读取到 DB6——DB0 中。 光标/闪烁控制电路
5
计算器键盘就是一个 4*4 的行列扫描,行对应着 A、B、C、D(和 P1.0~P1.3 相连),列 对应着 1、2、3、4(和 P1.4~P1.7 相连),读取 P1 口的值判断哪个键被按下了,执行该操 作。
2.2.4 电路分析
1、通过 AT89C51 芯片 PO 口与键盘相接,键盘中的键就是一个行列开关,该开关位于行 列的交点处,通过按下某个键,该交点的行线和列线联通,相应的行列电平发生变化,从而 可以确定按下的功能键。读取 P0 的值就可以确定按键,再由 AT89C51 芯片读取按键的值通 过 P1 口和 P2 口显示在 LCD12864 上,每显示一个按键值 LS1 发出声音。 接 P3.7 口,判断键盘是否按下,一旦键盘某个键按下,此元件会发出声音。
高
DR——>I/O 缓冲 配合 R 进行读数据或指令
低/低——>高
无动作
忙标志:BF BF 标志提供内部工作情况.BF=1 表示模块在进行内部操作,此时模块 不接受外部指令和数据.BF=0 时,模块为准备状态,随时可接受外部指令和数据. 利用 STATUS RD 指令,可以将 BF 读到 DB7 总线,从而检验模块之工作状态.
键盘按键 2.利用 AT89C51 控制整个电路来实现. 显示 12864LCD 显示器 设计计算器键盘按键,系统主要包括硬件和软件两部分。重点就 是各部分硬件的连接设计以及程序的编写。本章讲述的就是系统 硬件的设计,其中包括各模块的器件选择和电路设计。将计算器 按键上的信息传送至 AT89C51 主芯片之中,利用 P2 端口使之显 示于 12864LCD 液晶显示屏上。
目录
1 课程设计概述和要求 ……………………………………………………………………1 1.1 课程设计要求与任务 ……………………………………………………………2 1.2 课程设计思路 ………………………………………………………………………2 1.3 课程设计需要配置的环境 ………………………………………………………3
LS1
SOUNDER
2、时钟电路由 AT89S51 得 18、19 引脚的时钟端(XTL1 及 ATAL 2)以及 12MHZ 晶振、47pF 的电容 C1、C2 组成,采用片内振荡方式。其时间周期为 1/12us,机器周期为 1s。单片机的 外部晶振电路如图 3 AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别 是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一 起构成振荡器。振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向 放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号 的脉宽无任何要求,但必须保证脉冲的高低电平。
3 软件设计 …………………………………………………………………………………12 3.1 程序流程图………………………………………………………………………12 3.2 程序代码 …………………………………………………………………………12