单片机课程设计报告

合集下载

单片机课程设计报告代码

单片机课程设计报告代码

单片机课程设计报告代码一、引言1.背景介绍随着科技的不断发展,单片机技术在我国得到了广泛的应用。

为了培养学生对单片机的理解和应用能力,单片机课程设计成为了电气工程及自动化专业的重要实践环节。

本篇报告将介绍一种基于单片机的课程设计,通过实际操作,使学生掌握单片机的硬件结构、编程方法和应用技巧。

2.设计目的本次课程设计的目的是使学生熟悉单片机的开发流程,掌握C语言编程,培养学生解决实际工程问题的能力。

通过课程设计,学生应能独立完成单片机系统的硬件选型、程序设计、调试与测试等环节。

3.设计原理本课程设计基于某型号单片机,采用C语言编程。

设计过程中,学生需要了解单片机的工作原理、内部结构以及周边电路设计。

在程序设计阶段,学生应掌握基本的编程技巧,如循环、条件语句、函数调用等,并能够运用Keil、Proteus等软件进行代码调试。

二、单片机概述1.单片机定义单片机(Microcontroller Unit,简称MCU)是一种集成了CPU、存储器、外设接口等多种功能于一体的微型计算机。

它具有体积小、成本低、功耗低、功能强大等特点,广泛应用于各个领域。

2.单片机发展历程从20世纪70年代单片机问世以来,经历了40多年的发展。

从最初的4位、8位单片机,到现在的32位、64位高性能单片机,单片机的性能、功耗和可靠性得到了不断提高。

3.单片机应用领域单片机在我国的应用领域非常广泛,如家电控制、工业自动化、医疗设备、智能交通等。

随着物联网技术的快速发展,单片机的应用前景将更加广阔。

(以下部分请根据实际课程设计内容进行编写)三、课程设计内容1.设计任务本次课程设计任务为设计一个基于单片机的智能控制系统,实现对某个实际设备的自动化控制。

2.设计流程设计流程分为以下几个阶段:(1)硬件选型:根据设计任务选择合适的单片机型号及外围电路元件。

(2)电路设计:绘制原理图及PCB图,并进行元件布局及线路走线。

(3)程序设计:编写控制程序,实现所需功能。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告单片机课程设计报告一、设计要求交通灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮或熄灭,并且用LED数码管显示时间。

用8051做输出口,控制十二个发光二极管然灭,模拟交通灯管理。

二、设计内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律,假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后状态1南北绿灯,东西红灯通车。

过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。

最后循环至状态1。

注意:双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起。

公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;反之,绿灯亮;当两端都加高电平时,黄灯亮。

三、设计原理分析北人行道人人西行行东道道人行道南状态:东西:红50秒,绿45秒,黄5秒。

南北:红45秒,绿50秒,黄5秒。

列出交通信号灯状态如下表:状态北西南东绿黄红绿黄红绿黄红绿黄红0 0 0 1 0 0 1 0 0 1 0 0 11 1 0 0 0 0 1 1 0 0 0 0 12 0 1 0 0 0 1 0 1 0 0 0 13 0 0 1 1 0 0 0 0 1 1 0 04 0 0 1 0 1 0 0 0 1 0 1 0 1、对于交通灯信号灯来说你,应该有东西南北共四组灯,但由于同一道上的两组信号灯显示情况是相同的,所以只要有两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个信号灯2、通过编写程序,实现对发光二级管的控制,来模拟交通信号灯的管理。

每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

3、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添倒计时的显示功能,实现其功能扩展。

