无线遥控的电子时钟带温度显示(7)

2019-08-01 22:46

九江学院学士学位论文

4.3 Keil程序设计

汇编语言是面向硬件的低级语言,更容易被计算机识别,且汇编执行速度快,但是功能少。相对于面向对象的C语言等高级语言来说,汇编的数据存储方式、寻址方式比较复杂,而且C语言功能强大,编译也方便。所以本次红外遥控电子密码锁软件设计采用C语言编写程序。 4.3.1 概述

C语言是一种编译型语言,兼顾了多种高级语言的特点,并且具备了汇编语言的功能书写格式比较自由,具有较高的移植性,有丰富的运算符和数据类型,极大地方便了程序设计。同时它具有丰富的功能函数,运算速度快、编译效率高,能直接对系统硬件控制。目前C语言已经成为单片机及嵌入式系统设计的主流设计语言。此次红外遥感电子密码锁软件设计采用的是C语言程序设计。 4.3.2 C源程序的特点结构

C源程序的结构特点包括:

(1)一个C语言源程序可以由一个或多个源文件组成。 (2)每个可以由一个或多个源文件组成。

(3)一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。

(4)源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或者源程序的最前面。

(5)每一个说明、每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。

(6)标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可以不再加空格来间隔。 4.3.3 软件的开发过程

软件开发大体需要经过以下几个过程:

(1) 划分功能模块,安排程序结构。根据任务要求,将程序大致划分成数据采集、数据处理、非线性补偿、报警处理、标度更换、数字控制计算、控制输出、故障诊断等各个模块,并规定各个模块的任务及其相互之间的联系。

(2)建立数学模型,正确描述出系统中输入与输出之间的数学关系。 (3)画出各程序模块的详细流程图。

(4)选择合适的语言(如汇编语言或者C语言等高级语言)编写程序。编写时应尽量采用现有的子程序,以节省程序设计时间。

27

无线遥控的电子时钟带温度显示

(5)将各个模块连接成一个完整的程序。应用系统在设计软件时,通过编辑软件编辑出的程序,必须用编译程序汇编后生成目标代码。如果源程序有语法错误则返回编辑过程,修改源文件后再继续编译,直到无语法错误为止。然后就是利用目标码进行程序调试,在运行中发现设计上的错误时再重新修改源代码,如此反复,直至成功。 4. 3. 5 软件开发环境

单片机应用系统的开发调试环境主要包括:软件开发环境和硬件调试系统。软件开发环境包括:编译器、仿真器、编程器的基本概念和使用指南及使用范围。

(1)编译器:主要指通过集成开发环境编译、连接,将用户程序转换为单片机可执行机器语言的程序。目前使用的主流编译器是美国Keil Software公司出品的Keil uVision。本次设计就是应用Keil uVision3进行程序编译。

(2)仿真器:仿真器是在单片机应用开发中常用的硬件设备之一,它的作用是在一定的开发环境下,将普通微机仿真成一个特定的单片机。但是现在多数的单片机都支持在线编程,不用仿真器也能进行调试。

(3)编程器:编程器是将数据写入相应器件的ROM中的硬件设备,一般的编程器还具有读出、校验、测试等功能。在单片机系统的开发中,编程器则是用来将已经编译好的单片机程序写入单片机的ROM中,使之形成一个独立运行的单片机系统。与仿真器类似,编程器是对特定的芯片编程。近十几年来,许多单片机内部集成了在线可编程技术(ISP),通过串口便可以对单片机进行编程。

第5章 综合仿真调试

首先通过在仿真软件上进行硬件的仿真,通过写入程序来达到软硬结合的效果,从而实现功能的仿真,之后的话就是在做好的实验班上来完成对程序的调节,进而完成分毕业设计地任务要求。 总 结

在没有做毕业设计前,我觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识。在多人做项目的时候,队员的交流是非常重要的,是很关键的部分。这次的毕业设计也让我看到了团队的力量,

28

九江学院学士学位论文

我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。刚开始的时候,大家就分配好了各自的任务,大家有的绘制原理图,进行仿真实验,有的积极查询相关资料,并且经常聚在一起讨论各个方案的可行性。在毕业设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。

参考文献

[1] 杨建国. 51系列单片机及C51程序设计. 北京:科学出版社,2002. [2] 李 军. 51单片机实例开发指南[M].北京:北京航空航天大学出版社,2004. [3] 叶启明. 单片机制作的新型安全密码锁[J].家庭电子,2005,(10); [4] 李明喜. 新型电子密码锁的设计[J]. 机电产品开发与创新,2004,(03); [5] 董继成. 一种新型安全的单片机密码锁[J]. 电子技术,2004,(03); [6] 张文峥. 李先亮. IrDA红外通信在导航仪中的应用. 电子技术应用,2000 [7] 邱玉春. 李文俊.单片机系统中的红外通信接口. 电子产品世界,2000 [8] 曹巧媛. 单片机原理及应用. 北京:电子工业出版社,1997:141~147 [9] 潘永雄新编. 单片机原理与应用. 西安:西安电子科技大学出版社,2003.2 [10] 王汝文,宋政湘,杨伟等. 电器智能化原理及应用. 北京:电子工业出版社,2003

29

无线遥控的电子时钟带温度显示

附录Ⅰ:主程序

void main() {

unsigned char i,status=0,num; unsigned int temp; unsigned char zs,xs; unsigned char duan[16]; init(); SPI_RST = 1; ds1302_w_byte(0x8e); ds1302_w_byte(0x00); SPI_RST = 0; SPI_RST = 1; ds1302_w_byte(0x80); ds1302_w_byte(0x00); SPI_RST = 0; SPI_RST = 1; ds1302_w_byte(0x82); ds1302_w_byte(0x00); SPI_RST = 0; SPI_RST = 1; ds1302_w_byte(0x84); ds1302_w_byte(0x00); SPI_RST = 0; while(1) { ds18b20_convert();

write_com(0x80);

for(num=0;num<16;num++) {

write_dat(table2[duan[num]]); }

30

九江学院学士学位论文

temp=get_temp();

zs=temp>>4; xs=temp&0x000f;

sec = ds1302_read(0x81);

min = ds1302_read(0x83); hour = ds1302_read(0x85); {

if(i==1) {status++;if(status==4) status=0;} else if(i==2) {

switch(status) {

case 1:

31

duan[11]=zs0/10; duan[12]=zs; duan[13]=11; duan[14]=xs*10/16; duan[6]=sec/16; duan[7]=sec; duan[5]=10; duan[3]=min/16; duan[4]=min; duan[2]=10; duan[0]=hour/16; duan[1]=hour; duan[8]=12; duan[9]=12; duan[10]=12; write_com(0x80); for(i=0;i<16;i++) write_dat(table2[duan[i]]);

i = keyscan();

if(i!=-1)


无线遥控的电子时钟带温度显示(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省东莞市常平嘉盛实验学校八年级物理下册沪粤版导学案9.2阿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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