8051单片机接口技术论文
随着现代科学技术的快速发展与普及,单片机知识也已普及进入工科相关专业课程体系。小编为大家整理的8051单片机接口技术论文,希望你们喜欢。
8051单片机接口技术论文篇一
8051单片机指令的快速记忆
摘 要:目前,我国单片机教学多以INTEL公司的8051单片机为教学对象。8051单片机指令系统涉及汇编指令多达111条,指令的学习与掌握是影响学生学习该课程的一大障碍。Intel 8051单片机汇编语言指令的理解和记忆是学习单片机一个难点。本文提供了学习记忆的一些技巧。
关键词:汇编语言指令;巧记
中图分类号:TN911.2 文献标识码:A
随着现代科学技术的快速发展与普及,单片机知识也已普及进入工科相关专业课程体系。目前,我国单片机教学多以INTEL公司的8051单片机为教学对象。8051单片机指令系统涉及汇编指令多达111条,指令的学习与掌握是影响学生学习该课程的一大障碍。表现在:一是指令众多,学生感到难以记忆;二是利用指令编写程序时,不知如何书写及表达应用;三是指令出现错误,不能判别指令错误原因。其中,指令的理解与掌握是解决这些问题的基本。笔者通过多年的教学实践,力求找到一条快速掌握指令的捷径,希望给单片机初学者带来帮助。
8051单片机指令系统按功能把汇编指令划分为数据传送、算术运算、控制转移、逻辑运算和位处理指令五个大类。指令的基本格式为:
【标号:】 操作码 操作数;注释
指令的学习首先是操作码功能识别与助记符的记忆,其次是操作数的表达。操作数表达相对繁杂,这也是初学时感到指令繁杂的一个主要原因。下面就从这两方面做一简要探讨。
1 操作码的学习
操作码的学习,可按功能类型,结合助记符相关英语单词含义解析,让学生快速,深刻理解操作码助记符,以促进学生理解和掌握指令功能。英语在这里仅是场景辅助,帮助学生了解操作码助记符的来源及含义。理解后,学生按“操作码功能&操作码助记符”记忆、表达方式日常练习使用即可。如操作码DJNZ,表达为“减1不为零转移指令DJNZ”,操作码INC,表达为“加1指令INC”。
2 操作数的学习
操作数的学习,也有记忆方法。先看下表:
操作数的出现主要有两种类型。类型一,该类指令,操作码不变,而操作数组合方式灵活多样,形成多条指令。如片内字节传送指令根据操作数不同组合有15条指令。加减运算有24条指令。与、或、非逻辑操作有18条指令等,这些可按“#AdR@”顺序记忆操作数,再辅以特定规律就可应对许多指令记忆。这类指令重点在于操作数的格式掌握上。类型二:该类指令中操作数较简单,记忆相对简单。如条件转移指令JZ rel。这类指令的记忆主要在于操作码功能理解。
2.1 对于操作数类型一,因篇幅所限,下面以片内数据传送指令示例说明。
指令格式: MOV 目的操作数,源操作数
操作码助记符英文释义:助记符原型单词就是MOV,其意为移动,指令功能就是把一个数从一个存储单元移动到另一个存储单元。指令中是从源操作数移向目的操作数存储单元。
片内数据为字节传送时,源、目的操作数有15种组合方式,即有15条字节传送指令。
记忆窍门: 操作数中,两个R不能见面;
两操作数,自己不能跟自己见面(自我传送,无意义);
立即数不能作为目的操作数(不能给数据赋值)
如:MOV #30H, R3 ;给数据赋值,非法
MOV R5, @R0 ;两个R见面,非法
MOV 30H, 30H ;自我传送,非法
字节传送MOV指令的速记默写示例:
默记操作数“#AdR@”。由于不能数据赋值,所以只能分别以(累加器)A、d(寄存器direct)、R(工作寄存器Rn)和@(间质寻址◎Ri)分别为第一操作数,即目的操作数。源操作数仍按顺序排列组合依次很快就可写出片内数据传送的15条指令。
2.2 对于操作数类型二,下面以一些指令为例简说操作码识记如下:
左移指令RL:第一个字母取rotate 首字母表示进行循环,第二个字母取left首字母,即为左循环,第二个字母如取right首字母就组合为右循环指令RR,位单元CY内容也可作为第8位,即最高位参与循环,就有了带进位左循环RLC和带进位右循环RRC指令。循环操作只能对累加器A内容进行操作。所以指令很简单,只有相应4条循环移位指令。
逻辑运算指令:ANL,前两个字母表示逻辑操作方式为and即“与”操作,第三个字母取“逻辑”的英文单词logic首字母,表示是逻辑运算功能;“或”英文单词OR结合字母L就构成逻辑或运算指令操作码ORL助记符。exclusive or是异或的意思,各取一个字母X,R组合表示异或,加上字母L形成异或逻辑运算符号XRL。操作数组合除仿算术运算指令操作数组合技巧以外,适度完善不规则组合即可。
XCH:exchange 交换。该指令第一操作数必须是累加器A,可利用巧记操作数序列列写第二操作数。显然序列中#,即立即数不能赋值,所以不能出现。而半字节交换指令第二操作数,序列中只有◎Ri可以分割成◎字符和Ri两字符,其余不能分割。因此操作数据此可记住半字节交换指令只有一条,且为XCHD A,@Ri。XCHD操作码末尾字母“D”即divde,此处为分割的意思。
JZ: J为英文单词JUMP首字母,意为跳,表明实现跳跳转功能。跳的条件由操作码字母J后条件决定,满足条件跳转,否则顺序执行下一条指令,既不跳转。Z:zero,中文含义“零”,默认对累加器A进行“判零”。
CJNE:C是英文单词compare(比较)首字母;J:跳转;字母J后是跳转条件:两操作数比较满足Not equal,即不想等时,跳转。
DJNZ:D是英文单词DECREASE(减少)首字母;J后是跳转条件,操作数减1后,结果NOT ZERO即不为零就执行跳转,否则顺序往下执行。
当然有少数没有明显记忆规律的指令仍需死记,其实动些脑子,也许你会发现适合自己记忆的窍门。总之,指令学习的有效方法就是多用巧记。本文旨在抛砖引玉,给出一些指令学习技巧与思路,文中不到之处还请理解。
参考文献
[1]杨文龙.单片机原理及应用[M].西安:西安电子科技大学出版,2006.
[2]章鸿猷.英汉计算机词汇[M].北京:清华大学出版社,1997.
8051单片机接口技术论文篇二
8051单片机图形LCD驱动接口设计
摘要:液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,在多年来被单片机控制的智能仪器、仪表和电子 产品中广泛使用,从其LCD显示的内容可以分为段位式LCD、点阵式LCD、和字符LCD。本文从8086单片机图形模式的LCD的显示屏幕驱动出发,详细描述了LCD的显示字符、数字、和显示图形、曲线以及各种中英文、外文等字体,而且可以实现整个显示屏的滚动、翻屏幕等功能的实现设计过程。
关键词:液晶显示器;驱动;图形
中图分类号: TN873+.93 文献标识码: A 文章编号:
一、液晶屏与控制器的选择
要对液晶显示器进行控制,需要有对应的LCD控制器的控制权限与控制存储器的操作指令,通过LCD的存储空间来存储对显示器的操作命令和显示字符来直接指挥显示器。本文中,采用的单片机主要是精电蓬远公司出品的液晶屏MGLS-12864。MGLS-12864是香港信利公司生产的点阵图形式液晶显示模块,点阵数为64行x128列,每屏可以显示4行×8个汉字(每汉字16×16点阵)。该显示模块有2片HD61202作为列驱动器和1片HD61203作为行驱动器,可显示64K的点阵图形。其主要特点是能与80系列微处理器直接接口,可以进行图形、字符及图形和字符混合3种方式显示,并具有64K的内部存储器。显示屏共分8页,显示数据格式及显示屏的页、行和列的分布情况如表1所示。
使用液晶显示器进行显示要有相应的LCD控制器来对其控制,以及一定的存储空间来存储输入的命令和显示的字符。本文中,液晶屏选用的是精电蓬远公司出品的液晶屏MGLS-12864。
二、MGLS-12864屏幕概述
1、MGLS-12864概述
液晶显示器按其功能可分为笔段式和点矩阵式两种。后者又可以分成字符点阵式和图形点阵式,图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。在中规模图形式液晶显示模块中,内置8051控制器的液晶显示模块是目前较为常用的一种。MGLS-12864是点阵式LCD,液晶模块的工作电压是5V±0.5V,内置两片HD61202和一片HD61203。其中HD61202是列驱动器,有64路列驱动输出,64×64位显示RAM,每位数据代表液晶屏上每个点的明暗状态;HD61203作为行驱动器。控制器选用Intel公司MCS-51系列的8051芯片。该芯片价格低廉,指令系统功能强大,执行速度快,实用性强,能够符合系统要求。
2、MGLS-12864的特点
(1)MGLS-12864是点阵式液晶图形显示控制器,它能直接与80系列的8位微处理器接口;
(2)MGLS-12864的字符字体由硬件设置,其字体有4种:5X8、6X8、7X8、8X8;
(3)MGLS-12864的占空比可从1/16到1/128;
(4)MGLS-12864可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;
(5)MGLS-12864具有内部字符发生器CGROM,共有128个字符,MGLS-12864可管理64K显示缓冲区及字符发生器CGRAM。并允许MPU随时访问显示缓冲区,甚至可以进行位操作。
三、系统软件设计
实现功能可以看出,本设计中需要用到西文显示、汉字显示、绘图等子程序。首先,要实现西文/汉字的显示,需要三个子程序:创建字模,写入字模,显示西文或汉字。MGLS-12864实现西文/汉字的显示有三种方式:文本显示,图形显示和文本属性显示。由于绘图只能使用图形显示,因此在本设计中采用图形显示方法来实现西文/汉字的显示。其次,要实现绘图,需要由绘点子程序实现。绘图功能则是通过连续使用绘点子程序实现的。最后,还需要用到初始化子程序、清屏子程序。同时状态字的检测和指令的写入、数据的自动写、数据的一次写等子程序也是必不可少的。由于每进行一次操作都需要检测状态字,所以可以把状态字检测程序做成通用程序方便调用。初始化程序和清屏幕程序主要完成MGLS-12864的初始化和屏幕清除功能。西文/汉字的显示首先需要创建字模,然后将字模写入MGLS-12864中,最后再在屏幕上显示出来。
3.1 引脚功能
(1)D0―D7:MGLS-12864与MPU接口的数据总线,三态;
(2)/RD,/WR:读、写选通信号,低电平有效,输入信号;
(3)/CE:MGLS-12864的片选信号,低电平有效;
(4)C/D:通道选择信号,1为指令通道,0为数据通道;
(5)/RESET,/HALT:/RESET为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;/HALT具有/RESET的基本功能,还将种植内部时钟振荡器的工作;
(6)DUAL,SDSEL:DUAL=1为单屏结构,DUAL=0为双屏结构;SDSEL=0为一位串行数据传输方式,SDSEL=1为二位并行数据传输方式;
(7)MD2,MD3:设置显示窗口长度,从而确定了列数据传输个数的最大值,起组
3.2 控制器命令字格式
控制驱动器的指令系统比较简单,将命令字及其功能特征编辑成速查表,供编程时查对,控制器命令字格式如表1所示
有关命令格式的相关说明:显示开/关指令:当DB0=1时LCD显示RAM中的内容,DB0=0时无显示。
读状态指令:BUSY:1-内部在工作0-正常状态;ON/OFF:1-显示关闭0-显示打开;REST:1-复位状态0-正常状态
3.3 驱动子程序设计
#include<8051reg.h>
#defineRWP2.4 //定义P2.4为读写引脚//
#defineDIP2.7 //定义P2.7为命令,数据引脚//
delay(intd)//延迟子程序//
{
inti,j;
for(i=0;i for(j=0;j<20;j++);
}
voidLCD_init() //显示器初始化//
{
RS=0;RW=0;P0=0X3c; //定义双行显示//
P0=0X0e;//显示光标//
P0=0X01;//清除命令/
}
voidLCD_command(unsignedcharc)//写命令到显示器//
{
P0=c;
RW=0;
DI=0;
}
voidLCD_print(unsignedchart)//写数据到显示器/
{
P0=t;
RW=0;
DI=1;
}
四、小结
利用自带字库的中文液晶图形点阵模块串口接口方式的优势比并口明显,节省I/O了口,不占用ROM,接口电路简单,解决了显示汉字字符数量有限的瓶颈问题和小体积非总线结构单片机的汉字显示问题。笔者相信今后其使用率将逐步提高,对照本文的串并口两种方式,希望对广大同行在使用液晶图形点阵模块时有所启发和帮助。
参考文献:
[1]、北京精电蓬远显示技术有限公司《内藏MGLS-12864液晶显示模块使用手册.第二版》.北京:北京精电蓬远显示技术有限公司.1999年
[2] 、郭强《液晶显示应用技术》.北京:电子工业出版社.2002.
[3] 、曾一江《单片微机原理与接口技术》.北京:科学出版社.2006.
[4] 、蔡美琴《MCS-51系列单片机系统及其应用(第2版)》.北京:高等教育出版社.2004.
8051单片机接口技术论文的评论条评论