四、硬件资源及其分配主要用到的硬件:P1口、p3口、LED数码管、LED发光二级管、定时器T0硬件分配:1、P1口:作为输出口,与发光二极管相连接,其状态对应的十六进制值如下:方向状态无东西南北十六进制值说明P1.7P1.6P1.5P1.4P1.3 P1.2P1.1P1.000 00 0 1 0 0 1 09 H 全为红灯1 0 00 0 1 1 0 0 0CH 南北绿东西红2 0 00 0 1 0 1 0 0AH 南北黄闪东西红0 00 0 1 0 0 008H 3 0 01 0 0 0 0 1 21H 东西绿南北红4 0 00 1 0 0 0 111H 东西黄闪南北红0 00 0 0 0 0 101H五、交通信号灯模拟控制系统设计程序流程图六、交通信号灯模拟控制系统主程序ORG 0000HSJMP A3ORG 0030HA3:MOV SP,#60H ;设栈指针初值MOV A,24HMOV P1,ASETB P3.2CLR P3.3CLR P3.4SETB P3.5MOV R4,#00HMOV R7,#00HMOV R2,03HLCALL X1A2:MOV A,#0CHMOV P1,ASETB P3.2SETB P3.3CLR P3.4CLR P3.5MOV R4,#14HLOOP2: MOV R2,#03H LCALL X1DJNZ R4,LOOP2 MOV R2,#03HLCALL X1LOOP8:MOV R2,#03H LCALL X1MOV R4,#05HSETB P3.2CLR P3.3A1:MOV A,#14H MOV P1,ASETB P3.4CLR P3.5MOV R2,#01H LCALL DELAYMOV A,#04HMOV P1,ACLR P3.4CLR P3.5MOV R2,#01HLCALL DELAYDJNZ R4,LOOP8 MOV A,#61HMOV P1,ACLR P3.2CLR P3.3CLR P3.4SETB P3.5MOV R4,#14H LOOP3:MOV R2,#03H LCALL X1DJNZ R4,LOOP3 MOV R7,#05HSETB P3.5A0:MOV A,#0A2H MOV P1,ACLR P3.2CLR P3.3CLR P3.4MOV R2,01HLCALL DELAYMOV A,#20HMOV P1,ACLR P3.2CLR P3.4MOV R2,#01HLCALL DELAYDJNZ R7,A0LJMP A2DELAY:PUSH 2 PUSH 1PUSH 0DELAY1:MOV 1,#00H DELAY2:MOV 0,#0B2H DJNZ 0,$DJNZ 1,DELAY2 DJNZ 2,DELAY1POP 0POP 1POP 2DJNZ R2,DELAYRETX1:MOV A,R4MOV B,#10DIV ABMOV R6,AMOV DPTR,#TABMOV A,BMOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S:DJNZ R7,H55SMOV A,R6MOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S1:DJNZ R7,H55S1LCALL DELAYRETTAB:DB 0fch,60h,0dah,0f2h,66h,0bch,0e0hDB 0fch,0f6h,0eeh,3ch,9ch,7ah,9ch,8chEnd七、交通信号灯模拟控制系统原理图软件调试是通过对拥护对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

单片机课程设计报告排版

单片机课程设计报告排版

单片机课程设计报告排版一、教学目标本课程旨在让学生掌握单片机的基本原理、编程方法和应用技巧。

通过本课程的学习,学生将能够:1.理解单片机的基本结构和工作原理;2.掌握单片机的编程语言和编程方法;3.学会使用单片机进行简单应用的开发;4.培养动手实践能力和团队协作精神。

二、教学内容本课程的教学内容主要包括以下几个部分:1.单片机的基本原理:包括单片机的结构、工作原理和性能特点;2.单片机编程:包括编程语言、编程方法和编程技巧;3.单片机应用:包括常见应用案例分析和实践操作。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:用于讲解单片机的基本原理和编程方法;2.案例分析法:通过分析典型应用案例,使学生更好地理解单片机的应用;3.实验法:通过动手实践,让学生熟练掌握单片机的编程和应用技巧。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料;2.参考书:提供相关领域的参考书籍,丰富学生的知识体系;3.多媒体资料:制作精美的PPT和教学视频,提高学生的学习兴趣;4.实验设备:提供充足的实验设备,保证学生动手实践的机会。

五、教学评估本课程的评估方式将采用多元化、全过程的评价体系,以确保评估的客观性和公正性。

