单片机课程设计说明书撰写

合集下载

单片机课程设计说明书撰写

单片机课程设计说明书撰写
软件编程
内容:设计一 个基于单片机 的控制系统, 实现特定的功

硬件设计:选 择合适的单片 机型号,设计 电路图,选择
元器件
软件编程:编 写程序,实现 对硬件的控制
和功能实现
测试和调试: 对设计进行测 试和调试,确 保其正常工作
报告撰写:撰 写课程设计说 明书,包括设 计思路、实现 方法、测试结
果等
08 课程设计总结与展望
课程设计总结和收获
课程设计过程:从选题、设计、实施 到总结,全面回顾
收获:理论知识与实践相结合,提高 了动手能力和解决问题的能力
团队合作:与团队成员共同完成项目, 提高了团队协作能力
创新思维:在课程设计中,培养了创 新思维和解决问题的能力
展望:对未来单片机课程的学习充满 信心,期待更多的实践机会和挑战
提高学生的实践能 力
培养学生的创新思 维和解决问题的能 力
帮助学生理解理论 知识在实际中的应 用
提高学生的团队合 作和沟通能力
课程设计的目标和要求
掌握单片机的基本原理和结构
学会使用单片机进行编程和调 试
理解单片机在控制系统中的应 用
提高解决问题的能力和创新能 力
课程设计的任务和内容
任务:完成一 个单片机课程 设计项目,包 括硬件设计和
复位电路:使单片 机在启动时处于已 知状态
晶振电路:为单片 机提供稳定的时钟 信号
输入输出接口电路 :实现单片机与外 部设备的通信
电路板制作和焊接
电路板设计:根据单片机硬件电路 设计要求,设计电路板布局和布线
焊接:选择合适的焊接工具和材料, 如电烙铁、焊锡、助焊剂等,进行 电路板焊接
添加标题
添加标题
模块化设计:将程序划分为 多个模块,每个模块负责特

单片机课程设计说明书(word文档+全!)

单片机课程设计说明书(word文档+全!)
编译工具:GCC、AVR Studio等
调试工具:J-Link、ST-Link等 仿真工具:Proteus、Multisim等 编程技巧:模块化编程、代码优化等
程序流程图设计与实现
流程图设计:根据 需求分析,设计出 流程图
流程图实现:根据 流程图,编写程序 代码
程序调试:对编写 的程序进行调试, 确保其正确运行
人工智能:单片机在人工智能领域的应用将更加深入,如智能机器人、智能语音识别等
医疗健康:单片机在医疗健康领域的应用将更加普及,如智能医疗设备、智能穿戴设备等 环保节能:单片机在环保节能领域的应用将更加重要,如智能能源管理、智能环保设备等
感谢您的观看
汇报人:
软件测试与优化
测试方法:单元测试、集成测试、系统测试等 测 试 工 具 : J U n i t 、 Te s t N G 、 S e l e n i u m 等 优化目标:提高代码质量、提高运行效率、降低资源消耗等 优化方法:代码重构、算法优化、性能调优等
课程设计总结与 展望
课程设计总结
课程设计目标:掌 握单片机基本原理 和编程方法
课程设计目的
掌握单片机的基本原理和应用
提高编程能力和硬件设计能力
培养创新思维和解决问题的能 力
提高团队合作和沟通能力
课程设计要求
课程设计 目的:掌 握单片机 原理和应 用技术
课程设计 内容:包 括硬件设 计和软件 设计两部 分
课程设计要 求:硬件设 计要求实现 特定功能, 软件设计要 求编写程序 实现特定功 能
调试步骤:根据测 试结果,对硬件进 行调试和优化
常见问题:信号 干扰、电源不稳 定、硬件故障等
解决方案:根据问题 原因,采取相应的解 决方案,如更换元器 件、调整电路参数等

单片机课程设计计划书(精选五篇)

单片机课程设计计划书(精选五篇)

单片机课程设计计划书(精选五篇)第一篇:单片机课程设计计划书机电科学与工程系电气自动化技术专业(专科)《单片机原理及接口技术课程设计》计划书一、目的及要求1.目的:通过本课程设计,•使学生进一步掌握单片机应用系统的硬、•软件开发方法,输入/输出(I/O)接口的扩展技术,应用程序设计技术并结合专业能设计简单、实用的单片机应用系统。

主要针对课堂重点讲授内容使学生加深对单片机硬件原理的理解及提高汇编语言程序设计的能力,提高学生的开发创新能力。

2.基本要求:重点研究单片机、A/D转换器、运算放大器、传感器、LED显示器、固态继电器、微型直流电机等元器件的特性、功能及使用方法;同时掌握主程序、子程序、中断服务程序框图的设计方法与汇编语言程序设计方法。

