范文1(请套用该范文格式) - 图文

2026/4/27 22:09:33

广东海洋大学寸金学院2013年课程考查(论文)

图3-4电源模块

第4章 软件设计

4.1主程序流程

主程序开始初始化,并打开中断,然后执行扫描闹钟、键盘及读取18B20值。当有S1键按下时,执行时钟设置,当有S4键按下时,则进入闹钟设置,无论是时钟还是闹钟,设置完后退出,温度、时钟恢复实时显示。主程序流程图如图4-1所示:

初始化开中断 读18b20 S1或S2是否按下 扫描闹钟 显示温度 设置闹钟 显示温度 设置时间

图4-1主程序流程图

4.2 时间设置子流程

通过单片机判断S1按下的次数来设置,由s1num标志位来记录次数,用if语句判断执行命令。系统程序不断扫面键盘,当s1键按下后产生一个低电平,即s1num加一。在调节时间之前首先进行各个变量初始化,及设置起始时间,同时为读取数据作准备。当s1=1时进入秒的设置,地址指针指向miao显示位置处,通过两个if语句分别循环控制显示秒数的加和减。当s1=2时,地址指针指向fen显示位置处,变量最大值为59。当s1=3时,地址指针指向shi显示位置处,变量最大值设为23。当s1=4时,地址指针

12

广东海洋大学寸金学院2013年课程考查(论文)

指向week显示位置处,最大值设为7,1至7分别用MON、TUE、WED、THU 、FRI、SAT、SUN字符串显示。随着s2、s3值的的变化显示不同的字符串。当s1=5时,地址指针指向day显示位置,变量最大值为31。当s1=6时,地址指针指向month显示位置,变量最大值为12。

当s1=7时,地址指针指向year显示位置,最大值为99。

S1=1秒 S1=2分 S1=7月 S1=8退出 S2调加秒 S3调减秒 S2调加年 S3调减年

图4-2时间设置流程图

4.3闹钟设置子程序流程

时间设置程序流程图如图4-3所示。在开始时间设置之前程序会关闭全局中断,直至设置结束,中断又会重新开启,进入计时状态。

闹钟的设置时通过S1键的按下次数来判断的。当单片机检测到S4键按下一次时则进入闹钟设置界面,光标并自动跳到秒设置位置,可以对秒进行设置,当S1键依次按下1、2、3次时,则分别进入闹钟的秒、分、时关的设置。:

S4=1设置闹钟 S4=2退出设置 S1=1调节秒 S1=2调节分 S1=3调节时 S1=4退出

图4-3闹钟设置流程图

4.4程序设计问题

4.4.1 按键抖动问题

13

广东海洋大学寸金学院2013年课程考查(论文)

按键在按下时因为机械原因会产生抖动,抖动的后果就是当按下一次按键时因为抖动的原因让系统读取到多次的按键按下的次数,由此导致设置时出现错误。解决的方法如下:当按键按下时读取按键键值,若5ms后键值和按下是相等,则确认为有效按键,以此消除按键抖动带来的问题。

4.4.2 蜂鸣器设置

蜂鸣器报警时,设置响100毫秒,停100毫秒,循环响应,产生滴滴的声音。

4.4.3 液晶显示器设置

初始化设置

显示模式设置

写入指令码write_com(0x38),设置功能16*2显示,5*7点阵,8位数据接口 显示/开关及光标设置

8) 写入指令码write_com(0x0c),设置开显示,不显示光标,光标不闪烁。 16) 写入指令码write_com(0x06),设置当读或写一个字符后地址指针加一,且光

标加一。当写一个字符,整屏显示不移动。 显示清屏,写入指令码write_com(0x01)。

写入指令码函数write_com()写指令过程 :输入:rs=0,D0-D7=指令码,E=高脉冲 写入数据函数 write_date() 写指令过程: 输入:rs=1,D0-D7=数据,E=高脉冲 写入指令和数据时rw端已经接地。

数据指针设置 指令码80H+地址码(0-27H)显示第一行的字符 指令码80H+地址码(40H-67H)显示的第二行字符

4.4.4中断设置

EA=1;//打开总中断 EX1=1;//打开外部中断

IT1=1;//设置负跳变沿触发中断

当闹钟到点时响应外部中1 时间到时IRQ端从高阻态转为低电平,此时读一次c寄存器清除IRQ端的输出,等待下一次定时。

void exter() interrupt 2 //外部中断1服务程序 {

uchar c;//进入中断表示闹钟时间到

14

广东海洋大学寸金学院2013年课程考查(论文)

flag_ri=1; //设置标志位,用以大程序中报警

c=read_ds(0x0c);//读取12c887c寄存器表示响应了中端 }

第5章 测试

5.1测试软件介绍

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及 Monitor-51、RTX51实时操作系统。

5.2软件调试

应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File-New?,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-Open?,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project?,

15


范文1(请套用该范文格式) - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 范文1(请套用该范文格式) - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219