评估主要包括以下几个方面:1.平时表现:包括课堂参与度、提问回答、团队协作等,占总评的30%;2.作业:包括课后练习和实验报告,占总评的20%;3.考试成绩:包括期中和期末考试,占总评的50%。

六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行合理规划。

教学进度将保持紧凑,确保在有限的时间内完成教学任务。

具体安排如下:1.上课时间:每周一到周五,每天2课时;2.上课地点:实验室和理论教室;3.教学进度:按照教材和教学大纲进行安排,确保每个章节都有足够的学时进行讲解和实践;4.实践活动:每个章节结束后,安排一次实验实践,让学生动手操作,巩固理论知识。

单片机课程设计

单片机课程设计

单片机课程设计单片机课程设计15篇单片机课程设计1课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

这次实习让我受益匪浅,无论从知识上还是其他的各个方面。

上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。

但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。

在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。

团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。

回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在XXX、XXX、老师的辛勤指导下,终于游逆而解。

51单片机课程设计报告

51单片机课程设计报告

51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。

技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。

课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。

学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。

通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。

二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。

2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。

3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。

4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。

单片机原理及应用课程设计报告

单片机原理及应用课程设计报告

单片机原理及应用课程设计报告
一、概述
单片机原理及应用课程设计是一门理论与实践相结合的课程,旨在培养学生掌握单片机的基本原理和应用技能。

通过本次课程设计,我深入了解了单片机的内部结构和工作原理,掌握了单片机的基本操作和编程方法,学会了使用单片机进行简单的应用开发。

二、设计内容
本次课程设计的主题是设计一个基于单片机的智能小车。

小车采用红外传感器进行避障,使用电机驱动小车前进、后退和转弯。

同时,小车还具有遥控控制功能,可以通过遥控器控制小车的运动。

在实现这些功能的过程中,我深入了解了单片机的定时器、中断、串口通信等内部资源的使用方法。

三、实验结果
经过多次实验和调试,智能小车最终实现了预期的功能,能够自动避障并按照遥控器的指令进行运动。

实验结果表明,单片机具有很高的实用性和应用价值。

四、总结
通过本次课程设计,我不仅掌握了单片机的应用技能,还培养了解决问题的能力和创新思维。

我相信这次课程设计将对我未来的学习和工作产生积极的影响。

单片机万年历课程设计报告

单片机万年历课程设计报告

单片机万年历课程设计报告一、课程设计目标本课程设计旨在帮助学生掌握单片机应用基础知识,学习并完成万年历电路的设计和代码编写。

通过这个实践,学生将会深入理解单片机在实际生活中的应用,同时提升自己的程序设计和解决问题的能力。

二、课程设计内容1. 万年历电路的原理和设计本次课程设计要求学生完成一个万年历电路的设计,包括硬件电路和程序设计。

在电路设计中,学生需要考虑到显示器、时钟模块、日期模块和温湿度传感器等部分的连接和调试。

在程序设计方面,学生需要实现万年历的功能,包括显示当前日期和时间、自动确定闰年、节假日提示等。

2. 单片机基本原理和应用实践在万年历电路设计之前,本课程将会对单片机基本原理进行介绍,包括单片机内部结构、芯片选型和I/O口控制等。

另外,还将介绍单片机在各种应用场景中的应用实践,如遥控、电脑控制、机器人和智能家居等。

3. 问题解决和困难克服在学生完成万年历电路设计的过程中,难免会遇到各种问题和困难。

本课程将对学生进行相关的实用技巧和方法讲解,帮助他们解决问题和克服难关。

三、课程设计流程1. 单片机基础知识介绍(2学时)讲解单片机内部结构及其原理,并介绍单片机应用实践2. 万年历电路设计(12学时)对万年历的硬件和软件进行介绍,包括连接显示器和外设、编写程序等3. 问题解决(2学时)介绍学生应对问题的技巧和方法,并帮助他们克服电路设计中的问题和难点四、课程设计评价标准1. 设计成果设计成果的好坏是课程设计的重要衡量标准之一,包括电路的设计完整性、软件功能实现等方面。