要求设计系统具有可靠性高、可维护、维修性好及检测精度高等优点。

设计内容可参考设计题目,也可根据自身情况自己拟定。

3.任务要求:了解控制对象、环境参数检测原理,在充分掌握单片机、A/D转换器、运算放大器、传感器、LED显示器、固态继电器、微型直流电机等元器件的工作原理、特性、功能及使用方法的基础上,创造性的、两人一组分工协作(一人偏软、一人偏硬)独立的设计本课题的内容。

二、设计内容、步骤及材料要求1.设计内容画出硬件原理图一张(A4号);软件框图(包括主程序框图、主要子程序框图、中断服务程序框图等)和系统初始化的汇编语言原程序。

提交不少于4000字的设计报告一份(A4纸)。

从整体方案的规划设计到各功能模块的设计,可实现功能及各元器件的选择,参数计算均需表述清楚。

报告的书写要清除工整,层次清晰,文字流畅。

后附5篇以上的参考文献。

2.设计步骤设计时间为5天,前2天进行硬件原理草图设计,指导教师审查之后用1天的时间再进行绘图;第四天进行软件框图(包括主程序框图、主要子程序框图、中断服务程序框图)的设计及系统初始化的汇编语言原程序的设计;第5天答辩。

3.设计图纸要求(1)硬件原理图的绘制:元件图正确、型号标注要准确、连线清楚.(2)软件框图的绘制:流程清晰。

(完整版)单片机技术毕业课程设计说明书范文

(完整版)单片机技术毕业课程设计说明书范文

郑州工业应用技术学院课程设计说明书题目:姓名:院(系):专业班级:学号:指导教师:成绩:时间:年月日至年月日郑州工业应用技术学院课程设计任务书题目: 电子秒表设计专业、班级学号姓名主要内容、基本要求、主要参考资料等:主要内容:利用单片机设计一个电子秒表,完成四位显示××.××秒,并具备开始计时、暂停、清零等功能。

基本要求:1.利用单片机设计一个电子秒表,完成四位显示××.××秒,并设定按钮完成开始计时、暂停、清零等功能。

2.利用proteus软件完成设计电路和仿真;3.掌握定时器的使用和数码管显示的方法;4.通过此次设计将单片机软硬件结合起来对程序进行编辑、校验,锻炼实践能力和理论联系实际的能力。

