单片机电子秤重量检测与显示设计说明_第1页
单片机电子秤重量检测与显示设计说明_第2页
单片机电子秤重量检测与显示设计说明_第3页
单片机电子秤重量检测与显示设计说明_第4页
单片机电子秤重量检测与显示设计说明_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.PAGE.微控制器应用系统综合设计的目的意义1.1设计目的通过课程设计进一步锻炼同学们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。本实验是设计单片机重量检测与显示电路,对5种以上不同单价的商品进行键盘参数设置,称量,计价和显示。这个课题与我们现实生活联系密切,具有很大的实际用途。做好本实验对我们今后学习和生活具有重要意义。1.2课程在教学计划中的地位和作用《微控制器应用系统综合设计》课程是测控技术专业本科生必修的一门技术基础课程。通过该课程的学习使学生对单片机有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。为了使我们微机应用课程设计目标更明确,要求更具体,学生收获更大,我们特编写课程设计任务书,学生可根据本人的爱好任选其中一个课题,要求独立完成课题,写出课程设计说明书,设计出电路原理图,说明工作原理,画出电路板图,编写程序及程序流程图。希望同学认真阅读本任务书,认真查阅资料与上机调试,圆满完成课程设计。第二章电子计价称软硬件设计任务2.1设计内容及要求设计单片机称重测量检测,处理与显示电路,对五种不同单价的商品进行键盘参数设置,称量,计价和显示。由A/D0809把输入的0—5V的电压转换,当电压为5V时,对应的重量为500克,进行数值转换,并在LCD液晶显示器上显示商品的克数,程序设置了五种不同单价的商品,由键盘输入0—4显示不同商品的单价,并显示总的价钱,显示三位数。2.2课程设计的要求1.利用现有的硬件电路,构成单片机称重检测,处理与显示系统。2.编写程序,实现称量和计价显示的功能。3.设计出原理图,说明工作原理,画出程序流程图。第三章总体设计方案设计思想实验需要设计一个系统可以对5种以上不同的商品进行键盘参数设置,称量,计价和显示。可以把系统分为以下几个模块,分别进行编写程序,调试。〔18279可编程键盘,输入0—4时,通过比较键值,使程序跳到不同的子程序,在子程序中进行A/D采样,设定单价,经过数值转换与乘法程序,将重量和价钱转换成十进制数,调用显示程序。执行完返回判断有无键按下。〔2A/D采样部分,给A/D0通道输入一个05V的电压,将转换成0—FF输出,对应0—500G,把A/D采样值存入内部寄存器51H中,经过数值转换成十进制数,调用LCD显示程序显示。当质量大于500克时,转到报警程序。〔3LCD液晶显示,分三个区分别显示单价,重量,价钱,并且都分为三位显示。〔4实验中还需要用到双字节与单字节乘法及十六进制转十进制报警等子程序。P0.0-p0.78031/RD/WRRESET373138IN0D0—D7ADC0809/RD/WRCLK0—5VT474LS02D0—D78279/RDSL2/WRSL1RESETSL074LS138D0-D7C/D/CELCD/RD/WR/RESETFS图3.1硬件系统结构图第四章硬件设计4.1硬件设计概要本次设计主要用到的芯片有8088、ADC0809模数转换器、可编程键盘显示8279、LCD液晶显示共同完成这个课题。A/D实现数据的采集和转换,可编程键盘显示8279实现键盘输入编号显示不同商品的单价,LCD液晶显示器显示单价,重量以及三位价钱。8088实现各个芯片之间的连接。4.2所用到的芯片及其各自功能说明芯片列表AT89C528位单片机ADC0809模数转换器可编程键盘显示8279LCD液晶器AT89C528位单片机AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。ADC0809的功能简介ADC0809是8位逐次逼近式单片A/D转换芯片,可对8路0~5V的输入模拟电压信号分时进行转换。它内部包括8路模拟开关,以及地址锁存译码器,有三条地址输入线。该芯片还有便于和微机数据总线相连的三台输出锁存器。ADC0809的内部结构为:ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、三态输出锁存器等其他一些电路组成。其内部原理图如下:模拟量输入A模拟量输入ABBN位D/AN位N位D/AN位寄存器启动位置控制逻辑启动位置控制逻辑DONEDONE图4.1ADC0809芯片管脚功能如下:IN0~IN7:8路模拟量输入通道。