2. 实践能力课程设计是一种实践性强的学习形式,学生需要通过实践来掌握知识,因此他们的实践能力成为衡量标准之一。

3. 团队合作在课程设计的过程中,学生要协同工作,完成一个大型的项目,因此团队合作能力是衡量标准之一。

4. 学习的态度学习态度是衡量标准之一,包括学生在课程设计中的主动性、积极性和责任感等方面。

五、总结通过这个万年历课程设计,学生不仅学会了单片机应用的基础知识,还掌握了实际项目开发的方法和技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告一、目的与意义《单片微机原理及应用》是一门技术性、应用性很强的学科,实验课教学是它的一个极其重要的环节。

不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验课教学。

如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节,学习与应用脱节的局面。

任随书本上单片微机技术介绍得多么重要、多么实用、多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会因此对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。

《单片微机课程设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行单片机应用系统的开发设计工作打下一定的基础。

二、硬件电路图1、主板2、四位数码管3、八位LED流水灯4、蜂鸣器5、串口三、程序流程图五、实现的功能及现象1、键盘扫描输入当程序运行时,自动检测是否有按键按下,是哪个按键按下,并且通过返回值,在四位数码管上显示出按下键所对应的数字、字母或执行相应的功能。

2、四位数码管显示通过四位数码管显示相应的按键值、提示语或者执行相关功能。

3、八位流水灯程序运行时,当按下“B”功能键,八位流水灯依次循环点亮熄灭。

4、秒表程序运行时,当按下“C”功能键,数码管清零,从零开始逐秒增加。

5、串口通信程序运行时,当按下“F”功能键,数码管显示“232C”,提示进行串口输入,当从串口助手中输入控制字符时,八位LED灯得到对应的结果。

例如:当输入“00”时,八位灯全亮;当输入“AA”时,八位灯间隔亮。

6、蜂鸣器做按键提示音程序运行时,除串口功能键“F”外,按下任意键,在执行功能的同时,会有短暂的“滴”声,当执行秒表功能时,蜂鸣器会持续发声,直到秒表停止。

六、收获体会通过这次单片机课程设计,我对单片机系统设计更加熟悉,初步学会了单片机程序的编程及调试和主板硬件的焊接技术。

在这个过程中,我认识到,单片机的学习需要有耐心,并且持之以恒,坚持不懈,同时还要不断进行尝试,不要害怕犯错,要在错误中学习、进步。

其中,最困难的就是程序的编写与调试,因为,写好一个程序,往往需要很长时间,之后还需要不断的调试,才能得到理想的结果。

还有就是,要实现一个单独的功能比较容易,然而,把这些功能综合到一起,就会出现问题,会出现很多冲突,最后只好放弃一些功能。

所以我们在设计和编写程序的时候都必须充分考虑到这些因素,才能得到理想的效果。