主要参考资料:[1]李全利,单片机原理及接口技术[M],高等教育出版社[2]王文杰,单片机应用技术[M],冶金工业出版社[3]朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社[4]单片机实验指导书,天煌教仪[5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社完成期限:指导教师签名:课程负责人签名:年月日目录1.引言 (1)2.方案设计与论证 (3)2.1 直流调速系统 (3)2.1 检测系统 (4)2.3显示电路 (9)2.4系统原理图 (9)3.硬件设计 (10)3.1 80C51单片机硬件结构 (10)3.2 最小应用系统设计 (11)3.3前向通道设计 (12)3.4后向通道设计 (15)3.5显示电路设计 (17)4.软件设计 (20)4.1主程序设计 (20)4.2显示子程序设计 (24)4.3避障子程序设计 (25)4.4软件抗干扰技术 (26)4.5“看门狗”技术 (28)4.6可编程逻辑器件 (29)5.测试数据、测试结果分析 (30)6.结论 (31)致谢 (31)参考文献 (32)附录A 程序清单 (33)附录B 硬件原理图 (41)1.引言随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

单片机课程设计任务书5(5篇)

单片机课程设计任务书5(5篇)

单片机课程设计任务书5(5篇)第一篇:单片机课程设计任务书5课程设计任务书学生姓名:石樊专业班级:光信科1102指导老师:陈梦苇工作单位:武汉理工大学理学院题目:定时闹铃的设计初始条件:电脑一台、protel作图软件、keilc51编译器、medwin仿真软件、isp在线编程软件要求完成的主要任务:(包括课程设计工作量及其技术要求以及说明书撰写等具体要求)1、技术要求:以89s51单片机为核心芯片,设计一个定时闹铃,要求如下:A、能够显示定时的时间;B、定时时间到让相应的发光二极管发光;2、主要任务:(1)复习有关课程,如数字电路、单片机等;(2)以89s51为核心,根据设计指标设计电路的框图;(3)根据要求设计出电路逻辑图和装配图;(4)查阅资料,确定所需各元器件型号和参数;(5)自拟调整测试方法,并调试电路使其达到设计指标要求;(6)撰写设计说明书,进行答辩。

3、撰写课程设计说明书:封面:题目,学院,专业,班级,姓名,学号,指导教师,日期任务书目录正文:1、技术指标;2、设计方案及其比较;3、实现方案;4、调试过程及结论;5、心得体会;6、参考文献时间安排:课程设计时间:18周:明确任务,查阅资料,初步设计电路原理图;19~20周:按照电路原理图布线,并调试通过。

按照要求撰写课程设计说明书。

指导教师签名:年月日系主任(或负责老师)签名:年月日第二篇:单片机课程设计任务书“单片机课程设计”任务书一、设计目的通过该课程设计,主要达到以下目的:①使学生增进对单片机系统的感性认识,加深对单片机理论方面的理解,为顺利完成毕业设计打基础。

②使学生掌握对单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口和串行口通讯等。

③进一步深化和巩固所学基础理论、专业知识及实验技能,提高学生的技术应用能力,使学生了解和掌握单片机应用系统的软、硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。

单片机课程设计说明书

单片机课程设计说明书

代码重构:简化代码结构, 提高可读性和可维护性
优化算法:提高程序运行效 率,减少资源消耗
性能测试:通过测试找出性 能瓶颈,进行针对性优化
错误处理:完善错误处理机制, 提高程序稳定性和可靠性
收获:掌握了单片机的基本原理和编程方法 收获:提高了解决问题的能力和创新能力 不足:对单片机的应用领域了解不够深入 不足:对单片机的性能和局限性认识不足
具备一定的硬件 设计和制作能力
能够独立完成课 程设计的任务和 要求
ห้องสมุดไป่ตู้
定义:单片机是 一种集成电路芯 片,将微处理器、 存储器、输入/输 出接口等集成在 一个芯片上
分类:根据指令 集和架构,可以 分为8位、16位、 32位等不同类型
应用:广泛应用 于工业控制、家 电、汽车电子等 领域
特点:体积小、 功耗低、可靠性 高、编程简单、 易于扩展等
,a click to unlimited possibilities
汇报人:
01
02
03
04
05
06
提高学生的实践能力 培养学生的创新思维和解决问题的能力 帮助学生理解单片机的工作原理和应用领域 为学生未来的职业生涯打下坚实的基础
单击添加项标题
智能家居:控制家电、照明、安防等
单击添加项标题
电路板设计:根据单片机功能需求,设计电路板布局和元件位置 电路板制作:使用PCB软件绘制电路板,然后进行蚀刻、打孔等工艺 元件焊接:将元器件按照电路板设计进行焊接,注意焊接顺序和焊接质量 电路板测试:焊接完成后,进行电路板测试,确保电路板功能正常
调试步骤:检查电源、检查 电路连接、检查信号输出等
电路图的绘制:使用 电路设计软件绘制电 路原理图,包括元件 符号、连线、注释等

单片机课程设计书写

单片机课程设计书写

单片机课程设计书写一、课程目标知识目标:1. 让学生掌握单片机的基本原理,包括其内部结构、工作原理及功能特点;2. 使学生了解单片机编程的基本语法和编程技巧,能运用C语言或汇编语言进行程序设计;3. 帮助学生掌握单片机外围电路的设计方法,能够根据实际需求选用合适的传感器和执行器。

技能目标:1. 培养学生运用所学知识分析和解决实际问题的能力,能够完成简单的单片机控制系统设计;2. 提高学生的动手实践能力,能够独立完成单片机程序的编写、调试及下载;3. 培养学生团队协作和沟通表达的能力,能够在项目设计中与其他同学进行有效合作。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其主动学习和持续探究的精神;2. 培养学生的创新意识,鼓励他们在设计中勇于尝试,发挥自己的想象力和创造力;3. 增强学生的责任心,使他们认识到所学知识在实际应用中的重要性,为我国电子科技事业的发展贡献力量。

分析课程性质、学生特点和教学要求,本课程将目标分解为具体的学习成果,以便后续的教学设计和评估。

通过本课程的学习,学生将能够独立完成简单的单片机控制系统设计,具备一定的编程和实践能力,为后续深入学习电子技术打下坚实基础。

同时,课程注重培养学生的团队协作和沟通能力,提高他们的综合素质。

二、教学内容本课程教学内容主要包括以下几部分:1. 单片机基础知识:介绍单片机的内部结构、工作原理及功能特点,使学生了解单片机的基本概念,为后续学习打下基础。

教材章节:第一章 单片机概述2. 单片机编程语言:讲解C语言和汇编语言的基本语法,编程技巧,使学生掌握单片机编程的基本方法。

教材章节:第二章 单片机编程语言3. 单片机外围电路设计:介绍常用传感器、执行器的工作原理,指导学生如何根据实际需求选用合适的器件并进行外围电路设计。

教材章节:第三章 单片机外围电路设计4. 单片机程序设计:通过实例分析,让学生掌握程序设计的方法,培养学生编程思维。

单片机课程设计说明书内容及格式要求

单片机课程设计说明书内容及格式要求

遇到的问题及解决方法
问题:硬件设计困难 解决方法:查阅相关资料,请教老师或同学 解决方法:查阅相关资料,请教老师或同学
问题:软件编程困难 解决方法:参加培训课程,请教老师或同学 解决方法:参加培训课程,请教老师或同学
问题:调试过程中出现错误 解决方法:仔细检查代码,查找错误原因 解决方法:仔细检查代码,查找错误原因
保护电路: 防止过压、 过流等异 常情况
元器件清单
单片机:型号、数量、功能
添加标题
输入设备:型号、数量、功 能
添加标题
其他辅助设备:型号、数量、 功能
电源:型号、电压、电流
添加标题
添加标题
添加标题
存储器:型号、容量、功能
添加标题
输出设备:型号、数量、功 能
添加标题
连接器:型号、数量、功能
电路板布线图
硬件测试方法与步骤
硬件测试的目的:验证硬件设计的正确性和稳定性
硬件测试的内容:包括电路设计、元器件选择、焊接工艺等
硬件测试的方法:包括功能测试、性能测试、可靠性测试等
硬件测试的步骤:制定测试计划、准备测试工具、执行测试、记录测试结果、分析测试数据、 编写测试报告等
04 软件设计
软件流程图
软件流程图是描述软件逻辑过 程的工具
社,2018年
2020年
相关图纸及源代码
电路板图:展示电路板布局 和元器件位置
电路原理图:展示电路设计 原理和布局
源代码:提供单片机程序源 代码,包括主程序、子程序

注释说明:对电路原理图和 源代码进行注释说明,便于
理解和使用
感谢您的观看
汇报人:
单片机课程设计说明 书大纲
,a click to unlimited possibilities
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机及控制系统》课程设计报告题目: LCD显示设计院(系):机电及自动化学院专业班级:电气工程及其自动化1204学生姓名:夏德君学号:20121131177指导教师:李思2015年 6 月 23日至2015年 7 月 3日华中科技大学武昌分校制《单片机及控制系统》课程设计任务书(2) LCD显示电路采用122×32A点阵式LCD液晶显示模块,内置SED1520液晶显示控制器,电路如图1所示。

图1 LCD显示电路(3) LCD及单片机的连接(如图2)1.摘要 (1)2.课程设计题目及要求 (2)2.1课程设计题目 (2)2.2课程设计要求 (2)3.设计分析 (2)3.1L C D显示原理 (2)3.2L C D显示电路 (2)3.3 LCD引脚说明……………………………………………………………33.4S E D1520的基本原理 (4)3.5S E D1520的指令系统 (5)3.6L C D及单片机的连接 (6)4.软件设计 (9)4.1程序流程 (9)4.2课程设计具体程序 (10)4.2.1L C D翻屏程序 (15)4.2.2L C D纵向滚屏程序 (29)4.2.3L C D横向滚屏程序 (39)5.总结....................................................................................参考文献 (3)1.摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于及控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

随着以计算机为轴心的各种各样信息处理装置的诞生,为适应这种新形势,信息家电,网络终端,广播-通信等用途的LCD市场也将迅速扩大,而且如今LCD发展方向不仅在于大屏幕,而且在中小屏幕方面,例如汽车导航系统,摄像机,数字式照相机,便携式电视,PDA(个人数字助理),娱乐/游戏机,摄影机等有着进一步的发展。

液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。

LCD可分为段式LCD、字符式LCD和点阵式LCD。

其中,段式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反转、闪烁等功能,用途十分广泛。

由此可见LCD的应用是如此广泛,所以用MPU控制液晶显示器是很普遍的应用。

本设计主要研究通过单片机控制来实现液晶模块字符的显示。

2. 课程设计题目及要求2.1课程设计题目LCD显示设计2.2课程设计要求了解122×32A点阵式LCD液晶显示的结构、工作原理、编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,按要求在LCD上显示内容。

具体显示效果为:(1)显示汉字:专业、姓名。

(2)实现显示内容的翻屏功能。

扩展:实现显示内容滚屏功能。

3.设计分析3.1 LCD显示的原理液晶是一呈液体状的化学物质,象磁场中的金属一样,当受到外界电场影响时,其分子会产生精确的有序排列。

如果对分子的排列加以适当的控制,液晶分子将会允许光线穿越。

无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。

位于最后面的一层是由荧光物质组成的可以发射光线的背光层。

背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层。

液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。

当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。

3.2 LCD显示电路图3-1 LCD显示电路3.3 引脚说明表3.1 LCD引脚说明3.4 SED1520的基本原理SED为内置液晶显示器控制器,集行、列驱动器和控制器及一体,广泛应用于小型液晶显示模块中,内置2560位显示RAM区(32行80列),RAM中的1位数据控制液晶屏上一个像素的亮暗,“1”为亮,“0”为暗。

图3-2 液晶显屏(1)0-60列为左半屏;61-121为右半屏。

(2)每半屏页数分配一致。

(3)每页含8行80列(80个字节)。

(前61列有效)(4)每半屏为32行,共4页。

(5)每个汉字占16行,即用2页才能写完。

(6)液晶屏上最多能显示两行汉字(静态时最多显示16字)。

3.5 SED1520的指令系统表3.2SED1520的13条指令3.6 LCD及单片机的连接页面地址设置01 0 1 1 1 0P1 P0(0-3)列地址设置000 C6 C5 C4 C3 C2 C1 C0(0-79)启动改写方式01 1 1 0 0 00 0结束改写方式01 1 1 0 1 11 0读取状态字01BUSY ADC ON/OFF RESET 0 0 0 0写显示数据 1数据读显示数据 11数据图3-3 LCD 及单片机的连接单片机及LCD 模块之间有四种基本操作: 写命令:R/W 接低电平即A7为0 读状态:R/W 接高电平即A7为1 写显示数据:A0 接高电平读显示数据:A0 接低电平表3.3单片机及LCD 模块之间有四种基本操作4. 软件设计E2 F800H F880H F840H F8C0H4.1程序流程图4-1 初始化程序图4-2 清屏子程序图4-3 显示主程序4.2课程设计具体程序4.2.1 LCD翻屏程序#include "reg51.h"#include "absacc.h"#include "intrins.h"#define PD1 61 /* 122/2 分成左右两半屏(122x32) */ unsigned char hang ;unsigned char Column;unsigned char Page_ ; /* 页地址寄存器 D1,DO:页地址 */ unsigned char Code_ ; /* 字符代码寄存器 */unsigned char Command; /* 指令寄存器 */unsigned char LCDData; /* 数据寄存器 */#define CWADD1 XBYTE[0xfa00] /* 写指令代码地址(E1) */#define DWADD1 XBYTE[0xfa40] /* 写显示数据地址(E1) */#define CRADD1 XBYTE[0xfa80] /* 读状态字地址(E1) */#define DRADD1 XBYTE[0xfac0] /* 读显示数据地址(E1) */#define CWADD2 XBYTE[0xf800] ///* 写指令代码地址(E//2#define DWADD2 XBYTE[0xf840] ///* 写显示数进地址(E#define CRADD2 XBYTE[0xf880] ///* 读状态字地址(E2#define DRADD2 XBYTE[0xf8c0] ///* 读显示数据地址(E2#define _Nop() _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_()/* 中文字模库 16x16点阵 */unsigned char code CCTAB[][32] ={/* 点阵:16x16提取点阵方向:纵向字节掉转:是字节方式:C语言 */0x20,0x20,0x24,0x24,0x24,0xE4,0x26,0x24, //武000x20,0xFF,0x20,0x22,0x2C,0x20,0x20,0x00,0x20,0x60,0x3F,0x20,0x20,0x1F,0x11,0x11,0x10,0x03,0x1C,0x20,0x40,0x80,0xE0,0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49, //昌010x49,0x49,0x49,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x01,0x00,0x00,0x04,0x04,0x04,0xE4,0x25,0x26,0x34,0x2C, //首02 0x24,0x26,0x25,0xF4,0x24,0x06,0x04,0x00,0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x30,0xC0,0x00,0x02,0x0C, //义030x00,0x80,0x60,0x18,0x06,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x20,0x11,0x0A,0x04,0x0A,0x11,0x10,0x20,0x60,0xC0,0x40,0x00,0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96, //学04 0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0xFE,0x22,0x5A,0x96,0x0C,0x24,0x24, //院05 0x25,0x26,0x24,0x34,0xA4,0x14,0x0C,0x00,0x00,0xFF,0x04,0x08,0x87,0x81,0x41,0x31,0x0F,0x01,0x3F,0x41,0x41,0x41,0x70,0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, //电06 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,0x40,0x20,0x58,0x47,0x54,0x54,0x54,0x54, //气07 0x54,0x54,0xD4,0x14,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x80,0x70,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, //工08 0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E, //程09 0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00,0x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49,0x49,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00,0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00, // -1-0a 0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00, // -2-0b 0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00, // -0-0c0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00, // -4-0d 0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFD,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0xFD,0x01,0x01,0x00,0x00,0x00,0x20,0x90,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x85,0x80,0x80,0x00,0x00,0x20,0x10,0x8C,0x63,0x04,0xF4,0x94,0x94,0xF4,0x9F,0xF4,0x94,0x94,0xF6,0x04,0x00,0x02,0x01,0xFF,0x00,0x42,0x32,0x02,0x3A,0x42,0x46,0x5A,0x42,0x62,0x12,0x62,0x00,0x10,0x10,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x12,0x18,0x10,0x00,0x40,0x20,0x10,0x0C,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00/* 1.写指令代码子程序(E1) */void WriteCommandE1(){//while(IN(CRADD1) & 0x80); //实际的液晶操作中可以不判断是否忙CWADD1=Command;_Nop();}/* 2.写显示数据子程序(E1) */void WriteDataE1(){//while(IN(CRADD1) & 0x80);DWADD1=LCDData;_Nop();}/* 4.写指令代码子程序(E2) */void WriteCommandE2(){//while(IN(CRADD2) & 0x80); CWADD2=Command;_Nop();}/* 5.写显示数据子程序(E2) */ void WriteDataE2(){//while(IN(CRADD2) & 0x80); DWADD2=LCDData;_Nop();}/* 初始化程序 */void Init(){Command = 0xe2;WriteCommandE1();WriteCommandE2();Command = 0xa4;WriteCommandE1(); WriteCommandE2();Command = 0xa9; WriteCommandE1(); WriteCommandE2();Command = 0xa0; WriteCommandE1(); WriteCommandE2();Command = 0xc0; WriteCommandE1(); WriteCommandE2();Command = 0xaf; WriteCommandE1(); WriteCommandE2(); }/* 清屏 */void Clear(){unsigned char i,j;i = 0;do {Command = (i + 0xb8);/* 页地址设置 */WriteCommandE1();WriteCommandE2();Command = 0x00; /* 列地址设置为"0" */ WriteCommandE1();WriteCommandE2();j = 0x50; /* 一页清 80个字节 */ do {LCDData = 0x00; /* 显示数据为"0" */WriteDataE1();WriteDataE2();}while(--j !=0); /* 页内字节清零循环 */}while(++i !=4); /* 页地址暂存器加一 */ /* 显示区清零循环 */}/*延时函数*/void delay1(){unsigned int i;for(i=0;i<=50000;i++);}void delay2(){unsigned int i;for(i=0;i<=5000;i++);}/* 中文显示子程序 */void WriteCHN8x16(){unsigned char i,j,k;i = 0;j = 0;while(j<2) {Command = ((Page_ + j) & 0x03) | 0xb8; /* 设置页地址 */ WriteCommandE1();WriteCommandE2();k = Column; /* 列地址值 */while(k < Column + 8){if (k < PD1) { /* 为左半屏显示区域(E1) */ Command = k;WriteCommandE1(); /* 设置列地址值 */LCDData = CCTAB[Code_][i]; /* 取汉字字模数据 */WriteDataE1(); /* 写字模数据 */} else{ /* 为右半屏显示区域(E2) */ Command = k-PD1;WriteCommandE2(); /* 设置列地址值 */LCDData = CCTAB[Code_][i]; /* 取汉字字模数据 */WriteDataE2(); /* 写字模数据 */};i++;if( ++k >= PD1 * 2) break; /* 列地址是否超出显示范围 */ } ;j++;};}/* 中文显示程序 *//*闪烁(延时delay1,delay2)*/ void main(){Init();Clear();delay2();while(1){Clear();for(i=31;i>0;i--){hang=0xc0+i;Command = hang; WriteCommandE1();WriteCommandE2();Column = 0x00;Code_ = 0x00;WriteCHN16x16();Column = 0x10;WriteCHN16x16();Column = 0x20; Code_ = 0x02;WriteCHN16x16();Column = 0x30; Code_ = 0x03;WriteCHN16x16();Column = 0x40; Code_ = 0x04;WriteCHN16x16();Column = 0x50; Code_ = 0x05;WriteCHN16x16();Code_ = 0x06;WriteCHN16x16();Column = 0x10; Code_ = 0x07;WriteCHN16x16();Column = 0x20; Code_ = 0x08;WriteCHN16x16();Column = 0x30; Code_ = 0x09;WriteCHN16x16();Column = 0x40; Code_ = 0x0a;WriteCHN8x16();Column = 0x48;Code_ = 0x0b;WriteCHN8x16();Column = 0x50;Code_ = 0x0c;WriteCHN8x16();Column = 0x58;Code_ = 0x0d;WriteCHN8x16();Page_ = 0x02; //“夏”,0e Column = 0x30;Code_ = 0x0e;WriteCHN16x16();Page_ = 0x02; //“德”,0f Column = 0x40;Code_ = 0x0f;WriteCHN16x16();Page_ = 0x02; //“君”,10Column = 0x50;Code_ = 0x10;WriteCHN16x16();delay1();}}}4.2.2LCD纵向滚屏程序#include "reg51.h"#include "absacc.h"#include "intrins.h"#define PD1 61 /* 122/2 分成左右两半屏(122x32) */ unsigned char hang ;unsigned char Column;unsigned char Page_ ; /* 页地址寄存器 D1,DO:页地址 */ unsigned char Code_ ; /* 字符代码寄存器 */unsigned char Command; /* 指令寄存器 */unsigned char LCDData; /* 数据寄存器 */#define CWADD1 XBYTE[0xfa00] /* 写指令代码地址(E1) */#define DWADD1 XBYTE[0xfa40] /* 写显示数据地址(E1) */#define CRADD1 XBYTE[0xfa80] /* 读状态字地址(E1) */#define DRADD1 XBYTE[0xfac0] /* 读显示数据地址(E1) */#define CWADD2 XBYTE[0xf800] ///* 写指令代码地址(E//2#define DWADD2 XBYTE[0xf840] ///* 写显示数进地址(E#define CRADD2 XBYTE[0xf880] ///* 读状态字地址(E2#define DRADD2 XBYTE[0xf8c0] ///* 读显示数据地址(E2#define _Nop() _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ ()/* 中文字模库 16x16点阵 */unsigned char code CCTAB[][32] ={/* 点阵:16x16提取点阵方向:纵向字节掉转:是字节方式:C语言 */0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, //电06 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,0x40,0x20,0x58,0x47,0x54,0x54,0x54,0x54, //气07 0x54,0x54,0xD4,0x14,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x80,0x70,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, //工08 0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E, //程09 0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00,0x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49,0x49,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00,0x00,0x01,0x01,0xFD,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0xFD,0x01,0x01,0x00,0x00,0x00,0x20,0x90,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x85,0x80,0x80,0x00,0x00,0x20,0x10,0x8C,0x63,0x04,0xF4,0x94,0x94,0xF4,0x9F,0xF4,0x94,0x94,0xF6,0x04,0x00,0x02,0x01,0xFF,0x00,0x42,0x32,0x02,0x3A,0x42,0x46,0x5A,0x42,0x62,0x12,0x62,0x00,0x10,0x10,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x12,0x18,0x10,0x00,0x40,0x20,0x10,0x0C,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00};/* 1.写指令代码子程序(E1) */void WriteCommandE1(){//while(IN(CRADD1) & 0x80); //实际的液晶操作中可以不判断是否忙CWADD1=Command;_Nop();}/* 2.写显示数据子程序(E1) */ void WriteDataE1(){//while(IN(CRADD1) & 0x80); DWADD1=LCDData;_Nop();}/* 4.写指令代码子程序(E2) */ void WriteCommandE2(){//while(IN(CRADD2) & 0x80); CWADD2=Command;_Nop();}/* 5.写显示数据子程序(E2) */ void WriteDataE2(){//while(IN(CRADD2) & 0x80); DWADD2=LCDData;_Nop();}/* 初始化程序 */ void Init(){Command = 0xe2; WriteCommandE1(); WriteCommandE2();Command = 0xa4; WriteCommandE1(); WriteCommandE2();Command = 0xa9; WriteCommandE1(); WriteCommandE2();Command = 0xa0; WriteCommandE1(); WriteCommandE2();Command = 0xc0; WriteCommandE1();WriteCommandE2();Command = 0xaf;WriteCommandE1();WriteCommandE2();}/* 清屏 */void Clear(){unsigned char i,j;i = 0;do {Command = (i + 0xb8);/* 页地址设置 */WriteCommandE1();WriteCommandE2();Command = 0x00; /* 列地址设置为"0" */ WriteCommandE1();WriteCommandE2();j = 0x50; /* 一页清 80个字节 */ do {LCDData = 0x00; /* 显示数据为"0" */WriteDataE1();WriteDataE2();}while(--j !=0); /* 页内字节清零循环 */}while(++i !=4); /* 页地址暂存器加一 */ /* 显示区清零循环 */}/*延时函数*/void delay1(){unsigned int i;for(i=0;i<=20000;i++);}void delay2(){unsigned int i;for(i=0;i<=20000;i++);}/* 中文显示子程序 */void WriteCHN16x16(){unsigned char i,j,k;i = 0;j = 0;while(j<2) {Command = ((Page_ + j) & 0x03) | 0xb8; /* 设置页地址 */ WriteCommandE1();WriteCommandE2();k = Column; /* 列地址值 */while(k < Column + 16){if (k < PD1) { /* 为左半屏显示区域(E1) */ Command = k;WriteCommandE1(); /* 设置列地址值 */LCDData = CCTAB[Code_][i]; /* 取汉字字模数据 */WriteDataE1(); /* 写字模数据 */} else{ /* 为右半屏显示区域(E2) */ Command = k-PD1;WriteCommandE2(); /* 设置列地址值 */LCDData = CCTAB[Code_][i]; /* 取汉字字模数据 */WriteDataE2(); /* 写字模数据 */};i++;if( ++k >= PD1 * 2) break; /* 列地址是否超出显示范围 */ } ;j++;};}/* 中文显示程序 *//*闪烁(延时delay1,delay2)*/void main(){unsigned char i;Init();Clear();while(1){Clear();for(i=31;i>0;i--){hang=0xc0+i;Command = hang&0x1f|0xc0; WriteCommandE1();WriteCommandE2();Column = 0x00;Code_ = 0x00;WriteCHN16x16();Column = 0x10;Code_ = 0x01;WriteCHN16x16();Column = 0x20;Code_ = 0x02;WriteCHN16x16();Column = 0x30;Code_ = 0x03;WriteCHN16x16();Column = 0x40; Code_ = 0x04;WriteCHN16x16();Column = 0x50; Code_ = 0x05;WriteCHN16x16();Column = 0x60; Code_ = 0x06;WriteCHN16x16();delay1();}}}4.2.3LCD横向滚屏程序#include "reg51.h"#include "absacc.h"#include "intrins.h"#define PD1 61 /* 122/2 分成左右两半屏(122x32) */ unsigned char hang ;unsigned char Column;unsigned char Page_ ; /* 页地址寄存器 D1,DO:页地址 */ unsigned char Code_ ; /* 字符代码寄存器 */unsigned char Command; /* 指令寄存器 */unsigned char LCDData; /* 数据寄存器 */#define CWADD1 XBYTE[0xfa00] /* 写指令代码地址(E1) */#define DWADD1 XBYTE[0xfa40] /* 写显示数据地址(E1) */#define CRADD1 XBYTE[0xfa80] /* 读状态字地址(E1) */#define DRADD1 XBYTE[0xfac0] /* 读显示数据地址(E1) */#define CWADD2 XBYTE[0xf800] ///* 写指令代码地址(E//2#define DWADD2 XBYTE[0xf840] ///* 写显示数进地址(E#define CRADD2 XBYTE[0xf880] ///* 读状态字地址(E2#define DRADD2 XBYTE[0xf8c0] ///* 读显示数据地址(E2#define _Nop() _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ ()/* 中文字模库 16x16点阵 */unsigned char code CCTAB[][32] ={/* 点阵:16x16提取点阵方向:纵向字节掉转:是字节方式:C语言 */0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, //电060x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,0x40,0x20,0x58,0x47,0x54,0x54,0x54,0x54, //气070x54,0x54,0xD4,0x14,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x80,0x70,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, //工080x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x20,0x7E, //程09 0x42,0x42,0x42,0x42,0x42,0x7F,0x02,0x00,0x08,0x06,0x01,0xFF,0x00,0x43,0x41,0x49,0x49,0x49,0x7F,0x49,0x4D,0x69,0x41,0x00,0x00,0x01,0x01,0xFD,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0xFD,0x01,0x01,0x00,0x00,0x00,0x20,0x90,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x85,0x80,0x80,0x00,0x00,0x20,0x10,0x8C,0x63,0x04,0xF4,0x94,0x94,0xF4,0x9F,0xF4,0x94,0x94,0xF6,0x04,0x00,0x02,0x01,0xFF,0x00,0x42,0x32,0x02,0x3A,0x42,0x46,0x5A,0x42,0x62,0x12,0x62,0x00,0x10,0x10,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0x92,0xFF,0x12,0x18,0x10,0x00,0x40,0x20,0x10,0x0C,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFE,0x04,0x00,0x00};/* 1.写指令代码子程序(E1) */void WriteCommandE1(){//while(IN(CRADD1) & 0x80); //实际的液晶操作中可以不判断是否忙CWADD1=Command;_Nop();}/* 2.写显示数据子程序(E1) */void WriteDataE1(){//while(IN(CRADD1) & 0x80);DWADD1=LCDData;_Nop();}/* 4.写指令代码子程序(E2) */void WriteCommandE2(){//while(IN(CRADD2) & 0x80);CWADD2=Command;_Nop();}/* 5.写显示数据子程序(E2) */ void WriteDataE2(){//while(IN(CRADD2) & 0x80); DWADD2=LCDData;_Nop();}/* 初始化程序 */void Init(){Command = 0xe2;WriteCommandE1();WriteCommandE2();Command = 0xa4;WriteCommandE1();WriteCommandE2();。

相关文档
最新文档