ADDA~ADDC:地址线用于选择模拟量输入通道。

ALE:地址锁存允许信号。

START:转换启动信。D0~D7:数据输线

。OE:输出允许信号,低电平允许转换结果输出。EOC:A/D转换结束信号,当转换结束时,此端口输出一个高电平。

CLOCK:时钟信号输入引脚,通常使用500KHz。

EOC:转换结束信号,为0代表正在转换,1代表转换结束。REF〔-、REF〔+:基准电压。

Vcc:+5V电压。GND:接地。ADC0809的管脚图如下:图4.2可编程键盘显示82798279是可编程的键盘,显示接口芯片.它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛.8279内部有键盘FIFO<先进先出堆栈>/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器.该芯片能自动消抖并具有双键锁定保护功能.数据线DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令.

<2>地址线

/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址.

<3>控制线

CLK:8279的时钟输入线.

IRQ:中断请求输出线,高电平有效.

/RD,/WR:读,写输入控制线.

SL0SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线.

RL0RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线.

SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的

状态,该位状态控制键盘上/下档功能.在传感器方式和选通方式中,该引脚无用.

CNTL/S:控制/选通输入线,高电平有效.键盘方式时,键盘数据最高位<D7>的信号输

入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0RL7的数

据存入FIFORAM中.

OUTA0OUTA3:通常作为显示信号的高4位输出线.

OUTB0OUTB3:通常作为显示信号的低4位输出线.