附:实验程序#include<reg52.h>#include<string.h>#include<absacc.h>#define WR273 XBYTE[0xc000]#define RD244 XBYTE[0xc000]#define dis_playXBYTE[0Xa000]=XBYTE[0Xb000]=XBYTE[0X9000]=XBYTE[0X8000] #define uchar unsigned char#define uint unsigned intuchar t1;ucharx,flag;sbit c=P0^1;void Delay(uint z);////////////////////////////////////////////////ucharm,fen,miao,t,temp;uchar dis_16_1[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//无小数点uchar dis_16_2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0E};//含有小数点uchar dis_10[]={0xff,0xF9,0xA4,0xB0,0x99,0x92,//1~50x82,0xF8,0x80,0x90,0xC0,//6~00x88,0x83,0xC6,0xA1,0x86,0x8E};//A~F/////////////////////////////////////////ucharkey_test(){WR273=0xf0;if((RD244&0x0f)!=0x0f){return 1;c=0;}else return 0;}/////////////////////////////////////////////voidtime_init(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;XBYTE[0x8000]=0xc7;XBYTE[0x9000]=0xc7;XBYTE[0xa000]=0x86;XBYTE[0xb000]=0x89;}voidtime_dis(){XBYTE[0x8000]=dis_16_1[m%10];XBYTE[0x9000]=dis_16_2[miao%10];XBYTE[0xa000]=dis_16_1[miao/10];XBYTE[0xb000]=dis_16_2[fen%10];}voidtime_work(){if(t1==2){t1=0;m++;if(m==10){m=0;miao++;if(miao==60){miao=0;fen++;if(fen==10)fen=0;}}}time_dis();}/////////////////////////////////////////////////延时void Delay(uint z){uint y;for(;z>0;z--){for(y=110;y>0;y--);}}//////////////////////////////////////////////// 键盘扫描void scan(ucharvalue,ucharnum,uchar *p){uchar key;XBYTE[0Xc000]=value;key=XBYTE[0Xc000];if((key&0X01)!=0X01){Delay(2); key=XBYTE[0Xc000];if((key&0X01)!=0X01) *p=1+num;}if((key&0X02)!=0X02){Delay(2); key=XBYTE[0Xc000];if((key&0X02)!=0X02) *p=5+num;}if((key&0X04)!=0X04){Delay(2); key=XBYTE[0Xc000];if((key&0X04)!=0X04) *p=9+num;}if((key&0X08)!=0X08){Delay(2); key=XBYTE[0Xc000];if((key&0X08)!=0X08) *p=13+num;}}ucharkey_scan(){ucharkey_value;scan(0Xf7,0,&key_value);//第一列scan(0Xfb,1,&key_value);//第二列scan(0Xfd,2,&key_value);//第三列scan(0Xfe,3,&key_value);//第四列returnkey_value;}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////串口voidserial_init(){TMOD=0x20;//定时器一为工作方式二SM0=0;SM1=1;REN=1;TH1=0xf4;TL1=0xf4;TR1=1;ES=1;EA=1;}void serial(){serial_init();while(1){if(flag==1){flag=0;ES=0;SBUF=x;while(!TI);TI=0;ES=1;}}}voidser() interrupt 4{RI=0;P1=SBUF;x=SBUF;flag=1;}///////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// void lsd() //流水灯{uchartemp,i;temp=0xfe;while(1){if(key_test())return;for(i=0;i<8;i++){if(key_test())return;P1=temp;Delay(100);temp=(temp<<1)|0x01;}temp=0x7f;for(i=7;i>0;i--){if(key_test())return;P1=temp;Delay(100);temp=(temp>>1)|0x80;}}}//////////////////////////////////////////voidkey_firm(){temp=key_scan();switch(temp){case 1: dis_play=dis_10[temp]; break;//1case 2: dis_play=dis_10[temp]; break;//2case 3: dis_play=dis_10[temp]; break;//3case 4: dis_play=dis_10[temp]; break;//4case 5: dis_play=dis_10[temp]; break;//5case 6: dis_play=dis_10[temp]; break;//6case 7: dis_play=dis_10[temp]; break;//7case 8: dis_play=dis_10[temp]; break;//8case 9: dis_play=dis_10[temp]; break;//9case 10: dis_play=dis_10[temp]; break;//0case 11: dis_play=dis_10[temp]; break;//Acase 12: lsd(); break;//流水灯case 13: time_work(); break;//秒表case 15: time_init(); break;//复位case 16: { XBYTE[0x8000]=0xc6;XBYTE[0x9000]=0xa4;XBYTE[0xa000]=0xb0;XBYTE[0xb000]=0xa4;serial();} break;//串口}}void main(){time_init();while(1){key_firm();}}void time_sm() interrupt 1 /*定时器0中断程序,定时50毫秒*/ {TH0=(65536-50000)/256;TL0=(65536-50000)%256;t1++;}。

相关文档
最新文档