




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;-脚功能定义;ADCCS EQU P3.0 ;伪指令定义寄存器地址值:CSCLK EQU P3.1 ;伪指令定义寄存器地址值:CLKDI EQU P3.2 ;伪指令定义寄存器地址值:DIDO EQU P3.3 ;伪指令定义寄存器地址值: DOBUSY EQU P3.4 ;伪指令定义寄存器地址值: BUSY ;LCD RS EQU P1.0 RW EQU P1.1 E EQU P1.2 PSB EQU P1.3;PSB脚为12864-12系列的串、并通讯功能切换,我们使用8位并行接口,PSB=1;P2口为数据/指令口 ;DAC DAC_CS EQU P3.6 DAC_WR EQU P3.7 DAC_D EQU P0 ;DAC数据口 ;- LCD_X EQU 30H;行座标 LCD_Y EQU 31H;列座标 COUNT EQU 32H;定义记数缓冲 COUNT1 EQU 33H COUNT2 EQU 34H COUNT3 EQU 35H ;- LCD_DATA EQU 36H;字义数据RAM空间 LCD_DATA1 EQU 37H LCD_DATA2 EQU 38H STORE EQU 39H ADC_MSB EQU 3AH ADC_LSB EQU 3BH ADC_MSB_TEMP EQU 3CH ADC_LSB_TEMP EQU 3DH DAC_DATA EQU 3EH ;- ORG 0000H LJMP MAIN ORG 0100H ;- MAIN: MOV SP,#5FH LCALL DELAY4 ;延时40.301ms NOP SETB PSB ;通讯方式为8位数据并口 ;*初始化*LGS0: MOV A,#34H ;34H-扩充指令操作 在12864原理中有解释 LCALL SEND_I ;调用写指令子程序 MOV A,#30H ;基本指令操作 LCALL SEND_I MOV A,#01H ;清除显示 LCALL SEND_I MOV A,#06H ;指定在资料写入或读取时,光标的移动方向 LCALL SEND_I ;DDRAM 的地址计数器(AC)加1 MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I ;=;显示汉字和字符;加入40ms的延时,使你能够看清楚显示的过程;根据汉字显示坐标分段写入(顺序写入)TU_PLAY1: ;= =HAN_WR2: /LCALL CLEAR_P ;调入清屏子程序HAN_WR2A: MOV DPTR,#TAB1A ;显示汉字和字符 MOV COUNT,#10H ;地址计数器设为16。 MOV A,#80H ;第一行起始地址 LCALL SEND_I LCALL QUSHU HAN_WR2C: MOV DPTR,#TAB1C ;显示汉字和字符 MOV COUNT,#10H ;地址计数器设为16。 MOV A,#88H ;第三行起始地址 LCALL SEND_I LCALL QUSHU CLR CS; 使能 MOV A,#98H ;指令 LCALL SDSPI ;写指令 MOV A,#98H ; LCALL SDSPI ;重写指令;LL:JB BUSY,LL ;如果BUSY 为1 ,死循环 LCALL DELAY2 ;延时 LCALL RDSPI MOV ADC_MSB,A LCALL RDSPI MOV ADC_LSB,A ; MOV A,#8CH ;LCALL SEND_I ;地址 ;MOV A,R4 ; LCALL SEND_D ;MOV A,#8DH ;LCALL SEND_I ;地址 ;MOV A,R5 ;LCALL SEND_D MOV R0,ADC_MSBMOV ADC_MSB_TEMP,R0;转存MOV DAC_DATA,R0;转存DAC数据,高八位 MOV A,ADC_MSB RR A RR A RR A RR A ;右移4次 ANL A,#0FH ;取出高四位 MOV DPTR,#TABLE MOVC A,A+DPTRMOV ADC_MSB,A ;存高四位ASCII MOV A,ADC_MSB_TEMP ANL A,#0FH ;取出低四位 MOV DPTR,#TABLE MOVC A,A+DPTRMOV ADC_MSB_TEMP,A;存低四位ASCII MOV R1,ADC_LSB MOV ADC_LSB_TEMP,R1;转存 MOV A,ADC_LSB RR A RR A RR A RR A ;右移4次 ANL A,#0FH ;取出高四位 MOV DPTR,#TABLE MOVC A,A+DPTRMOV ADC_LSB,A;存高四位ASCII MOV A,ADC_LSB_TEMP ANL A,#0FH ;取出低四位 MOV DPTR,#TABLE MOVC A,A+DPTRMOV ADC_LSB_TEMP,A;存低四位ASCII ;DAC MOV A,DAC_DATA CLR DAC_CS CLR DAC_WR MOV DAC_D,A NOP SETB DAC_CS SETB DAC_WR ;LCD MOV A,#8DH ;地址 LCALL SEND_I MOV A,ADC_MSB LCALL SEND_D MOV A,#8EH ;地址 LCALL SEND_I MOV A,ADC_MSB_TEMP LCALL SEND_D MOV A,#8FH ;地址 LCALL SEND_I MOV A,ADC_LSB LCALL SEND_D ;MOV A,#8EH ;地址 ;LCALL SEND_I ;MOV A,ADC_LSB_TEMP ;LCALL SEND_D LCALL DELAY3 ;延时KU_PLAY2: LJMP TU_PLAY1 ;循环到前面;*SPI写一字节*SDSPI: MOV R3,#8 ;SD1: RLC A ; MOV DI,C ; SETB CLK ; CALL DELAYSPI1 ;CLR CLK ;CALL DELAYSPI2 ;DJNZ R3,SD1 ;RET ;*SPI读一字节*RDSPI: MOV R3,#8 ;RD1: SETB CLK ;CALL DELAYSPI1 ; CLR CLK ;CALL DELAYSPI2 ;MOV C,DO ;RLC A ;DJNZ R3,RD1 ;RET ;DELAYSPI1: MOV R7,#0FH DJNZ R7,$ RET DELAYSPI2: MOV R7,#8FH DJNZ R7,$ RET ;= = ;全屏显示点阵图形子程序 ;= =PHO_DISP:;图形点阵排列方式为,一行128点/8=16个字节,即每行16字节,每字节以高位开始排列 MOV COUNT3,#02H MOV LCD_X,#80H ;显示数据RAM的水平起始地址是80HPHO_DISP1: MOV LCD_Y,#80H ;显示数据RAM的垂直起始地址也是80H MOV COUNT2,#20H;上半部份32行PHO_DISP2: MOV COUNT1,#10H;每行16字节 LCALL WR_ZB;功能指令调用,即为点阵数据PHO_DISP3: CLR A MOVC A,A+DPTR;读取点阵数据内容 LCALL SEND_D INC DPTR DJNZ COUNT1,PHO_DISP3 INC LCD_Y DJNZ COUNT2,PHO_DISP2 MOV LCD_X,#88H DJNZ COUNT3,PHO_DISP1 MOV A,#36H ;扩充功能设定 LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;- CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序 MOV LCD_DATA2,#00H LCALL LAT_DISP RET;= = ;显示点阵子程序,此子程序与图形显示一样,只是输出的数据是固定的两个数据 ;= =LAT_DISP: MOV COUNT3,#02H MOV LCD_X,#80HLAT_DISP1: MOV LCD_Y,#80H CLR F0 MOV COUNT2,#20HLAT_DISP2: MOV COUNT1,#10H LCALL WR_ZBLAT_DISP3: JB F0,LAT_DISP32;P直接寻址位为1转移 MOV LCD_DATA,LCD_DATA1 AJMP LAT_DISP31LAT_DISP32: MOV LCD_DATA,LCD_DATA2LAT_DISP31: MOV A,LCD_DATA LCALL SEND_D DJNZ COUNT1,LAT_DISP31 INC LCD_Y CPL F0 DJNZ COUNT2,LAT_DISP2 MOV LCD_X,#88H DJNZ COUNT3,LAT_DISP1 MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;-WR_ZB: MOV A,#34H LCALL SEND_I MOV A,LCD_Y LCALL SEND_I MOV A,LCD_X LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;= FLASH: MOV A,#08H ;关闭显示 LCALL SEND_I LCALL DELAY5 MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I LCALL DELAY5 MOV A,#08H ;关闭显示 LCALL SEND_I LCALL DELAY5 MOV A,#0CH ;开显示,关光标,不闪烁 LCALL SEND_I LCALL DELAY5 MOV A,#08H ;关闭显示 LCALL SEND_I LCALL DELAY5 RET ;= ;清屏 ;= CLEAR_P:MOV A,#01H ;清屏 LCALL SEND_I MOV A,#34H LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;= ;查表取数据送显示 ;= QUSHU: CLR A MOVC A,A+DPTR ;查表取数据 LCALL SEND_D ;送显示 INC DPTR LCALL DELAY1 ;延时, DJNZ COUNT,QUSHU RET ;= ;写数据子程序 ;RS=1,RW=0,E=高脉冲,D0-D7=数据 ;=SEND_D: LCALL CHK_BUSY ;写数据子程序 SETB RS CLR RW MOV P2,A SETB E NOP NOP CLR E RET ;= = ;写指令子程序;RS=0,RW=0,E=高脉冲,D0-D7=指令码 ;=SEND_I: LCALL CHK_BUSY CLR RS CLR RW MOV P2,A SETB E NOP NOP CLR E RET ;= ;读数据子程序 ;RS=1,RW=1,E=H,D0-D7=数据 ;= READ_D: LCALL CHK_BUSY ;读数据子程序 SETB RS SETB RW SETB E NOP MOV A,P2 CLR E MOV STORE,A RET ;= = ;测忙碌子程序 ;RS=0,RW=1,E=H,D0-D7=状态字 ;= CHK_BUSY: MOV P2,#0FFH ;测忙碌子程序 CLR RS SETB RW SETB E JB P2.7,$ ;直接寻址位为1转移 CLR E RET ;= = ;延时子程序 DELAY1: MOV R6,#06HDEL11: MOV R7,#08HDEL12: DJNZ R7,DEL12 DJNZ R6,DEL11 RETDELAY2: MOV R6,#0CHDEL21: MOV R7,#18HDEL22: DJNZ R7,DEL22 DJNZ R6,DEL21 RET ;1sDELAY3: MOV R5,#16HDEL31: MOV R6,#100DEL32: MOV R7,#0FFHDEL33: DJNZ R7,DEL33 DJNZ R6,DEL32 DJNZ R5,DEL31 RETDELAY4:;延时40ms MOV R6,#100DEL41: MOV R7,#200DEL42: DJNZ R7,DEL42 DJNZ R6,DEL41 RETDELAY5: ;延时256ms MOV R5,#05HDEL51: MOV R6,#100D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿教育机构股权收购与品牌整合服务合同
- 停薪留职期间员工权益保护合同
- 离婚抚养费支付及子女兴趣爱好培养协议范本
- 政府采购环卫电动三轮车与环保宣传合同
- 互联网金融平台中的用户信用担保合同规范
- 离婚协议签订前财产评估与分割操作指导合同
- 价格策略制定与评估-洞察及研究
- 良田更换协议书8篇
- 情感计算在虚拟人物中的应用-洞察及研究
- 广东遴选 试题及答案
- 现状调查培训课件
- 初级社会工作实务全本课件
- PS考试试题及答案
- 新都区文化产业发展建议报告
- 时代邻里4度°服务美学品质关怀体系
- 养老机构行政值班查房记录表格
- EPC合同条件(银皮书)-1999
- 外研版五年级上册英语(全册)单元教材分析
- 华为-计划、预算和核算
- 细胞凋亡和细胞自噬(课堂PPT)
- 第一章光的电磁理论ppt课件
评论
0/150
提交评论