还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《单片机原理及应用》课程设计报告题目LCD显示设计院(系)机电与自动化学院专业班级电气自动化技术1101班学生姓名包文峰学号20112822023指导教师雷丹2013年12月16日至2013年12月27日华中科技大学武昌分校制《单片机原理及应用》课程设计任务书
一、设计题目LCD显示设计
二、设计主要内容
(1)了解122×32A点阵式LCD液晶显示的结构、工作原理、编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,能在LCD上显示汉子
(2)显示汉字“华中科技大学武昌分校及姓名”,并实现显示内容的翻屏功能
(3)按规范撰写设计说明书,含硬件设计及软件设计
三、原始资料
(1)LCD显示的原理液晶是一呈液体状的化学物质象磁场中的金属一样当受到外界电场影响时其分子会产生精确的有序排列如果对分子的排列加以适当的控制液晶分子将会允许光线穿越无论是笔记本电脑还是桌面系统采用的LCD显示屏都是由不同部分组成的分层结构位于最后面的一层是由荧光物质组成的可以发射光线的背光层背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层液晶层中的水晶液滴都被包含在细小的单元格结构中一个或多个单元格构成屏幕上的一个像素当LCD中的电极产生电场时液晶分子就会产生扭曲从而将穿越其中的光线进行有规则的折射然后经过第二层过滤层的过滤在屏幕上显示出来
(2)LCD显示电路采用122×32A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器,电路如图1所示图1LCD显示电路
(3)LCD与单片机的连接(如图2)图2LCD与单片机的连接图
四、要求的设计成果
1、根据控制要求,分析LCD显示系统的硬件结构;
2、分析LCD引脚功能及地址分配;
3、在单片机实验箱上按要求显示汉子并进行实时演示
4、提交字数不低于2000字的设计说明书一份
五、进程安排时间课程设计内容学时分配第一周周一至第一周周二上午下达设计任务;查阅资料,理解参考程序
1.5天第一周周二下午至第二周周三进单片机实验室,理解硬件、编写程序,修改完善,达到设计要求
6.5天第二周周四至第二周周五作品演示、撰写设计说明书、提交说明书并进行答辩(单片机实验室)2天合计10天
六、主要参考资料
[1]李广弟.单片机基础.北京北京航空航天大学,2009.
[2]李群芳.微型计算机与接口技术.北京电子工业出版社,2012.
[3]单片机综合仿真实验系统KeilC实验指导书.深圳深圳市雷迈特科技有限公司,2012.
[4]沈庆阳.8051单片机实践与应用.机电一体化系统设计.北京化学工业出版社,2009.
[5]朱定华.单片微机原理与应用.北京清华大学出版社,2006.指导教师(签名)2013年12月10日目录
1.课程设计题目及要求…………………………………………………………
11.1课程设计题目…………………………………………………………………
11.2课程设计要求…………………………………………………………………
12.课程设计主要内容……………………………………………………………
22.1LCD显示原理………………………………………………………………
22.2LCD显示电路………………………………………………………………
22.3LCD引脚说明……………………………………………………………
32.4SED1520的基本原理………………………………………………………
42.5SED1520的指令系统………………………………………………………
52.6LCD与单片机的连接………………………………………………………
62.7汉字字模的获取………………………………………………………
73.软件设计……………………………………………………………………
93.1程序流程…………………………………………………………………
93.2课程设计具体程序…………………………………………………
104.课程设计总结………………………………………………………………30参考文献…………………………………………………………………………
311.课程设计题目及要求
1.1课程设计题目LCD显示设计
1.2课程设计要求了解122×32A点阵式LCD液晶显示的结构、工作原理、编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,按要求在LCD上显示内容具体显示效果为
(1)显示汉字华中科技大学武昌分校自己的姓名
(2)实现显示内容的翻屏功能拓展实现显示内容的滚动功能
2.课程设计主要内容
2.1LCD显示原理液晶是一呈液体状的化学物质象磁场中的金属一样当受到外界电场影响时其分子会产生精确的有序排列如果对分子的排列加以适当的控制液晶分子将会允许光线穿越无论是笔记本电脑还是桌面系统采用的LCD显示屏都是由不同部分组成的分层结构位于最后面的一层是由荧光物质组成的可以发射光线的背光层背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层液晶层中的水晶液滴都被包含在细小的单元格结构中一个或多个单元格构成屏幕上的一个像素当LCD中的电极产生电场时液晶分子就会产生扭曲从而将穿越其中的光线进行有规则的折射然后经过第二层过滤层的过滤在屏幕上显示出来
2.2LCD显示电路采用122×32A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器LCD显示电路如图2-1所示图2-1LCD显示电路LCD显示屏示意图(122X32)如图2-2所示图2-2LCD显示屏
2.3LCD引脚说明序号符号电平功能1GND0v逻辑电源地2Vcc5v逻辑电源正3V0可调液晶显示驱动电源4A0H/LH:数据L:指令5R/WH/LH读L:写6E1HH→L主工作方式IC的使用信号7E2HH→L从工作方式IC的使用信号8NC—未用9DB0H/L数据总线(最低位)010DB1H/L数据总线111DB2H/L数据总线212DB3H/L数据总线313DB4H/L数据总线414DB5H/L数据总线515DB6H/L数据总线616DB7H/L数据总线(最高位)
72.4SED1520的基本原理SED为内置液晶显示器控制器,集行、列驱动器和控制器与一体,广泛应用于小型液晶显示模块中,内置2560位显示RAM区(32行80列),RAM中的1位数据控制液晶屏上一个像素的亮暗,“1”为亮,“0”为暗
(1)1-61列为左半屏;62-122为右半屏
(2)每半屏页数分配一致
(3)每页含8行80列(80个字节)(前61列有效)
(4)每半屏为32行,共4页
(5)每个汉字占16行,即用2页才能写完
(6)液晶屏上最多能显示两行汉字静态时最多显示16字
2.5SED1520的指令系统SED1520的13条指令指令名称控制信号控制代码A0R/WD7D6D5D4D3D2D1D0复位0011100010显示开关设置0010101110/1地址排序设置0010100000正向)/1(逆向)体闲状态设置0010100100(驱动)/1(不驱动)占空比设置0010101000(1/16/11/32显示起始行设置00110L4L3L2L1L0(0-31)页面地址设置00101110P1P0(0-3)列地址设置000C6C5C4C3C2C1C0(0-79)启动改写方式0011100000结束改写方式0011101110读取状态字01BUSYADCON/OFFRESET0000写显示数据10数据读显示数据11数据
2.6LCD与单片机的连接单片机与LCD模块之间有四种基本操作写命令R/W接低电平即A7为0读状态R/W接高电平即A7为1写显示数据A0接高电平读显示数据A0接低电平E1E2写指令代码地址FA00HF800H读状态地址FA80HF880H写显示数据地址FA40HF840H读显示数据地址FACOHF8C0H
2.7汉字字模的获取在编写程序之前,我们必须要知道所显示汉字的字模,要得到我们所需要的汉字字模,我们可以通过有关的软件进行查询,得到其数据表如“包”字再如“文”字再如“峰”字3软件设计
3.1程序流程显示主程序显示子程序初始化程序清屏幕子程序
3.2课程设计具体程序实现翻屏功能PD1EQU60;;模块参数COLUMNEQU30HPAGE1EQU31H;;页地址寄存器CODE1EQU32H;;字符代码寄存器COUNTEQU33H;;计数器COMEQU20H;;指令寄存器DATEQU21H;;数据寄存器CWADD1EQU0fa00H;;写指令代码地址(E1)CRADD1EQU0fa80H;;读状态字地址(E1)DWADD1EQU0fa40H;;写显示数据地址(E1)DRADD1EQU0fac0H;;读显示数据地址(E1)CWADD2EQU0f800H;;写指令代码地址(E2)CRADD2EQU0f880H;;读状态字地址(E2)DWADD2EQU0f840H;;写显示数据地址(E2)DRADD2EQU0f8c0H;;读显示数据地址(E2)ORG0000HAG1:MOVSP#60HLCALLINT;;调用初始化子程序LCALLCLEAR;;调用清屏子程序MOVPD1#3DH;;MOVPAGE1#02H;;页地址寄存器置初值MOVCOLUMN#0H;;列地址寄存器置初值MOVCODE1#00H;;字符代码寄存器置初值LCALLCCW_PR;;显示“华”MOVPAGE1#02HMOVCOLUMN#0fHMOVCODE1#01HLCALLCCW_PR;;显示“中”MOVPAGE1#02HMOVCOLUMN#1eHMOVCODE1#02HLCALLCCW_PR;;显示“科”MOVPAGE1#2HMOVCOLUMN#2dHMOVCODE1#03HLCALLCCW_PR;;显示“技”MOVPAGE1#2HMOVCOLUMN#61MOVCODE1#04HLCALLCCW_PR;;显示“大”MOVPAGE1#2HMOVCOLUMN#76MOVCODE1#05HLCALLCCW_PR;;显示“学”MOVPAGE1#2HMOVCOLUMN#91MOVCODE1#06HLCALLCCW_PR;;显示“武MOVPAGE1#2HMOVCOLUMN#106MOVCODE1#07HLCALLCCW_PR;;显示“昌MOVPD1#3DH;;MOVPAGE1#00H;;页地址寄存器置初值MOVCOLUMN#0H;;列地址寄存器置初值MOVCODE1#08H;;字符代码寄存器置初值LCALLCCW_PR;;显示“分”MOVPAGE1#00HMOVCOLUMN#0fHMOVCODE1#09HLCALLCCW_PR;;显示“校”MOVPAGE1#0HMOVCOLUMN#1eHMOVCODE1#0aHLCALLCCW_PR;;显示“---”MOVPAGE1#0HMOVCOLUMN#2dHMOVCODE1#0bHLCALLCCW_PR;;显示“包”MOVPAGE1#0HMOVCOLUMN#61MOVCODE1#0cHLCALLCCW_PR;;显示“文”MOVPAGE1#0HMOVCOLUMN#76MOVCODE1#0dHLCALLCCW_PR;;显示“峰”LCALLAG2;;延时显示LCALLCLEAR;;清屏LCALLAG2LCALLAG2LCALLAG2;;清屏延时LJMPAG1;;调用显示程序SJMP$CCW_PR:MOVDPTR#CCATB;;确定字符字模块首地址MOVACODE1;;取代码MOVB#20H;;字模块宽度为32个字节MULAB;;代码X32ADDADPL;;字符字模块首地址=字模库首地址+代码X32MOVDPLAMOVABADDCADPHMOVDPHAPUSHCOLUMN;;列地址入栈PUSHCOLUMN;;列地址入栈MOVCODE1#00H;;代码寄存器借用为间址寄存器CCW_1:MOVCOUNT#10H;;计数器设定为16MOVAPAGE1;;读页地址寄存器ANLA#03HORLA#0B8H;;“或”页地址设置代码MOVCOMA;;写页地址设置指令LCALLPR0LCALLPR3POPCOLUMN;;取列地址值MOVACOLUMN;;读列地址寄存器CLRCSUBBA#PD1;;列地址-模块参数JCCCW_2;;<0为左半屏显示区域(E1)MOVCOLUMNA;;≥0为右半屏显示区域(E2)MOVAPAGE1SETBACC.3;;设置区域标志位MOVPAGE1A;;“0”为E1,“1”为E2CCW_2:MOVCOMCOLUMN;;设置列地址值MOVAPAGE1;;判区域标志以确定设置哪个控制器JNBACC.3CCW_3LCALLPR3;;区域E2LJMPCCW_4CCW_3:LCALLPR0;;区域E1CCW_4:MOVACODE1;;取间址寄存器值MOVCA@A+DPTR;;取汉字字模数据MOVDATA;;写数据MOVAPAGE1JNBACC.3CCW_5LCALLPR4;;区域E2LJMPCCW_6CCW_5:LCALLPR1;;区域E1CCW_6:INCCODE1;;间址寄存器加1INCCOLUMN;;列地址寄存器加1MOVACOLUMN;;判列地址是否超出区域范围CJNEA#PD1CCW_7CCW_7:JCCCW_8;;未超出则继续MOVAPAGE1;;超出则判是否在区域E2JBACC.3CCW_8;;在区域E2则退出SETBACC.3;;在区域E1则修改成区域E2MOVPAGE1AMOVCOM#00H;;设置区域E2列地址为“0”LCALLPR3CCW_8:DJNZCOUNTCCW_4;;当页循环MOVAPAGE1;;读页地址寄存器JBACC.7CCW_9;;判完成标志D7位,“1”则完成退出INCA;;否则页地址加“1”SETBACC.7CLRACC.3MOVPAGE1AMOVCODE1#10H;;间接寄存器设置为16LJMPCCW_1;;大循环CCW_9:RETccAtB:db00h40h20h10h0FCh03h40h20hdb10h0FFh08h04h06h0C0h00h00h;;显示“华”db04h04h04h04h05h04h04h0FFhdb04h04h05h05h05h05h04h00hdb00h0F8h08h08h08h08h08h0FFhdb08h08h08h08h08h0FCh08h00h;;显示“中”db00h03h01h01h01h01h01h0FFhdb01h01h01h01h01h03h00h00hdb24h24h24h0A4h0FEh0A3h22h00hdb24h48h00h0FFh00h80h00h00h;;显示“科”db10h08h06h01h0FFh00h01h02hdb02h02h02h0FFh01h01h01h00hdb10h10h10h0FFh10h10h88h88hdb88h0FFh88h88h8Ch08h00h00h;;显示“技”db04h44h82h7Fh01h80h81h46hdb28h10h28h26h41h0C0h40h00hdb20h20h20h20h20h20h0A0h7Fhdb0A0h20h20h20h20h30h20h00h;;显示“大”db00h40h40h20h10h0Ch03h00hdb01h06h08h10h20h60h20h00hdb40h30h11h96h90h90h91h96hdb90h90h98h14h13h50h30h00h;;显示“学”db04h04h04h04h04h44h84h7Ehdb06h05h04h04h04h06h04h00hdb20h20h24h24h24h0E4h26h24hdb20h0FFh20h22h2Ch20h20h00h;;显示“武”db20h60h3Fh20h20h1Fh11h11hdb10h03h1Ch20h40h80h0E0h00hdb00h00h00h7Fh49h49h49h49hdb49h49h49h7Fh80h00h00h00h;;显示“昌”db00h00h0FFh49h49h49h49h49hdb49h49h49h49h0FFh01h00h00hdb00h80h40h20h98h86h80h80hdb83h8Ch90h20h0C0h80h80h00h;;显示“分”db01h00h80h40h20h1Fh00h40hdb80h40h3Fh00h00h01h00h00hdb10h10h0D0h0FFh90h10h88h48hdb0A8h09h0Ah08h0A8h4Ch0C8h00h;;显示“校”db04h03h00h0FFh80h81h40h40hdb21h16h08h16h61h0C0h40h00hdb80h80h80h80h80hdb80h80h80h80h80h;;显示“---”db80h80h80h80h80hdb00h00h00h00h00hdb00h00h00h00h00hdb00h00h00h00h00hdb00h00hdb00h40h20h0D0h48h4Fh48h48hdb0E8h48h08h0FCh08h00h00h00h;;显示“包”db00h00h00h3Fh42h42h42h42hdb47h40h48h4Fh40h70h00h00hdb08h08h08h18h68h88h09h0Ehdb08h08h0C8h38h08h0Ch08h00h;;显示“文”db80h80h40h40h20h11h0Ah04hdb0Ah11h10h20h40h0C0h40h00hdb00h0F0h00h0FFh00h0F0h90h88hdb4Fh54h0A4h54h4Ch0C4h40h00h;;显示“峰”db00h1Fh10h0Fh08h1Fh00h14hdb15h15h0FFh15h15h14h00h00hAG2:MOVR0#0;;延时程序1SAG3:MOVTMOD#10HMOVTH1#3CHMOVTL1#0B0HSETBTR1AG4:JBCTF1AG5SJMPAG4AG5:INCR0CJNER0#0AHAG3RETINT:MOVCOM#0E2H;;初始化子程序,复位LCALLPR0LCALLPR3MOVCOM#0A4H;;关闭休闲状态LCALLPR0LCALLPR3MOVCOM#0A9H;;设置1/32占空比LCALLPR0LCALLPR3MOVCOM#0A0H;;正向排序设置LCALLPR0LCALLPR3MOVCOM#0C0H;;设置显示起始行为第一行LCALLPR0LCALLPR3MOVCOM#0AFH;;开显示设置LCALLPR0LCALLPR3RETCLEAR:MOVR4#00H;;清屏子程序,页面地址暂存器设置CLEAR1:MOVAR4;;取页地址值ORLA#0B8H;;“或”页面地址设置代码MOVCOMA;;页面地址设置LCALLPR0LCALLPR3MOVCOM#00H;;列地址设置为“0”LCALLPR0LCALLPR3MOVR3#50H;;一页清80个字节CLEAD2:MOVDAT#00H;;显示数据为“0”LCALLPR1LCALLPR4DJNZR3CLEAD2;;页内字节清零循环INCR4;;页地址暂存器加1CJNER4#04HCLEAR1;;RAM区清零循环RETPR0:PUSHDPL;;写指令代码子程序(E1)PUSHDPHMOVDPTR#CRADD1PR01:MOVXA@DPTRJBACC.7PR01MOVDPTR#CWADD1MOVACOMMOVX@DPTRAPOPDPHPOPDPLRETPR1:PUSHDPL;;写显示数据子程序(E1)PUSHDPHMOVDPTR#CRADD1PR11:MOVXA@DPTRJBACC.7PR11MOVDPTR#DWADD1MOVADATMOVX@DPTRAPOPDPHPOPDPLRETPR2:PUSHDPL;;读显示数据子程序(E1)PUSHDPHMOVDPTR#CRADD1PR21:MOVXA@DPTRJBACC.7PR21MOVDPTR#DRADD1MOVXA@DPTRMOVDATAPOPDPHPOPDPLRETPR3:PUSHDPL;;写指令代码子程序(E2)PUSHDPHMOVDPTR#CRADD2PR31:MOVXA@DPTRJBACC.7PR31MOVDPTR#CWADD2MOVACOMMOVX@DPTRAPOPDPHPOPDPLRETPR4:PUSHDPL;;写显示数据子程序(E2)PUSHDPHMOVDPTR#CRADD2PR41:MOVXA@DPTRJBACC.7PR41MOVDPTR#DWADD2MOVADATMOVX@DPTRAPOPDPHPOPDPLRETPR5:PUSHDPL;;读显示数据子程序(E2)PUSHDPHMOVDPTR#CRADD2PR51:MOVXA@DPTRJBACC.7PR21MOVDPTR#DRADD2MOVXA@DPTRMOVDATAPOPDPHPOPDPLRETend拓展实现上下滚屏功能PD1EQU60;;模块参数COLUMNEQU30HPAGE1EQU31H;;页地址寄存器CODE1EQU32H;;字符代码寄存器COUNTEQU33H;;计数器COMEQU20H;;指令寄存器DATEQU21H;;数据寄存器CWADD1EQU0fa00H;;写指令代码地址(E1)CRADD1EQU0fa80H;;读状态字地址(E1)DWADD1EQU0fa40H;;写显示数据地址(E1)DRADD1EQU0fac0H;;读显示数据地址(E1)CWADD2EQU0f800H;;写指令代码地址(E2)CRADD2EQU0f880H;;读状态字地址(E2)DWADD2EQU0f840H;;写显示数据地址(E2)DRADD2EQU0f8c0H;;读显示数据地址(E2)ORG0000HAG1:MOVSP#60HLCALLINT;;调用初始化子程序LCALLCLEAR;;调用清屏子程序MOVPD1#3DHMOVPAGE1#02H;;页地址寄存器置初值MOVCOLUMN#0H;;列地址寄存器置初值MOVCODE1#00H;;字符代码寄存器置初值LCALLCCW_PR;;显示“华”MOVPAGE1#02HMOVCOLUMN#0fHMOVCODE1#01HLCALLCCW_PR;;显示“中”MOVPAGE1#02HMOVCOLUMN#1eHMOVCODE1#02HLCALLCCW_PR;;显示“科”MOVPAGE1#2HMOVCOLUMN#2dHMOVCODE1#03HLCALLCCW_PR;;显示“技”MOVPAGE1#2HMOVCOLUMN#61MOVCODE1#04HLCALLCCW_PR;;显示“大”MOVPAGE1#2HMOVCOLUMN#76MOVCODE1#05HLCALLCCW_PR;;显示“学”MOVPAGE1#2HMOVCOLUMN#91MOVCODE1#06HLCALLCCW_PR;;显示“武MOVPAGE1#2HMOVCOLUMN#106MOVCODE1#07HLCALLCCW_PR;;显示“昌MOVPD1#3DH;;MOVPAGE1#00H;;页地址寄存器置初值MOVCOLUMN#0H;;列地址寄存器置初值MOVCODE1#08H;;字符代码寄存器置初值LCALLCCW_PR;;显示“分”MOVPAGE1#00HMOVCOLUMN#0fHMOVCODE1#09HLCALLCCW_PR;;显示“校”MOVPAGE1#0HMOVCOLUMN#1eHMOVCODE1#0aHLCALLCCW_PR;;显示“---”MOVPAGE1#0HMOVCOLUMN#2dHMOVCODE1#0bHLCALLCCW_PR;;显示“包”MOVPAGE1#0HMOVCOLUMN#61MOVCODE1#0cHLCALLCCW_PR;;显示“文”MOVPAGE1#0HMOVCOLUMN#76MOVCODE1#0dHLCALLCCW_PR;;显示“峰”LCALLAG6;;调用翻屏SJMP$CCW_PR:MOVDPTR#CCATB;;确定字符字模块首地址MOVACODE1;;取代码MOVB#20H;;字模块宽度为32个字节MULAB;;代码X32ADDADPL;;字符字模块首地址=字模库首地址+代码X32MOVDPLAMOVABADDCADPHMOVDPHAPUSHCOLUMN;;列地址入栈PUSHCOLUMN;;列地址入栈MOVCODE1#00H;;代码寄存器借用为间址寄存器CCW_1:MOVCOUNT#10H;;计数器设定为16MOVAPAGE1;;读页地址寄存器ANLA#03HORLA#0B8H;;“或”页地址设置代码MOVCOMA;;写页地址设置指令LCALLPR0LCALLPR3POPCOLUMN;;取列地址值MOVACOLUMN;;读列地址寄存器CLRCSUBBA#PD1;;列地址-模块参数JCCCW_2;;<0为左半屏显示区域(E1)MOVCOLUMNA;;≥0为右半屏显示区域(E2)MOVAPAGE1SETBACC.3;;设置区域标志位MOVPAGE1A;;“0”为E1,“1”为E2CCW_2:MOVCOMCOLUMN;;设置列地址值MOVAPAGE1;;判区域标志以确定设置哪个控制器JNBACC.3CCW_3LCALLPR3;;区域E2LJMPCCW_4CCW_3:LCALLPR0;;区域E1CCW_4:MOVACODE1;;取间址寄存器值MOVCA@A+DPTR;;取汉字字模数据MOVDATA;;写数据MOVAPAGE1JNBACC.3CCW_5LCALLPR4;;区域E2LJMPCCW_6CCW_5:LCALLPR1;;区域E1CCW_6:INCCODE1;;间址寄存器加1INCCOLUMN;;列地址寄存器加1MOVACOLUMN;;判列地址是否超出区域范围CJNEA#PD1CCW_7CCW_7:JCCCW_8;;未超出则继续MOVAPAGE1;;超出则判是否在区域E2JBACC.3CCW_8;;在区域E2则退出SETBACC.3;;在区域E1则修改成区域E2MOVPAGE1AMOVCOM#00H;;设置区域E2列地址为“0”LCALLPR3CCW_8:DJNZCOUNTCCW_4;;当页循环MOVAPAGE1;;读页地址寄存器JBACC.7CCW_9;;判完成标志D7位,“1”则完成退出INCA;;否则页地址加“1”SETBACC.7CLRACC.3MOVPAGE1AMOVCODE1#10H;;间接寄存器设置为16LJMPCCW_1;;大循环CCW_9:RETccAtB:db00h40h20h10h0FCh03h40h20hdb10h0FFh08h04h06h0C0h00h00h;;显示“华”db04h04h04h04h05h04h04h0FFhdb04h04h05h05h05h05h04h00hdb00h0F8h08h08h08h08h08h0FFhdb08h08h08h08h08h0FCh08h00h;;显示“中”db00h03h01h01h01h01h01h0FFhdb01h01h01h01h01h03h00h00hdb24h24h24h0A4h0FEh0A3h22h00hdb24h48h00h0FFh00h80h00h00h;;显示“科”db10h08h06h01h0FFh00h01h02hdb02h02h02h0FFh01h01h01h00hdb10h10h10h0FFh10h10h88h88hdb88h0FFh88h88h8Ch08h00h00h;;显示“技”db04h44h82h7Fh01h80h81h46hdb28h10h28h26h41h0C0h40h00hdb20h20h20h20h20h20h0A0h7Fhdb0A0h20h20h20h20h30h20h00h;;显示“大”db00h40h40h20h10h0Ch03h00hdb01h06h08h10h20h60h20h00hdb40h30h11h96h90h90h91h96hdb90h90h98h14h13h50h30h00h;;显示“学”db04h04h04h04h04h44h84h7Ehdb06h05h04h04h04h06h04h00hdb20h20h24h24h24h0E4h26h24hdb20h0FFh20h22h2Ch20h20h00h;;显示“武”db20h60h3Fh20h20h1Fh11h11hdb10h03h1Ch20h40h80h0E0h00hdb00h00h00h7Fh49h49h49h49hdb49h49h49h7Fh80h00h00h00h;;显示“昌”db00h00h0FFh49h49h49h49h49hdb49h49h49h49h0FFh01h00h00hdb00h80h40h20h98h86h80h80hdb83h8Ch90h20h0C0h80h80h00h;;显示“分”db01h00h80h40h20h1Fh00h40hdb80h40h3Fh00h00h01h00h00hdb10h10h0D0h0FFh90h10h88h48hdb0A8h09h0Ah08h0A8h4Ch0C8h00h;;显示“校”db04h03h00h0FFh80h81h40h40hdb21h16h08h16h61h0C0h40h00hdb80h80h80h80h80hdb80h80h80h80h80h;;显示“---”db80h80h80h80h80hdb00h00h00h00h00hdb00h00h00h00h00hdb00h00h00h00h00hdb00h00hdb00h40h20h0D0h48h4Fh48h48hdb0E8h48h08h0FCh08h00h00h00h;;显示“包”db00h00h00h3Fh42h42h42h42hdb47h40h48h4Fh40h70h00h00hdb08h08h08h18h68h88h09h0Ehdb08h08h0C8h38h08h0Ch08h00h;;显示“文”db80h80h40h40h20h11h0Ah04hdb0Ah11h10h20h40h0C0h40h00hdb00h0F0h00h0FFh00h0F0h90h88hdb4Fh54h0A4h54h4Ch0C4h40h00h;;显示“峰”db00h1Fh10h0Fh08h1Fh00h14hdb15h15h0FFh15h15h14h00h00hAG2:MOVR0#0;;延时程序AG3:MOVTMOD#10HMOVTH1#3CHMOVTL1#0B0HSETBTR1AG4:JBCTF1AG5SJMPAG4AG5:INCR0CJNER0#0AHAG3RETAG6:LCALLAG2LCALLAG2LCALLAG2MOVR6#00;;滚屏AG7:MOVA#0C0HORLAR6MOVCOMALCALLPR0LCALLPR3LCALLAG2INCR6CJNER6#11HAG7LCALLAG2LCALLAG2LCALLAG2AG9:MOVA#0C0HORLAR6MOVCOMALCALLPR0LCALLPR3LCALLAG2INCR6CJNER6#20HAG9LJMPAG6RETINT:MOVCOM#0E2H;;初始化子程序,复位LCALLPR0LCALLPR3MOVCOM#0A4H;;关闭休闲状态LCALLPR0LCALLPR3MOVCOM#0A9H;;设置1/32占空比LCALLPR0LCALLPR3MOVCOM#0A0H;;正向排序设置LCALLPR0LCALLPR3MOVCOM#0C0H;;设置显示起始行为第一行LCALLPR0LCALLPR3MOVCOM#0AFH;;开显示设置LCALLPR0LCALLPR3RETCLEAR:MOVR4#00H;;清屏子程序,页面地址暂存器设置CLEAR1:MOVAR4;;取页地址值ORLA#0B8H;;“或”页面地址设置代码MOVCOMA;;页面地址设置LCALLPR0LCALLPR3MOVCOM#00H;;列地址设置为“0”LCALLPR0LCALLPR3MOVR3#50H;;一页清80个字节CLEAD2:MOVDAT#00H;;显示数据为“0”LCALLPR1LCALLPR4DJNZR3CLEAD2;;页内字节清零循环INCR4;;页地址暂存器加1CJNER4#04HCLEAR1;;RAM区清零循环RETPR0:PUSHDPL;;写指令代码子程序(E1)PUSHDPHMOVDPTR#CRADD1PR01:MOVXA@DPTRJBACC.7PR01MOVDPTR#CWADD1MOVACOMMOVX@DPTRAPOPDPHPOPDPLRETPR1:PUSHDPL;;写显示数据子程序(E1)PUSHDPHMOVDPTR#CRADD1PR11:MOVXA@DPTRJBACC.7PR11MOVDPTR#DWADD1MOVADATMOVX@DPTRAPOPDPHPOPDPLRETPR2:PUSHDPL;;读显示数据子程序(E1)PUSHDPHMOVDPTR#CRADD1PR21:MOVXA@DPTRJBACC.7PR21MOVDPTR#DRADD1MOVXA@DPTRMOVDATAPOPDPHPOPDPLRETPR3:PUSHDPL;;写指令代码子程序(E2)PUSHDPHMOVDPTR#CRADD2PR31:MOVXA@DPTRJBACC.7PR31MOVDPTR#CWADD2MOVACOMMOVX@DPTRAPOPDPHPOPDPLRETPR4:PUSHDPL;;写显示数据子程序(E2)PUSHDPHMOVDPTR#CRADD2PR41:MOVXA@DPTRJBACC.7PR41MOVDPTR#DWADD2MOVADATMOVX@DPTRAPOPDPHPOPDPLRETPR5:PUSHDPL;;读显示数据子程序(E2)PUSHDPHMOVDPTR#CRADD2PR51:MOVXA@DPTRJBACC.7PR21MOVDPTR#DRADD2MOVXA@DPTRMOVDATAPOPDPHPOPDPLRETEND
4.课程设计总结通过两周的课程设计,让我感受最深的就是学习是一种乐趣在这次课程设计中,我们接触了一种新的工具,试验箱,它多样的功能激发了我们去学习它进而掌握它的乐趣从拿到任务书开始,我就充分利用网络及图书馆等资源查询资料,了解试验箱的功能在之前专业课理论知识的基础上,我又从模糊到熟悉逐渐了解了什么是单片机编程然而面对我的首要任务,我的想法,我的思路是什么?带着一系列问题,顺着这个方向我开始工作,因此我觉得目标和计划是很重要的,要时刻保持大脑的清醒在整个设计过程中,我发现了自己理论知识的不足,同时所学的知识掌握的不牢固,通过这次课程设计,不仅拓宽了我的知识面,还巩固和夯实了所学的理论知识,更纠正了一些知识点上的错误认识和理解其次,有一些问题,当我一个人面对的时候怎么都想不明白,可是跟其他人一起探讨时就迎刃而解了,这说明了团队合作的精神很重要回顾这两周的课程设计,我仍感慨良多,从理论到实践,在这段日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力还有团队合作的精神也很重要在今后的学习和生活中我将继续保持在此次课程设计中展现出来的谨慎、认真、踏实、有耐心、坚持不放弃的优良作风,任何事都要自己亲手去做才会觉得有成就感,没有付出是不会有回报的参考文献
[1]李广弟.单片机基础.北京北京航空航天大学,
2009.
[2]单片机综合仿真实验系统KeilC实验指导书.深圳深圳市雷迈特科技有限公司,
2012.课程设计成绩评定表成绩评定项目比例得分平时成绩(百分制记分)30%业务考核成绩(百分制记分)70%总评成绩(百分制记分)100%评定等级优良中及格不及格指导教师(签名)20年月日。