/BD:显示熄灭输出线,低电平有效.当/BD=0时将显示全熄灭.图4.38279引脚及引线功能4.2.5LCD液晶器T6963C液晶显示控制器多用于中小规模的液晶显示器件,常被装配在图形液晶显示模块上,以内藏控制器型图形液晶显示模块的形式出现。一、T6963C的特点<1>T6963C是点阵式液晶图形显示控制器,它能直接与80系列的8位微处理器接口;<2>T6963C的字符字体可由硬件或软件设置,其字体有4种:5×8、6×8、7×8、8×8;<3>T6963C的占空比可从1/16到1/128;<4>T6963C可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;<5>T6963C具有内部字符发生器CGROM,共有128个字符,T6963C可管理64K显示缓冲区及字符发生器CGRAM。并允许MPU随时访问显示缓冲区,甚至可以进行位操作。二、T6963C的引脚说明及其功能T6963C的QFP封装共有67个引脚<见图三>,各引脚说明如下:<1>D0--D7:T6963C与MPU接口的数据总线,三态;<2>/RD,/WR:读、写选通信号,低电平有效,输入信号;<3>/CE:T6963C的片选信号,低电平有效;<4>C/D:通道选择信号,1为指令通道,0为数据通道;<5>/RESET,/HALT:/RESET为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;/HALT具有/RESET的基本功能,还将中止内部时钟振荡器的工作;以上引脚为T6963C与MPU接口的引脚。图4.4T6963C管脚外形图<6>DUAL,SDSEL:DUAL=1为单屏结构,DUAL=0为双屏结构;SDSEL=0为一位串行数据传输方式,SDSEL=1为二位并行数据传输方式;<7>MD2,MD3:设置显示窗口长度,从而确定了列数据传输个数的最大值,其组合逻辑关系如下:表4.1MD31100MD21010每行字符数32406480当DUAL=0时,以上设置中的字符行和总行数增至原来的2倍,其它都不变,这种情况下的液晶屏结构为双屏结构;FS1,FS0:显示字符的字体选择表4.2FS11100FS01010字体5×86×87×88×8<10>XI,XO:振荡时钟引脚;ad0-ad15:输出信号,显示缓冲区16位地址总线;d0-d7:三态,显示缓冲区8位数据总线;<13> r/w:输出,显示缓冲区读、写控制信号;<14> /ce:输出,显示缓冲区片选信号,低电平有效;<15> /ce0,/ce1:输出,DUAL=1时的存储器片选信号;T1,T2,CH,CH2:用来检测T6963C工作使用情况,T1,T2作为测试信号输入端,CH,CH2作为输出端;HOD,HSCP,ED,LP,CDATA,FR为T6963C驱动部信号连线AD0809接线:1.把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔<0-5V>。2.0809的CLK插孔与分频输出端T4相连。3.把VREF端接到为+5V。4.连好74LS025.将A/D区D0-D7用排线与BUS1区XD0-XD7相连。扩展键盘接线:1.将DVCC实验系统上J8插座与键盘显示板用扁平电缆相连。2.将KEY区D0—D7用8芯排线连到BUS2区XD0—XD7上。3.将KEY区WR、RD、ALE分别连到BUS3区XWR、XRD、ALE上。4.KEY区A0连到BUS1区XA0上。5.KEY区RST连到MP区SP上。6.KEY区KCS连到SELET区的Y3上。LCD液晶显示器连线:1.液晶板C/D连主机XA0,液晶板/CS连主机Y02.液晶板D0D7连主机XD0XD73.液晶板/RESET连主机/RST,液晶板/WR连主机XWR,液晶板/RD连主机XRD4.液晶板FS接地。第五章软件设计5.1流程图及其说明开始开始8279初始化显示器显示P有键按下吗?计算键值散转商品2商品3商品4商品5商品1A/D采样A/D采样A/D采样A/D采样A/D采样调乘法及转换子程序调显示子程序调乘法及转换子程序调乘法及转换子程序调乘法及转换子程序调乘法及转换子程序调显示子程序调显示子程序调显示子程序调显示子程序,YN图5.1主程序流程图开始A/D采样值转化为相应的十六进制数开始A/D采样值转化为相应的十六进制数转化为十进制数转化为十进制数调LCD显示子程序乘单价,调乘法子程序调LCD显示子程序返回设置显示指针地址,写控制字设置显示指针地址,写控制字设置自动写方式,分区,字体,字数一行显示完,改变指针地址指向下一行全部显示完,等待下一次设置调清屏子程序开始图5.3LCD液晶显示子程序5.2源程序及其说明ORG0000H DAT1EQU30H;第一参数存放地址DAT2EQU31H;第二参数存放地址/数据存放地址COMEQU32H;指令代码存放地址C_ADDEQU8001H;指令通道地址<片选Y1端口地址8000H开始D_ADDEQU8000H;数据通道地址S_ADD_HEQU33H;LCD显示指针地址高位S_ADD_LEQU34H;LCD显示指针地址低位S_ADD_HFEQU35H;LCD显示指针地址高位备份S_ADD_LFEQU36H;LCD显示指针地址低位备份SEL_FONTEQU37H;LCD字体选者,16X16则为#16H,8X16则为#8HWORD_NUMEQU38H;已经显示的字数ATTREQU39H;字符属性码〔低四位有效CODEDEQU40H;字符代码CGR_NUMEQU41H;CGRAM显示程序显示的字数HA7S: MOVSP,#60HMOVDPTR,#0B001HMOVA,#00HMOVXDPTR,AMOVA,#32HMOVXDPTR,AMOVA,#0DFHMOVXDPTR,AHA7S1MOVXA,DPTRACC.7,HA7S1MOVDPTR,#0B000HMOVA,#0C8HMOVXDPTR,AINCDPTRMOVA,#80HMOVXDPTR,AHA7S2:MOV42H,#80HMOV43H,#40HHA7S3:MOVDPTR,#0B001HMOVXA,DPTRANLA,#07HCJNEA,#00H,HA7S4AJMPHA7S3HA7S4:MOVDPTR,#0B000HMOVXA,DPTRMOVB,AMOVR1,#00HMOVDPTR,#KEYTABHA7S5:MOVA,#00HMOVCA,A+DPTRCJNEA,B,HA7S6AJMPHA7SAHA7S6:INCDPTRINCR1MOVA,R1JNBACC.2,HA7S5AJMPHA7S2HA7SA:CJNEA,#0C1H,L1MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP0L1:CJNEA,#0C8H,L2MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP1L2:CJNEA,#0C9H,L3MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP2L3:CJNEA,#0D0H,L4MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP3L4:CJNEA,#0D8H,L5MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP4L5:LJMPHA7SKEYTAB:DB0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9HDB0DAH,0C3H,0CBH,0D2H,0D3H,0DBHCDATA: DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38HDB6CH,1AH,68H,0E8HLOOP0: MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S:DJNZR7,H55SMOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#0CHPP0:MOVR4,#12HLCALLDDMULLCALLCONT0LJMPMAIN;显示LJMPXIAN1LOOP1: MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S1:DJNZR7,H55S1MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#9FHPP1:MOVR4,#0FHLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP2:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S2:DJNZR7,H55S2MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAIN MOVR5,#4AHPP2:MOVR4,#0CHLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP3:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S3:DJNZR7,H55S3MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#0BHPP3:MOVR4,#08HLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP4:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S4:DJNZR7,H55S4MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#99HPP4:MOVR4,#05HLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1XIAN1:MOVR6,#80HDISPC1:MOVA,r6MOVDPTR,#0B001HMOVXDPTR,AMOVA,R5MOVDPTR,#0B000HMOVXDPTR,AMOVR2,#20HLCALLDELAY4MOVA,#0FFH MOVXDPTR,A;关显示INCR6LJMPha7s2dELAY4: PUSH02HDELAY5:PUSH02HDELAY6:PUSH02HDELAY7:DJNZR2,DELAY7POP02HDJNZR2,DELAY6POP02HDJNZR2,DELAY5POP02HDJNZR2,DELAY4RET;/////////////128X64液晶显示程序//////////////////MAIN:MOVSP,#60HLCALLINT_LCD;液晶初始化MOVWORD_NUM,#00H;实现字数清零LCALLCLEAR;清屏;显示方式一;在第一区显示,128X64液晶显示模块可人为分为四个区,每个区大小为128X16;区一显示完毕;显示方式二;在区二显示,以单个字循环方式显示"测控技术实验室",16X16字体,一般用于汉字显示MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用16X16字体MOVDPTR,#TAB0;danjiaMOVR7,#02H;显示字的个数ER:LCALLSHOW_A_WORDDJNZR7,ERMOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08H;采用8X16字体MOVDPTR,#TAB03;显示0SSS2:LCALLSHOW_A_WORDMOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#07H;低位MOVSEL_FONT,#08H;采用8X16字体MOVDPTR,#TAB3SSS1:LCALLSHOW_A_WORD;显示小数点MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,4FH;显示的字从4F中读取ANLA,#0F0H;取4F高位SWAPAACALLBIAOER2:LCALLSHOW_A_WORD;显示千位MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#09H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,4FH;显示的字从4F中读取ANLA,#0FH;取4F低位ACALLBIAOER1:LCALLSHOW_A_WORDMOVS_ADD_H,#01H;设置第一个字的显示起始地址高位MOVS_ADD_L,#0AH;低位MOVSEL_FONT,#08H;采用8X16字体MOVDPTR,#TAB05;Y/GMOVR7,#03H;显示字的个数ER3:LCALLSHOW_A_WORDDJNZR7,ER3;显示方式三;在区三显示,以单个字循环方式显示"GOOD",8X16字体,一般用于数字和字母的显示MOVS_ADD_H,#02H;设置一个字的显示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用8X16字体MOVDPTR,#TAB01;zhongliangMOVR7,#02H;显示字的个数SAN:LCALLSHOW_A_WORDDJNZR7,SANMOVS_ADD_H,#02H;设置第一个字的显示起始地址高位MOVS_ADD_L,#0BH;低位MOVSEL_FONT,#08H;采用8X16字体MOVDPTR,#TAB;显示字的个数:gSAN1:LCALLSHOW_A_WORDMOVS_ADD_H,#02H;设置第一个字的显示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08HMOVA,46H;显示的字从46中读取ANLA,#0FH;取46低位;SWAPAACALLBIAOSAN2:LCALLSHOW_A_WORD;显示MOVS_ADD_H,#02H;设置第一个字的显示起始地址高位MOVS_ADD_L,#07H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,47;显示的字从47中读取ANLA,#0F0H;取47低位SWAPAACALLBIAOSAN3:LCALLSHOW_A_WORD;显示MOVS_ADD_H,#02H;设置第一个字的显示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,47H;显示的字从47中读取ANLA,#0FH;取47高位ACALLBIAOSAN5:LCALLSHOW_A_WORD;显示;显示方式四MOVS_ADD_H,#03H;设置第一个字的显示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用16X16字体MOVDPTR,#TAB02;jiaqianMOVR7,#02H;显示字的个数ER4:LCALLSHOW_A_WORDDJNZR7,ER4MOVS_ADD_H,#03H;设置第一个字的显示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,4CH;显示的字从4C中读取ANLA,#0F0H;取4C高位SWAPAACALLBIAOSAN7:LCALLSHOW_A_WORD;显示千位MOVS_ADD_H,#03HMOVS_ADD_L,#07HMOVSEL_FONT,#08HMOVA,4CH;显示的字从4C中读取ANLA,#0FH;取4C低位ACALLBIAOSAN8:LCALLSHOW_A_WORDMOVS_ADD_H,#03H;设置第一个字的显示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字体MOVDPTR,#TAB3SSS:LCALLSHOW_A_WORD显示小数点MOVS_ADD_H,#03H;设置第一个字的显示起始地址高位MOVS_ADD_L,#09H;低位MOVSEL_FONT,#08H;采用8X16字体MOVA,4DH;显示的字从4D中读取ANLA,#0F0H;取4D高位SWAPAACALLBIAOSAN6:LCALLSHOW_A_WORDMOVS_ADD_H,#03H;设置第一个字的显示起始地址高位MOVS_ADD_L,#0AH;低位MOVSEL_FONT,#16H;采用16X16字体MOVDPTR,#TAB04;元MOVR7,#01H;显示字的个数ER9:LCALLSHOW_A_WORDDJNZR7,ER9LJMPHA7S;延时子程序DELAY:MOVR7,#01HDY1:MOVR2,#0FHDY11:DJNZR2,DY11DJNZR7,DY1RET;清屏子程序CLEAR:MOVDAT1,#00H;GRAPHICHOMEADDRESSMOVDAT2,#00HMOVCOM,#24HLCALLPR1;设置起始地址指针MOVCOM,#0B0H;设置自动写方式LCALLPR12MOVR0,#00H;分四个区清屏,每个区256个字节MOVR1,#04H;有四个区CLEARG:CLRAMOVDPTR,#8000HMOVXDPTR,ADJNZR0,CLEARG;清256个字节DJNZR1,CLEARGMOVCOM,#0B2H;设置自动写结束指令LCALLPR12MOVDAT1,#00H;TEXTHOMEADDRESSMOVDAT2,#10HMOVCOM,#24HLCALLPR1MOVCOM,#0B0H;设置自动写方式LCALLPR12MOVR0,#80H;16COLUMNS*8LINES=128=80HCLEART:MOVA,#00HMOVDPTR,#8000HMOVXDPTR,ADJNZR0,CLEART;MOVCOM,#0B2H;设置自动写结束指令LCALLPR12RET;显示一个16X16或8X16的字体子程序;要求-调用该程序前要将被显示的字的字码表地址送DPTR,显示指针;地址送S_ADD_H显示地址高位,S_ADD_L显示地址低位;SEL_FONT显示字体控制,#16H为16X16,#8H为8X16;[S_ADD_HF显示地址高位备份,S_ADD_LF显示地址低位备份];[WORD_NUM已经显示的字数]SHOW_A_WORD:;16x16或8x16显示程序SETB0D4HPUSHDPH;;开始循环的第一个字符的地址设置PUSHDPLMOVDAT1,S_ADD_L;重新设置显示地址指针MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;POPDPLPOPDPH;开始循环的第一个字符的地址设置结束MOVR0,#10H;行控制MOVS_ADD_HF,S_ADD_H;高位备份MOVS_ADD_LF,S_ADD_L;低位备份PUSHDPH;存字库指针PUSHDPLMOVCOM,#0B0H;设置自动写方式LCALLPR12;POPDPL;取出字库指针POPDPHLINE_STA:CLRAMOVCA,A+DPTR;A暂存左半行字码INCDPTR;字码表指针加1,指向下一个字节PUSHDPH;保存字库指针PUSHDPLMOVDPTR,#8000HMOVXDPTR,A;写入左半行字码MOVA,SEL_FONTCJNEA,#16H,FONT_8POPDPL;取出字库指针POPDPHCLRAMOVCA,A+DPTR;A暂存右半行字码INCDPTR;字码表指针加1,指向下一个字节PUSHDPH;保存字码表指针PUSHDPLMOVDPTR,#8000HMOVXDPTR,A;写入右半行字码,写完一个字的一行<1/16>FONT_8:MOVA,S_ADD_L;改变显示RAM低位地址到下一行ADDA,#10HMOVS_ADD_L,AMOVA,S_ADD_H;低位满FFH,则显示RAM高位地址加1ADDCA,#0HMOVS_ADD_H,AMOVCOM,#0B2H;设置自动写结束指令LCALLPR12;MOVDAT1,S_ADD_L;重新设置显示地址指针MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;MOVCOM,#0B0H;设置自动写方式LCALLPR12;POPDPL;取出字库指针POPDPHDJNZR0,LINE_STA;没有完成一个字〔16行,则继续INCWORD_NUM;已经显示的字数加一EE:MOVA,S_ADD_LF;调整显示RAM区下一个字的起始地址MOVR0,SEL_FONTCJNER0,#16H,DDADDA,#2H;一个字为两个字节宽〔16x16SJMPASDFDD:ADDA,#1H;一个字为一个字节宽〔8x16ASDF:MOVS_ADD_LF,AMOVA,S_ADD_HFADDCA,#0HMOVS_ADD_HF,AN_ENTER:MOVS_ADD_L,S_ADD_LFMOVS_ADD_H,S_ADD_HFPUSHDPHPUSHDPLMOVCOM,#0B2H;设置自动写结束指令LCALLPR12;MOVDAT1,S_ADD_L;重新设置显示地址指针MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;POPDPLPOPDPHCLR0D4HRET;液晶模块初始化子程序INT_LCD:MOVDAT1,#00H;设置图形显示区域首地址MOVDAT2,#00H;或为文本属性区域首地址MOVCOM,#42H;[0000H]LCALLPR1MOVDAT1,#00H;设置文本显示区域首地址MOVDAT2,#10H;[1000H]MOVCOM,#40HLCALLPR1MOVDAT1,#10H;设置图形显示区域宽度MOVDAT2,#00H;或为文本属性区域宽度MOVCOM,#43H;即一行显示所占字节数LCALLPR1MOVDAT1,#10H;设置文本显示区域宽度MOVDAT2,#00H;即一行显示所占字节数MOVCOM,#41HLCALLPR1MOVCOM,#0A7H;光标形状设置LCALLPR12MOVCOM,#80H;显示方式设置,逻辑"或"合成,使用内部字符LCALLPR12MOVCOM,#9CH;显示开关设置,文本开,图形开,光标闪烁及显示均打开LCALLPR12RET;读状态字子程序R_ST:MOVDPTR,#C_ADD;设置指令通道地址MOVXA,DPTRRET;判断STA1,STA0子程序,在指令和数据的读写之前这两个标志位必须同时为1ST01:LCALLR_STJNBACC.0,ST01JNBACC.1,ST01RET;判断STA2〔数据自动读状态子程序,在连续读过程中每读一次之前都要确认STA2=1ST2:LCALLR_STJNBACC.2,ST2RET;判断STA3〔数据自动写状态子程序ST3:LCALLR_STJNBACC.3,ST3RET;写指令和写数据子程序PR1:LCALLST01;双字节参数指令写入入口MOVA,DAT1;取第一参数LCALLPR13;写入参数PR11:LCALLST01;1字节参数指令写入入口MOVA,DAT2;取第二参数LCALLPR13;写入参数PR12:LCALLST01;无参数指令写入入口MOVA,COM;取指令代码LJMPPR14;写入指令代码PR13:MOVDPTR,#D_ADD;设置数据通道地址/数据写入入口PR14:MOVXDPTR,A;写入操作RET;读数据子程序PR2:PUSHACCPUSHDPHPUSHDPLLCALLST01;判断状态位MOVDPTR,#D_ADD;设置数据通道地址MOVXA,DPTR;读数据操作MOVDAT2,A;数据存入第二参数/数据的存放地址POPDPLPOPDPHPOPACCRETBIAO:MOVDPTR,#TABDDRMOVR2,ARLARLAADDA,R2JMPA+DPTRTABDDR:MOVDPTR,#DTAB0SJMPFANHUIMOVDPTR,#DTAB1SJMPFANHUIMOVDPTR,#DTAB2SJMPFANHUIMOVDPTR,#DTAB3SJMPFANHUIMOVDPTR,#DTAB4SJMPFANHUIMOVDPTR,#DTAB5SJMPFANHUIMOVDPTR,#DTAB6SJMPFANHUIMOVDPTR,#DTAB7SJMPFANHUIMOVDPTR,#DTAB8SJMPFANHUIMOVDPTR,#DTAB9SJMPFANHUIFANHUI:RETTAB0:DB008H,020H,006H,030H,004H,040H,03FH,0F8H,021H,008H,03FH,0F8H,021H,008H,021H,008HDB03FH,0F8H,021H,008H,001H,000H,0FFH,0FEH,001H,000H,001H,000H,001H,000H,001H,000H;danDB008H,040H,00CH,040H,018H,0A0H,011H,010H,032H,018H,064H,00EH,0A9H,014H,021H,010HDB021H,010H,021H,010H,021H,010H,022H,010H,022H,010H,024H,010H,024H,010H,028H,010H;jiaTAB01:DB001H,0F0H,03FH,000H,001H,000H,0FFH,0FEH,001H,000H,01FH,0F0H,011H,010H,01FH,0F0HDB011H,010H,01FH,0F0H,001H,000H,03FH,0F8H,001H,000H,001H,000H,0FFH,0FEH,000H,000H;zhongDB01FH,0F0H,010H,010H,01FH,0F0H,010H,010H,01FH,0F0H,000H,000H,0FFH,0FEH,011H,010HDB01FH,0F0H,011H,010H,01FH,0F0H,001H,000H,01FH,0F8H,001H,000H,0FFH,0FEH,000H,000H;liangTAB02:DB008H,040H,00CH,040H,018H,0A0H,011H,010H,032H,018H,064H,00EH,0A9H,014H,021H,010H;价DB021H,010H,021H,010H,021H,010H,022H,010H,022H,010H,024H,010H,024H,010H,028H,010HDB020H,0A0H,020H,090H,03CH,090H,020H,0FCH,043H,080H,078H,080H,0A0H,0BCH,023H,0C0HDB0FCH,044H,020H,048H,020H,030H,020H,060H,028H,092H,033H,00AH,020H,006H,000H,002H;钱tab:DB000H,000H,000H,000H,000H,000H,000H,03EH,044H,044H,038H,040H,03CH,042H,042H,03CH;gTAB3:DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,060H,060H,000H,000H;小数点TAB03:DB000H,000H,000H,018H,024H,042H,042H,042H,042H,042H,042H,042H,024H,018H,000H,000H;0TAB04:DB000H,000H,01FH,0F8H,000H,000H,000H,000H,000H,000H,07FH,0FEH,004H,040H,004H,040HDB004H,040H,004H,040H,008H,040H,008H,040H,010H,042H,020H,042H,040H,03EH,000H,000H;元TAB05:DB000H,000H,000H,000H,000H,000H,000H,0E7H,042H,024H,024H,028H,018H,010H,010H,0E0H;yDB000H,000H,001H,002H,002H,004H,004H,008H,008H,010H,010H,020H,020H,040H,040H,000H;/DB000H,000H,000H,000H,000H,000H,000H,03EH,044H,044H,038H,040H,03CH,042H,042H,03CH;gDTAB0:DB000H,000H,000H,018H,024H,042H,042H,042H,042H,042H,042H,042H,024H,018H,000H,000H;0DTAB1:DB000H,000H,000H,010H,070H,010H,010H,010H,010H,010H,010H,010H,010H,07CH,000H,000H;1DTAB2:DB000H,000H,000H,03CH,042H,042H,042H,004H,004H,008H,010H,020H,042H,07EH,000H,000H;2DTAB3:DB000H,000H,000H,03CH,042H,042H,004H,018H,004H,002H,002H,042H,044H,038H,000H,000H;3DTAB4:DB000H,000H,000H,004H,00CH,014H,024H,024H,044H,044H,07EH,004H,004H,01EH,000H,000H;4DTAB5:DB000H,000H,000H,07EH,040H,040H,040H,058H,064H,002H,002H,042H,044H,038H,000H,000H;5DTAB6:DB000H,000H,000H,01CH,024H,040H,040H,058H,064H,042H,042H,042H,024H,018H,000H,000H;6;DTAB7:DB000H,000H,000H,07EH,044H,044H,008H,008H,010H,010H,010H,010H,010H,010H,000H,000H;7DTAB8:DB000H,000H,000H,03CH,042H,042H,042H,024H,018H,024H,042H,042H,042H,03CH,000H,000H;8DTAB9:DB000H,000H,000H,018H,024H,042H,042H,042H,026H,01AH,002H,002H,024H,038H,000H,000H;9RET;///////////////////双字节十六进制转十进制子程序//////////////CONT2: CLRA MOV45H,A;入口R1R2 MOV46H,A;出口45H46

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论