基于凌阳单片机和lcd的电子钟设计内容摘要:
过对 PS、 C86引脚接不同的电平来选择操作的时序( 8080操作时序接线图: (PS接 VDD,C86接 VSS) , 6800操作时序接线图: (PS接 VDD, C86接 VDD) ,行操作时序接线图: (PS接 VSS,C86接 VSS或 VDD都可 ) )。 SPLC501液晶显示模组中,设置了 PS和 C86的跳线,供用户选择操作时序。 毕业设计 19 第四章 系统软件设计 软件的结构 下图中可以看出各文件之间的调用关系。 图 11 软件结构 数字钟主要还是软件实现的,数字钟的软件设计由以下程序构成: :实现 系统的初始化、显示开机画面、键盘扫描和语音播报; :包含工程中大部分的功能函数,包括各种界面的显示、时间和日期的调整、秒表的调整、闹钟的时间设定、闹钟的铃声选择等; :键盘扫描文件,文件中定义了键盘扫描函数、延时函数、用来实现对键盘的扫描等功能、键盘扫描采用查询方式; :中断服务函数文件,实现语音解码、秒表以及时间、日期的修改; :语音播报函数,实现语音播报日期、时间以及闹钟。 毕业设计 20 各模块程序的说明 概述 由于凌阳 SPCEA061A,使得外围电路变的更简单。 制作好系统的硬件电路后,整个系统的主体任务主要落在了程序的编写上。 SPCE061A 是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。 在此环境中,支持标准 C语言,可以实现 C 语言与汇编语言的互相调用,并且,提供了语音录放和语音识别的函数库,只要了解库函数的使用方法,就可以很容易完成语音录放,为软件开发提供了方便的条件。 此次系统采用了模块程序结构,模块程序结构包括了初始化,系统主程序模块,语音播放模块,显示模块。 C 语言属于高级语言 ,有着汇编语言无法比拟的优点,而 SPCE061A 开发系统抓住了这个关键,两者结合,充分发挥各自的优势。 在用到语音的时候,一般都是用 C 语言作为主程序,用汇编语言编制各种模块,供主程序调用。 本系统采用了这种编制方法使得相互调用非常简单。 主程序 主 程序流程如图 12所示,在主程序中初始化了整个工程中用到的变量,初始化了液晶显 示模块。 开 2Hz中断实现计时。 在主程序中调用了键盘扫描程序,对 IOA口的低三位进行扫描,如果有键按下,就把相应的键值存入到一个变量中,通过主程序来判断是哪个键按下,并执行相应的功能 :若是 KEY1键按下,则会进入功能选择菜单,此时 KEY1就会为确定键, KEY2为下翻键, KEY3为上翻键;若是 KEY2键按下,播报时间;若是 KEY3键按下,播报当前的日期; KEY KEY3键同时按下控制闹钟的开 /关。 毕业设计 21 图 12 主程序流程图 中断服务程序 中断服务程序有三个:一个是 2Hz中断服务程序,用来计时;一个是 1KHz中断服务程序,用于秒表计时;另外一个是 FIQ中断服务程序,用来播放语音。 程序的流程分别如图 1图 1图 15。 毕业设计 22 图 13 IRQ5时基中断流程图 另外一个是 FIQ中断服务程序,用来播放语音。 图 14 IRQ4时基中断流程图 毕业设计 23 图 15 FIQ中断程序 时间日期模块 时间日期程序模块的流程图如图 16所示 ,该模块用到了 2Hz的时基中断,用来实现计时,同时实现了日期的更新,其中农历是使用查表的方法来实现的。 毕业设计 24 图 16 时间日期模块流程图 SPLC501 液晶显示模组显示汉字 利用 SPLC501 液晶显示模组显示汉字比显示英文字符稍微复杂一点,因为英文字符在 ASCII 码中都有对应字符,而 SPLC501 液晶显示模组显示的都是 ASCII 码,汉字却不能与 ASCII 码对应,所以要先用字模提取工具把汉字提取成字模数据,才能显示。 利用 SPLC501 液晶显示模组显示汉字需要图 17的操作过程。 新建一个工程;利用字模提取工具提取字模数据;把字模数据文件保存在工程文件夹,以方便工程调用;添加字模数据文件到毕业设计 25 工程,程序可以直接使用这些字模数据;拷贝并添加驱动程序文件;编写程序;运行显示。 利用SPLC501 液晶显示模组显示汉字的过程见 图 17,和显示英文字符的方法类似,所不同的是显示汉字的 API 函数为 LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word)。 图 17 利用 SPLC501液晶显示模组显示汉字需要的操作过程。 为了使用户能够方便快速地使用 SPLC501液晶显示模组,凌阳大学计划提供了基于SPCE061A单片机的 SPLC501液晶显示模组的驱动程序,包括文本显示、几何图形绘制和位图显示等功能函数, SPLC501液晶显示模组的驱动程序架构如图所示: 毕业设计 26 图 18 驱动程序架构 驱动程序由 5个文件组成,分别为:底层驱动程序文件: ;用户 API 功能接口函数文件: 、 、。 :该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对 SPCE061A与 SPLC501液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。 :该文件为底层驱动程序,负责与 SPLC501液晶显示模组进行数据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供,不建议用户在应用程序中调用这些函数。 :该文件为用户 API功能函数文件的头文件,主要对一些记住符进行定义,以及配置 LCD的一些设置,另外该文件里还对 ,用户需要使用 LCD的 API功能函数时,需要把该文件包含在用户的 C文件中,好可调用。 :文件中定义了针对 LCD显示的各种 API功 能函数。 :该文件中提供了一些供 API功能函数调用的数据处理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。 常用功能函数介绍(用户 API) ,包括:液晶显示控制函数、文本显示、图形显示等;下面介绍部分常用功能函数: 液晶显示控制类: 1, LCD501_Init 液晶初始化 程序: LCD501_Init(unsigned int InitialData) 描述:液晶显示初始化函数 参数: unsigned int InitialData 初始化显示的字,低八位有效 毕业设计 27 返回:无 注意:在使用 LCD前,首先应执行该函数,使 LCD处于可以正常显示的状态 2, LCD501_ClrScreen 清屏 程序: LCD501_ClrScreen(unsigned int Mode) 描述:液晶整屏清屏函数 C语言调用 参数: unsigned int Mode 清屏类型 Mode=1则全点亮, Mode=0内全清零 3, LCD501_ReverseColor 显示翻转 程序: void LCD501_ReverseColor(void) 描述:屏幕反色显示。 每执行一次该函数,屏幕颜色翻转一次 5, LCD501_GetPaintMode 获取当前显示模式 程序: unsigned int LCD501_GetPaintMode(void) 描述:设置图形显示模式 参数:无 返回: ModeCode 图形显示模式,可以是下列数值之一: 0 PAINT_COVER: 1 PAINT_SET: 2 PAINT_CLR: 3 PAINT_REV: 4 PAINT_RECO: 注意:无 文本显示 类函数: 1, LCD501_FontSet 设置文本字体 毕业设计 28 程序: void LCD501_FontSet(unsinged int Font) [8x16] [6X8] 描述 ::选择显示字符的大小类型 参数: Font 字符的类型选择 1 8X16 0 6X8 返回:无 注意:只针对显示驱动中包含的 ASCII码显示 2, LCD501_FontGet 获取当前文本字体 程序: unsigned int LCD501_FontGet(void) [8x16] [6X8] 描述:获取当前显示字符的大 小类型 返回:字符的类型选择 1 8X16 0 6X8 注意:只针对显示驱动中包含的 ASCII码显示 3, LCD501_PutChar 显示单个字符 程序: void LCD501_PutChar(int x,int y,unsigned int a) [8x16] [6X8] 描述:显时 8X1 6X8的自带 ASCII字符,任意行定位 参数: x 显示字符的起始列( 0~128) y 显示字符的起始行( 0~63) a ASCII码 返回:无 注意:无 4, LCD501_PutString 显 示字符串 程序: void LCD501_PutString(int x,int y,unsigned int a) [8x16] [6X8] 描述:显时 8X1 6X8的自带 ASCII字符,任意行定位 参数: x 显示字符的起始列( 0~128) y 显示字符的起始行( 0~63) a ASCII码 毕业设计 29 返回:无 注意:无 5, LCD501_Bitmap 位图显示 /汉字显示 程序: void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word) 描述: DM Tool取的汉字字模、位图字模显示函数 参数: x 显示字符的起始列( 0~128) y 要显示的字模的起始行( 0~64y_whide) *word 要显示的汉字字模的数据首地址 返回:无 注意:只显示用 DM Tool取字模软件所取的汉字字模数据;该函数可以在指定位置显示位图。 参数 x和 y是位图的左上角坐标。 word是 “ 位图数据 ” 的起始地址。 “ 位图数据 ” 的第一个 Word声明了位图的大小,低 8位代表位图宽度,高 8位代表位图高度。 如 0x172B表示位图的宽为 43像素,高为 23像 素。 从第二个 Word开始描述位图每个点的颜色( 1黑色, 0白色)。 点对应每个数据位的情况为:从下到上,自左到右,以 WORD( 16bit)为存储单位,不足 16位的补 0。 可以利用凌阳大学计划提供的 DM Tool字模提取工具提取出汉字或 BMP图像的字模数据,然后直接引用由其生成的字模数组 3SPLC5401液晶显示模组控制流程 ,利用模组资料中提供的 SPLC501液晶显示模组驱动程序进行 LCD显示编程时,一定要在调用文本显示或图形显示函数,以及控制类函数前调用 LCD的初始化函数;在 LCD初始化程序中,会进行端口初 始化 、 LCD初始设置以及变 量初始化等。 毕业设计 30 第五章 操作步骤 软件的操作步骤 LCD 汉字显示操作步骤 Tool 字模提取工具与显示英文字符( ASCII 码)不同,汉字不能直接显示在点阵的 LCD 显示器上,而是要借助一个工具,先把汉字转换成 LCD 显示器能显示的形式。 凌阳科技教育推广中心提供了针对 unSP 系列 16 位单片机的字模数据提取工具 —— DM Tool;可以利用此工具提取汉字字模、 BMP 位图字模,还可以很方便地提取 ASCII 码字模。 DM Tool 在大学计划网站SPLC501 液晶模组资料里提供。 下面介绍利用 DM Tool 字模提取工具提取汉字字模的步骤。 第一步:安装好 DM Tool 后,在 [开始 ]�[程序 ]�[sunplus]�[DM Tool]打开 DM。 图 19 DM Tool 界面 第二步:选择 [File]— [News]菜单项,新建工程,如图 20所示: 毕业设计 31 图 20 新建工程 选择后,即新建了一个工程;如图 21所示。 用户可以选择 [File]菜单中的 [Save]菜单项来保存 工程,也可以直接对工程进行操作,进行字模数据提取的操作。 图 21 新 建了一个工程 第三步:在输入区中输入汉字:列如罗江波波制作这时利用快捷键组合:“ Ctrl+Enter”,完成汉字的输入操作,可以看到转换列表中出现“罗江波波制作”四个汉字的列表,而在操作区毕业设计 32 中也会出现汉字的点阵图。 第四步: 进行字模数据的提取。 选择菜单 [File]中的 [Export CChar file…] 菜单项,或者直接用工具栏最右边的“ Export”工具,打开字模数据生成窗口。 第五步:在字模数据生成窗口中,选择 [File]菜单中的 [Export CChar file]菜单项,或工具栏中的“ Export CChar file”工具,开始生成数据,即打开了“ E。基于凌阳单片机和lcd的电子钟设计
相关推荐
储器。 在 FLASH 编程期间,此引脚也用于施加 12V编程电源( VPP)。 ( 11) XTAL1:反向振荡放大器的输 入及内部时钟工作电路的输入。 ( 12) XTAL2:来自反向振荡器的输出 【 6】。 片内 振荡器: 该反向放大器可以配置为片内振荡器 ,如图 32 所示。 长春理工大学光电信息学院毕业设计 6 图 32 片内 振荡器 芯片擦除: 整个
0。 高优先级 SETB IT1。 外部中断 1 为跳沿触发 SETB PX1。 高优先级 SETB EX1。 允许外部中断 1 中断 SETB EX0。 允许外部中断定 0 中断 SETB EA。 开中断总开关 SETB TR1。 定时器 1 开始工作,作中断用 SETB OUT。 音频输出端口初始化。 ***********************************。 设置结束 CLR
南京工业大学本科生毕业设计 (论文 ) 3 第二章 步进电机简介 步进电机概念 步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁装置,是一种特殊的电动机。 一般电动机是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每次给它一个脉冲,它就转过一个固定的角度。 步进电动机的角位移量和输入的脉冲个数成正比,在时间上与输入脉 冲同步
內呼去 1 楼 开关门有效内呼 M222 內呼去 2 楼 M223 內呼去 3 楼 M224 內呼去 4 楼 M225 內呼去 5 楼 6 电梯的上升和下降是由一台交流电机来完成的。 如图所示, KM KM2为电机正反转接触器,用以实现电梯的上升和下降控 制。 KM3 为电梯减速运行接触器,用以实现电梯的减速控制,当电梯收到停层指示后, KM3断电释放,串入阻抗,使电路的电流减小
下所示: (1) 信号引脚的功能介绍 ① 输入 /输出口线 ~ P0 口的 8位双向口线; ~ P1 口的 8位双向口线; ~ P2 口的 8位双向口线; ~ P3 口的 8位双向口线。 ② ALE 地址锁存控制信号 在系统扩展时, ALE 用于控制把 P0 口输出的低 8位地址送入锁存器锁存起 来,以实现低位地址和数据的分时传送,此外由于 ALE 是以六分之一的晶振频率的固定频率输出正脉冲
动补偿、汽车图象摄影对比安全检测、自动消防灭火系统等。 在我国的停车产业发展中还存在一些问题,如没有统一的技术标准;多数产品是仿效或引进国外技术制造,技术水平低;缺少具有一定规模的企业,生产能力不足;市场竞争无序,个别企业为抢占市场,采取低价竞争;缺少科研 设计单位的参与,技术创新能力严重不足;政策不配套,对停车产业发展和管理严重滞后等。 解决上述问题,需要我们在政策市场