单片机课程设计修改版oc
单片机c语言课程设计
单片机c语言课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解C语言在单片机编程中的应用。
2. 培养学生运用C语言进行单片机程序设计和调试的能力。
3. 使学生了解单片机外围设备的接口技术,并能结合实际需求进行简单系统设计。
技能目标:1. 培养学生运用Keil等开发工具进行单片机C语言编程,完成程序设计、编译、下载和调试。
2. 培养学生分析问题和解决问题的能力,能够针对实际应用场景设计单片机控制系统。
3. 提高学生的动手实践能力,通过课程设计,独立完成一个具有实际应用价值的单片机控制系统。
情感态度价值观目标:1. 培养学生积极的学习态度,激发对单片机及嵌入式系统开发的兴趣。
2. 培养学生的团队合作意识,学会在项目中进行有效沟通和协作。
3. 增强学生的创新意识,鼓励他们在课程设计中勇于尝试新思路、新技术。
课程性质分析:本课程为单片机C语言课程设计,侧重于实践操作和实际应用,旨在帮助学生将所学理论知识与实际工程相结合,提高解决实际问题的能力。
学生特点分析:学生已具备一定的单片机原理和C语言基础,具有一定的编程和动手能力。
在此基础上,通过课程设计,提高学生的综合应用能力和创新能力。
教学要求:1. 结合课本内容,注重理论与实践相结合,强化学生的动手实践能力。
2. 以项目为导向,引导学生主动探索,培养学生的问题分析和解决能力。
3. 注重团队合作,培养学生的沟通能力和协作精神。
4. 关注学生的个体差异,实施差异化教学,提高全体学生的学习效果。
二、教学内容1. 单片机基础理论:回顾51单片机的结构、原理及其外围设备的工作原理,重点复习I/O口编程、定时器、中断系统等内容。
教材章节:第一章至第三章2. C语言编程基础:巩固C语言基本语法,包括数据类型、运算符、控制语句、函数等,结合单片机编程需求进行讲解。
教材章节:第四章至第六章3. 单片机C语言编程实践:学习使用Keil开发工具进行单片机C语言编程,掌握程序设计、编译、下载和调试的全过程。
单片机课程设计说明书(word文档+全!)
调试工具:J-Link、ST-Link等 仿真工具:Proteus、Multisim等 编程技巧:模块化编程、代码优化等
程序流程图设计与实现
流程图设计:根据 需求分析,设计出 流程图
流程图实现:根据 流程图,编写程序 代码
程序调试:对编写 的程序进行调试, 确保其正确运行
人工智能:单片机在人工智能领域的应用将更加深入,如智能机器人、智能语音识别等
医疗健康:单片机在医疗健康领域的应用将更加普及,如智能医疗设备、智能穿戴设备等 环保节能:单片机在环保节能领域的应用将更加重要,如智能能源管理、智能环保设备等
感谢您的观看
汇报人:
软件测试与优化
测试方法:单元测试、集成测试、系统测试等 测 试 工 具 : J U n i t 、 Te s t N G 、 S e l e n i u m 等 优化目标:提高代码质量、提高运行效率、降低资源消耗等 优化方法:代码重构、算法优化、性能调优等
课程设计总结与 展望
课程设计总结
课程设计目标:掌 握单片机基本原理 和编程方法
课程设计目的
掌握单片机的基本原理和应用
提高编程能力和硬件设计能力
培养创新思维和解决问题的能 力
提高团队合作和沟通能力
课程设计要求
课程设计 目的:掌 握单片机 原理和应 用技术
课程设计 内容:包 括硬件设 计和软件 设计两部 分
课程设计要 求:硬件设 计要求实现 特定功能, 软件设计要 求编写程序 实现特定功 能
调试步骤:根据测 试结果,对硬件进 行调试和优化
常见问题:信号 干扰、电源不稳 定、硬件故障等
解决方案:根据问题 原因,采取相应的解 决方案,如更换元器 件、调整电路参数等
单片机课设(完整版)
摘要近几年,单片机在各个领域得到广泛的应用。
从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。
在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。
在第一台微处理器成功研制不久,第一个单片机就问世了。
因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。
本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。
主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C52芯片为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。
它的计时周期为24小时,显满刻度为“23时59秒”,且配有4个独立按键,可以灵活地调节时间和日期,并具有一定的扩展性。
关键词:单片机;数字电子钟;数码管驱动显示电路。
目录1简介 (1)1.1基于单片机的数字钟介绍 (1)1.2本系统的特点和功能介绍 (2)2 硬件设计 (3)2.1总体设计方案 (3)2.1.1 AT89C51的介绍 (3)2.2硬架结构设计 (5)2.2.1 51单片机的最小系统 (5)2.2.2显示部分设计 (5)2.2.3电源部分设计 (7)2.2.4报时部分的设计 (8)2.2.5键盘部分的设计 (8)2.2.6总体硬件电路图 (9)2.6.7 proteus仿真 (9)3软件部分 (10)3.1部分设计思想的说明 (10)3.2 C语言、keil、proteus的介绍 (11)3.2.1 C语言 (11)3.2.2 keil (12)3.2.3 proteus (12)3.3参考程序 (13)总结 (24)参考文献 (24)1简介1.1基于单片机的数字钟介绍1.单片机的介绍:“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定时器/计数器(Timer/Counter)、中断系统(Interrupt System)、系统时钟及系统总线等。
单片机课程设计(参考模板)
单片机电子时钟摘要:在日常生活中,电子时钟与我们密切相关,在很多地方都会用到电子时钟。
除了专用的时钟、计时显示牌外,许多应用系统常常也带有实时时钟显示,如各种智能化仪器仪表、工业过程控制系统以及家用电器等。
实现电子时钟的方法有多种,通过前面我们对单片机基本理论及相关知识的学习,在这里,要求用单片机为主控制芯片设计一简单的单片机电子时钟。
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键词:电子时钟;单片机;计时SCM Electronic ClockAbstract:In our daily life, the electronic clock is closely related to the electronic clock which will be used in many places. In addition to a dedicated clock, timing licenses, there are many applications which often with real-time clock display, such as a variety of intelligent instrumentation, industrial process control systems and home appliances. There are many ways to realize the Electronic clock, through the front of learning our SCM basic theory and related knowledge, here, the microcontroller-based control chip design a simple single-chip electronic clock. With the development of computer penetration in the social field and LSI in recent years, the using of microcontroller applications is constantly go deeper, because it has the features of a small size, low power consumption, cheap, reliable, easy to use. Therefore it is particularly suitable for the control of the system, more and more widely used in automatic control, Intelligent instruments, data acquisition, and military products and home appliances, SCM often used as a core component in the structure, according to the specific hardware and software for application-specific object characteristics combined to make perfect.Keywords:electronic clock; microcontroller; timing目录第一章引言 (1)1.1课程设计的目的 (1)1.2课程设计内容 (1)第二章总体方案设计 (2)2.1 总体思想--方案论证 (2)2.2方案的选择 (2)第三章硬件系统设计 (4)3.1总电路设计 (4)3.2器件的介绍 (4)3.3单元模块设计 (6)第四章软件系统设计 (9)4.1软件程序思想 (9)4.2主程序及流程图 (9)4.3子程序及流程图 (12)第五章系统仿真 (16)5.1 KEIL 51介绍 (16)5.2 PROTEUS介绍 (20)5.3仿真过程及仿真结果 (28)第六章结束语 (29)致谢 (30)参考文献 (31)第一章引言1.1课程设计的目的本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS164译码器的工作原理和与LED连接的方法。
单片机课程设计修改版
单片机课程设计学院:通信与电子工程学院班级:电子082班学号:姓名:同组成员:指导老师:日期: 2011年12月22日摘要根据交通灯的设计原理及要求,通过总体设计交通灯原理接线图,综合应用单片机原理、微机原理、微机接口技术等方面的知识,结合单片机仿真系统的使用方法,通过软硬件结合,使用89C52单片机来设计出符合要求的交通灯控制系统。
完成由单片机89C52、发光二极管、 LED数字显示器、开关、部分电阻及电容组成的交通灯控制系统。
系统除基本交通灯功能外,还具有倒计时、显示时间设置、LED信息显示等功能。
关键词:单片机交通灯数码管目录摘要 (2)目录 (3)第1章交通灯的背景及发展 (4)1.1 交通灯的历史 (4)1.2交通灯国内外发展概况 (5)第2章单片机控制交通系统总体设计 (7)2.1单片机交通控制系统通行方案设计 (7)2.2单片机交通控制系统的功能要求 (8)2.2.1 倒计时显示 (8)2.2.2 车流量检测及调整 (8)2.2.3时间手动设置 (8)2.3单片机交通控制系统的基本构成及原理 (9)第3章系统硬件电路的设计 (10)3.1系统硬件总电路构成及原理 (10)3.1.1 AT89C52简介 (10)3.2系统硬件电路构成 (13)3.2.1系统工作原理 (13)3.2.2车流量检测电路及模拟 (15)3.2.3八段LED数码管 (16)3.2.4其它器件 (17)第4章系统软件程序的设计 (18)4.1程序主体设计流程 (18)4.2子程序模块设计 (19)参考文献 (23)心得体会 (24)第1章交通灯的背景及发展1.1 交通灯的历史交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。
城市交通问题是困扰城市发展、制约城市经济建设的重要因素。
城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。
城市街道网络上的交通容量的不断增加,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。
单片机课程设计
单片机课程设计单片机课程设计15篇单片机课程设计1课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。
上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。
但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。
团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在XXX、XXX、老师的辛勤指导下,终于游逆而解。
单片机C语言程序设计课程设计
单片机C语言程序设计课程设计1. 课程设计简介单片机是嵌入式系统中的重要组成部分,其主要任务是控制和操作外围设备,实现各种功能。
本课程为单片机C语言程序设计课程设计,旨在帮助学生深入理解单片机的工作原理和编程方法,提高学生的计算机编程能力和实际操作能力。
2. 课程设计目标本课程设计旨在让学生能够:•熟练掌握单片机硬件结构和工作原理•掌握单片机C语言程序设计的基本方法和技巧•能够独立完成简单的单片机控制项目设计和实现•能够运用所学知识解决实际问题3. 课程设计内容本课程设计内容主要包括以下几个方面:3.1 单片机基础知识介绍单片机的基本结构、主要特点、工作原理和基本应用领域。
3.2 单片机开发环境介绍单片机开发所需的硬件和软件环境,并进行基本的配置和使用说明。
3.3 单片机C语言程序设计基础•学习C语言程序的基本语法和结构•熟悉单片机C语言程序设计的基本思想和方法•实践编写简单的单片机C语言程序3.4 实际应用案例介绍单片机在各种实际应用场景中的具体应用,并引导学生独立完成相应的案例项目设计和实现。
4. 课程设计形式本课程设计采用“理论 + 实践”相结合的形式进行教学,主要分为以下几个环节:4.1 理论讲解教师进行理论讲解,介绍单片机的基本知识和基本编程思想。
4.2 实验操作学生进行实验操作,通过实际操作掌握单片机的应用和编程技能。
4.3 项目设计学生进行项目设计,将所学的知识应用到实际项目中,提高学生的设计和创新能力。
4.4 报告展示学生进行项目报告展示,将自己的成果展示给其他同学和老师,并进行评价和讨论。
5. 课程设计考核本课程设计采用综合考核方式进行评价,主要包括以下几个环节:5.1 实验报告学生按照要求撰写实验报告,包括实验目的、实验原理、实验步骤、实验结果和思考问题等内容。
5.2 项目设计报告学生独立完成项目设计报告,包括项目简介、设计思路、实现方法、实验结果和应用展望等内容。
5.3 学习笔记要求学生认真对课程内容进行总结和笔记,并按时提交。
单片机课程设计I、O口的扩展
宝鸡文理学院单片机技术课程设计说明书I/O口的扩展与应用目录1. 概述.............................................................................................. 错误!未定义书签。
2. 分项说明...................................................................................... 错误!未定义书签。
2.1 XXXXXX.................................... 错误!未定义书签。
2.2 XXXXXX.................................... 错误!未定义书签。
3. 分项说明...................................................................................... 错误!未定义书签。
3.1 XXXXXX.................................... 错误!未定义书签。
3.2 XXXXXX.................................... 错误!未定义书签。
4. 结束语.......................................................................................... 错误!未定义书签。
参考文献........................................................................................... 错误!未定义书签。
附录........................................................................................... 错误!未定义书签。
单片机课程设计
单片机课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程。
2. 使学生了解并熟练运用单片机的编程语言,如C语言或汇编语言。
3. 帮助学生掌握单片机外围电路的设计与搭建,使其能独立完成简单的电路系统。
技能目标:1. 培养学生运用单片机解决实际问题的能力,提高创新思维和动手实践能力。
2. 培养学生具备查阅资料、分析问题、设计方案、调试程序等综合技能。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成自主学习、合作学习的良好习惯。
2. 培养学生具备团队协作精神,学会与他人分享、交流、合作,提高沟通能力。
3. 培养学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感和创新意识。
课程性质分析:本课程为单片机课程设计,旨在让学生在掌握理论知识的基础上,通过实际操作,提高解决实际问题的能力。
学生特点分析:学生已具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足,需要通过本课程加强实践操作和综合运用。
教学要求:1. 理论与实践相结合,注重培养学生的动手能力。
2. 引导学生主动思考,发现问题,解决问题。
3. 创设实际情境,提高学生的学习兴趣和参与度。
4. 注重培养学生的团队协作能力和沟通能力。
二、教学内容1. 单片机原理及结构:介绍单片机的组成、工作原理,重点讲解CPU、存储器、输入输出接口等部分。
参考教材章节:第一章 单片机概述2. 单片机编程语言:学习C语言和汇编语言的基础知识,掌握编程技巧,能独立编写简单的单片机程序。
参考教材章节:第二章 单片机编程语言3. 单片机外围电路设计:讲解并实践常用外围电路的设计与搭建,如LED 灯、蜂鸣器、数码管等。
参考教材章节:第三章 单片机外围电路设计4. 单片机程序下载与调试:学习使用编程器、仿真器等工具,掌握程序下载、调试方法。
参考教材章节:第四章 单片机程序下载与调试5. 实践项目:设计并实现几个实际项目,如温度控制器、智能小车、智能家居系统等,锻炼学生解决实际问题的能力。
东华理工大学《单片机课程设计报告》
《单片机原理与应用》课程设计报告题目:多功能电子钟姓名:学号:学院:机械与电子工程专业: 电子信息工程班级: 1420601Z指导教师:李跃忠一、设计任务及要求时钟按键不超过4个,上电后可进行正常走时,能够显示时、分、秒,走时误差每天不能超过5秒。
要求具有切换显示,可以显示年、月、日以及对应星期。
时钟应具备调时功能,并有对应调时位的闪烁提示。
时钟要求具有秒表功能和闹钟功能,秒表误差要求不超过1ms,闹钟要求能够准点报时并自动解除。
二、设计思路及规划时钟采用8位数码管动态译码显示,用独立键盘做为功能键。
上电后时钟能够正常运行,此时按下K2按键数码管切换显示年、月、日,稍作延时后显示对应星期,再次延时后将自动切换至时、分、秒的时钟显示;日期的切换显示不影响时钟的正常走时。
按下K1按键进入调时功能,此时K1为调时切换键,K2为调时按键,调时过程中时钟暂停运行。
按下K3按键进入闹钟设定功能,K3为时、分切换键,K2为设定键;闹钟设定的过程中不影响时钟的正常走时。
按下K4按键进入秒表功能,按下K2开始计数,再次按下K2为停止计数,此时若按下K4则可清除当前的计数,若按下K2则延续计数,当数值清零后,可重复上述步骤也可以按K4退出秒表功能;秒表功能不影响时钟的正常走时。
三、硬件电路图四、程序流程图1、主函数流程图2、时钟中断和秒表计数中断流程图3、调时以及闹钟设定流程图五、程序源代码#include<reg51.h>unsigned char WeiXuan[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; unsignedcharDuanXuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0 xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,0x80}; //0~F以及消隐和显示"—" unsigned char a,b,c,d,e,f,h,a1,k,k1,c2,d2,a3,b3,c3,d3;unsigned int g;sbit FM=P1^0;sbit T=P1^1;sbit Tz=P3^2;sbit NY=P1^1;sbit NZTZ=P3^3;sbit NZ=P1^2;sbit js=P1^1;sbit JS=P1^3;void Xians(char a,char b);void SSSM();void SSSM1();void SSSM2();void SSSM3();void main(){unsigned int i,j,i1=0,j1=0,i2,j2,i3;IP=0x03; //设置中断优先级EA=1; //中断总开关EX0=1; //外部中断0允许位IT0=0; //外部中断0为低电平触发EX1=1; //外部中断1允许位IT1=0; //外部中断1为低电平触发ET0=1; //定时器、计数器0允许位TMOD=0x11; //设定定时器、计数器0、1的工作方式为方式1 TH0=(65536-50000)/256; //定时器、计数器装载初值50ms TL0=(65536-50000)%256;ET1=1; //定时器、计数器1允许位TH1=(65536-10000)/256; //定时器、计数器装载初值10ms TL1=(65536-10000)%256;TR0=1; // 启动定时计数器0TR1=0; //关闭定时计数器1a=b=c=d=0;c2=1;d2=0;e=f=1;g=2000;h=6;a1=17;FM=0; //蜂鸣器NY=1; //年月日NZ=1; //闹钟JS=1; //计数while(1){if(d==d2&&c==c2) //检测是否到达定时时间NZ=0;if(NZ==0) //用于定时提醒{for (i2=1;i2>0;i2--){for (j2=38;j2>0;j2--){for(i3=130;i3>0;i3--);}}for (i2=1;i2>0;i2--){for (j2=38;j2>0;j2--){FM=~FM;for(i3=100;i3>0;i3--);}}}if(NY==0){i=11000;while(i--);if(NY==0){for(i=100;i>0;i--)for(j=5;j>0;j--)SSSM1();for(i=100;i>0;i--)for(j=5;j>0;j--)SSSM2();}}if(JS==0) //计时部分{i=11000;while(i--);if(JS==0) {i1=1;}}while(i1){if(js==0){i=11000;while(i--);if(js==0&&j1==0) {TR1=1;j1=1; i=11000;while(i--);}if(js==0&&j1==1) {TR1=0;j1=2; i=11000;while(i--);}if(js==0&&j1==2) {TR1=1;j1=1; i=11000;while(i--);}}if(JS==0){i=11000;while(i--);if(JS==0&&j1==2) {a3=b3=c3=d3=0;j1=0;i=11000;while(i--);}if(JS==0&&j1==0) {j1=0;i1=0;}}SSSM3();//计时部分}SSSM();}}void Xians(char a,char b) //用于动态显示下的位选、段选以及消隐{ unsigned char i=100;P2=WeiXuan[a];P0=DuanXuan[b];while(i--); //不精确延时0.1ms,用于改善数码管亮度P0=DuanXuan[16]; //用于动态显示的消隐}void SSSM() //用于时间的实时扫描显示{Xians(0,d/10);Xians(1,d%10);Xians(2,a1);Xians(3,c/10);Xians(4,c%10);Xians(5,a1);Xians(6,b/10);Xians(7,b%10);}void SSSM1() //用于年月日的实时扫描显示{Xians(0,g/1000);Xians(1,g%1000/100);Xians(2,g%100/10);Xians(3,g%10+18);Xians(4,f/10);Xians(5,f%10+18);Xians(6,e/10);Xians(7,e%10);}void SSSM2() //用星期的实时扫描显示{Xians(0,16);Xians(1,16);Xians(2,16);Xians(3,16);Xians(4,16);Xians(5,16);Xians(6,0);Xians(7,h);}void SSSM3(){Xians(0,d3/10);Xians(1,d3%10+18);Xians(2,c3/10);Xians(3,c3%10+18);Xians(4,b3/10);Xians(5,b3%10+18);Xians(6,a3/10);Xians(7,a3%10);}void DSQJSQ0 (void) interrupt 1 //实时中断{TH0=(65536-50000)/256; //计数重装TL0=(65536-50000)%256;a++;if(a==10) {a1=16;}if(a==20) {a1=17;b++;a=0;FM=~FM;}if(b==60) {c++;b=0;NZ=1;} //秒if(c==60) {d++;c=0;} //分if(d==24) {e++;h++;d=0;} //时if(h==8) {h=0;}if((g%4==0&&g%100!=0)||(g%100==0&&g%400==0)) // 闰年年月日{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){f++;e=1;}}else {if(f==2) {if(e==30){f++;e=1;}}else {if(e==31){f++;e=1;}}}}else //非闰年年月日{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){f++;e=1;}}else {if(f==2) {if(e==29){f++;e=1;}}else {if(e==31){f++;e=1;}}}}if(f==13) {g++;f=1;}}void JSZD(void) interrupt 3{TH1=(65536-10000)/256; //计数重装TL1=(65536-10000)%256;a3++;if(a3==100) {b3++;a3=0;}if(b3==60) {c3++;b3=0;}if(c3==60) {d3++;c3=0;}}void TIAOSHI (void) interrupt 0{unsigned int i,j;i=10000;while(i--);a1=17;k=0;while(k==0) //秒调时循环{unsigned char b1=16;i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) b=b+1;}if(b==60)b=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,d/10);Xians(1,d%10);Xians(2,a1);Xians(3,c/10);Xians(4,c%10);Xians(5,a1);Xians(6,b1);Xians(7,b1);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) b=b+1;}if(b==60)b=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM();}}while(k==1) //分调时循环{unsigned char c1=16;i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) c=c+1;}if(c==60)c=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,d/10);Xians(1,d%10);Xians(2,a1);Xians(3,c1);Xians(4,c1);Xians(5,a1);Xians(6,b/10);Xians(7,b%10);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) c=c+1;}if(c==60)c=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM();}}while(k==2) //时调时循环{unsigned char d1=16;i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) d=d+1;}if(d==24)d=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,d1);Xians(1,d1);Xians(2,a1);Xians(3,c/10);Xians(4,c%10);Xians(5,a1);Xians(6,b/10);Xians(7,b%10);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) d=d+1;}if(d==24)d=0;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM();}}while(k==3) //年调时循环{unsigned char g1=16;i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) g=g+1;}if(g==2101)g=2000;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,g1);Xians(1,g1);Xians(2,g1);Xians(3,g1+18);Xians(4,f/10);Xians(5,f%10+18);Xians(6,e/10);Xians(7,e%10);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) g=g+1;}if(g==2101)g=2000;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM1();}}while(k==4) //月调时循环{unsigned char f1=16;i=100;{ if(T==0){ j=11000;while(j--);if(T==0) f=f+1;}if(f==13)f=1;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,g/1000);Xians(1,g%1000/100);Xians(2,g%100/10);Xians(3,g%10+18);Xians(4,f1);Xians(5,f1+18);Xians(6,e/10);Xians(7,e%10);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) f=f+1;}if(f==13)f=1;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM1();}}while(k==5) //日调时循环{unsigned char e1=16;i=100;{ if(T==0){ j=11000;while(j--);if(T==0){e=e+1;if((g%4==0&&g%100!=0)||(g%100==0&&g%400==0)) // 闰年{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){e=1;}}else {if(f==2) {if(e==30){e=1;}}else {if(e==31){e=1;}}}}else //非闰年{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){e=1;}}else {if(f==2) {if(e==29){e=1;}}else {if(e==31){e=1;}}}}}}if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,g/1000);Xians(1,g%1000/100);Xians(2,g%100/10);Xians(3,g%10+18);Xians(4,f/10);Xians(5,f%10+18);Xians(6,e1);Xians(7,e1);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0){e=e+1;if((g%4==0&&g%100!=0)||(g%100==0&&g%400==0)) // 闰年{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){e=1;}}else {if(f==2) {if(e==30){e=1;}}else {if(e==31){e=1;}}}}else //非闰年{if(f==1||f==3||f==5||f==7||f==8||f==10||f==12){if(e==32){e=1;}}else {if(f==2) {if(e==29){e=1;}}else {if(e==31){e=1;}}}}}}if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM1();}}while(k==6) //星期调时循环{unsigned char h1=16;i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) h=h+1;}if(h==8)h=1;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}Xians(0,h1);Xians(1,h1);Xians(2,h1);Xians(3,h1);Xians(4,h1);Xians(5,h1);Xians(6,h1);Xians(7,h1);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) h=h+1;}if(h==8)h=1;if(Tz==0){ j=11000;while(j--);if(Tz==0) k=k+1;}SSSM2();}}}void NZDSSZ (void) interrupt 2 {unsigned int i,j;i=10000;while(i--);a1=17;k1=0;while(k1==0) //分设定循环{i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) c2=c2+1;}if(c2==60)c2=0;if(NZTZ==0){ j=11000;while(j--);if(NZTZ==0) k1=k1+1;}Xians(0,16);Xians(1,16);Xians(2,16);Xians(3,d2/10);Xians(4,d2%10);Xians(5,17);Xians(6,16);Xians(7,16);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) c2=c2+1;}if(c2==60)c2=0;if(NZTZ==0){ j=11000;while(j--);if(NZTZ==0) k1=k1+1;}Xians(0,16);Xians(1,16);Xians(2,16);Xians(3,d2/10);Xians(4,d2%10);Xians(6,c2/10);Xians(7,c2%10);}}while(k1==1) //时设定循环{i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) d2=d2+1;}if(d2==24)d2=0;if(NZTZ==0){ j=11000;while(j--);if(NZTZ==0) k1=k1+1;}Xians(0,16);Xians(1,16);Xians(2,16);Xians(3,16);Xians(4,16);Xians(5,17);Xians(6,c2/10);Xians(7,c2%10);}i=100;while(i--){ if(T==0){ j=11000;while(j--);if(T==0) d2=d2+1;}if(d2==24)d2=0;if(NZTZ==0){ j=11000;while(j--);if(NZTZ==0) k1=k1+1;}Xians(0,16);Xians(2,16);Xians(3,d2/10);Xians(4,d2%10);Xians(5,17);Xians(6,c2/10);Xians(7,c2%10);}}}。
单片机课程设计完整版
单片机课程设计完整版单片机(Microcontroller)是一种集成了微处理器和其他外围设备的集成电路芯片。
它广泛应用于各种电子设备中,如电视、手机、家电等。
单片机课程设计是电子工程专业中的重要课程,通过该课程,学生可以深入理解单片机的工作原理,并学会使用单片机进行电路设计和应用开发。
本文将从单片机课程设计的背景、设计流程、实验要求和优化方面进行论述。
一、背景介绍单片机课程设计是电子工程专业的核心必修课程之一。
随着科技的发展,在各行各业中对单片机的需求越来越高。
因此,掌握单片机的原理和应用技术对电子工程专业学生来说具有重要意义。
二、设计流程1. 需求分析在进行单片机课程设计之前,首先需要对所要设计的电子设备进行需求分析。
明确所需的功能、性能指标和实施条件,以明确设计的方向和目标。
2. 系统设计在需求分析的基础上,进行单片机系统的设计。
确定所需的外围设备、接口电路和控制算法等。
设计合理的系统架构,确保各个组成部分之间的协调运作。
3. 软硬件设计根据系统设计的结果,进行软硬件的设计工作。
在软件设计方面,需要选择合适的编程语言和开发环境,编写代码并进行调试。
在硬件设计方面,需要根据电路原理图进行电路设计和焊接。
同时考虑电路布局、线路连接和元件选择等。
4. 实验验证设计完成后,进行实验验证。
通过实验,检验设计的功能和性能是否满足需求。
如有问题,需进行调试并进行相应优化。
5. 优化改进根据实验验证的结果,分析问题原因,并进行相应的优化改进工作。
可通过改进软件算法、优化硬件电路等方式来提升系统性能。
三、实验要求在单片机课程设计中,常见的实验要求包括以下几个方面:1. 电路设计要求根据具体需求,设计合理的外围电路。
可包括传感器电路、信号采集电路、外设接口电路等。
2. 编程要求掌握并熟练使用单片机编程语言,如C语言、汇编语言等。
能够编写合理的控制算法,并进行调试和优化。
3. 系统功能要求根据需求确定系统的功能要求,并设计相应的控制逻辑和接口。
单片机课程设计(模版)
单片机电源电路设计
单击此处添加标题
电源电路的作用:为单片机提供稳定的电源电压
单击此处添加标题
电源电路的组成:电源变压器、整流器、滤波器、稳压器等
单击此处添加标题
电源电路的设计原则:稳定、可靠、高效、低噪声
单击此处添加标题
电源电路的设计方法:根据单片机的工作电压和电流需求,选择合适的电源 变压器、整流器、滤波器、稳压器等,并进行合理的布局和布线。
解决方案:优化人机交互界面,提高用户体验
单片机课程设计总结与展望
单片机课程设计的收获和不足
收获:掌握了单 片机的基本原理 和编程方法
收获:提高了动 手实践能力和解 决问题的能力
不足:理论知识 掌握不够扎实, 需要加强学习
不足:实践经验 不足,需要更多 的实践机会
单片机技术的发展趋势和应用前景
发展趋势:智能化、微型化、低功耗、高可靠性 应用领域:智能家居、物联网、工业自动化、医疗设备 技术挑战:安全性、实时性、可扩展性 应用前景:广泛应用于各个领域,成为未来科技发展的重要方向
实施教学活动:按照教学计划, 开展教学活动,包括讲解、实 验、讨论等
评估教学效果:通过考试、作 业、项目等方式,评估学生的 学习效果和课程设计的效果
单片机基础知识
单片机的概念和特点
概念:单片机是一种集成电路芯片,将微处理器、存储器、输入/输出接口等集成在一起 特点:体积小、重量轻、功耗低、可靠性高、编程简单、应用广泛 应用领域:工业控制、家电、汽车电子、医疗设备、通信设备等 发展趋势:智能化、网络化、微型化、低功耗化
解决方案:优化硬件设计,选择合适的单片机型 号
问题:软件设计复杂,难以实现高效运行 解决方 案:优化软件设计,采用高效的算法和编程技巧
单片机c语言课程设计
单片机c语言课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和结构,掌握C语言编程基础;2. 学生能运用C语言编写简单的单片机程序,实现基础功能;3. 学生了解单片机在实际应用中的使用场景,掌握相关技术术语。
技能目标:1. 学生能运用所学知识,独立完成单片机程序的编写和调试;2. 学生具备分析问题、解决问题的能力,能针对实际需求设计简单的单片机控制系统;3. 学生能通过团队协作,共同完成一个具有实际应用价值的单片机项目。
情感态度价值观目标:1. 学生对单片机技术产生兴趣,培养主动学习和探究精神;2. 学生在学习和实践过程中,培养耐心、细致、严谨的工程素养;3. 学生通过团队协作,提高沟通、协作能力,培养团队精神。
课程性质分析:本课程为单片机C语言课程设计,旨在让学生将所学理论知识应用于实践,提高动手能力。
课程以项目为导向,注重培养学生的实际操作能力和团队协作能力。
学生特点分析:学生为高年级本科生,已具备一定的单片机基础和C语言编程能力,具有较强的自学能力和团队协作意识。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力;2. 以项目为导向,引导学生主动探究,培养学生解决问题的能力;3. 注重团队协作,培养学生沟通、协作能力,提高团队精神。
二、教学内容1. 单片机原理概述:回顾单片机的基本结构、工作原理及性能特点,对应教材第一章内容。
- 单片机的组成与功能- 单片机的工作原理与性能参数2. C语言编程基础:复习C语言基础知识,为单片机编程打下基础,对应教材第二章内容。
- 数据类型、运算符与表达式- 控制语句、函数与数组3. 单片机编程与调试:学习单片机编程方法,掌握调试技巧,对应教材第三章内容。
- 单片机编程环境搭建- 汇编语言与C语言编程- 程序调试与下载4. 单片机外围设备与应用:了解单片机外围设备的使用,学会在实际应用中进行拓展,对应教材第四章内容。
- 并行接口与串行接口- 定时器/计数器、中断系统- ADC、DAC等模块的应用5. 项目实践:结合所学知识,完成一个具有实际应用价值的单片机项目,对应教材第五章内容。
单片机课程设计报告[5篇]
单片机课程设计报告[5篇]第一篇:单片机课程设计报告《单片机课程设计报告》学校:专业:班级:姓名:学号:指导教师:摘要由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。
通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用。
关键词单片机,程序,流水灯,数码管,温度计,键盘扫描,定时器等。
实验内容一、课程设计的目的以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。
实验一:键盘操作实验实验要求:通过本次实验实现对键盘的控制,操作数码管的显示数字。
实验程序:#include #include #include #include #define WR273 XBYTE[0XC000] #define RD244 XBYTE[0XC000] #define uchar unsigned char #define uint unsigned int sbit DQ =P1^0;uint count=0,x,buf[20],tim,flag;uchar fen,shi;uchar codetable_16_1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80 ,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar codetable_16_2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x0 0,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};voidled_clc(void){ XBYTE[0X8000]=0XFF;XBYTE[0X9000]=0XFF;XBYTE [0XA000]=0XFF;XBYTE[0XB000]=0XFF;}void delay(unsigned int i){ while(i--);} void delay_1ms(uint z){ uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);} uchar key_test(){ WR273=0XF0;if((RD244&0X0F)!=0X0F)return 1;else return 0;}void time_init(){ TMOD=0X01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;TR0=1;ET0=1;EA=1;} void time_display(){if(count==10000)count=0;XBYTE[0X8000]=table_16_1[coun t%10];XBYTE[0X9000]=table_16_1[count%100/10];XBYTE[0XA00 0]=table_16_1[count%1000/100];XBYTE[0XB000]=table_16_1[co unt/1000];} void TIME_SET(){ uchar a,b,c,d,key;while(flag==1){ led_clc();while(!key_test());a=keyscan();XBYTE[0XB000]=table_16_1[a];while(!key_test());b=keyscan();XBYTE[0XA000]=table_16_2[b];while(!key_test());c=keyscan();XBYTE[0X9000]=table_16_1[c];while(!key_test());d=keyscan();XBYTE[0X8000]=table_16_1[d] ;while(!key_test());key=keyscan();if(key==11){shi = a*10+b;fen = c*10+d;flag=0;} } } void TIME_DIS(){if(tim==60){ fen++;tim=0;if(fen==60){ shi++;fen=0;if(shi==24)shi=0;} } XBYTE[0X8000]=table_16_1[fen%10];XBYTE[0X9000]=table_16_1 [fen/10];XBYTE[0XA000]=table_16_2[shi%10];XBYTE[0XB000]=ta ble_16_1[shi/10];} void main(){ uint temp;led_clc();// serial_init();time_init();while(1){ temp=keyscan();if(temp==10)fla g=1;TIME_SET();//XBYTE[0X8000]=table_16_1[temp];//time_display();TIME_DIS();} } void time()interrupt 2 { uchar m;TH0=(65536-46080)/256;TL0=(65536-46080)%256;m++;if(m==20){ m=0;count++;tim++;} } void serial()interrupt 4 { if(RI==1){ x=SBUF;RI=0;} put_char(x);delay_1ms(5);}实验心得体会:通过本次实验,让我对单片机实验有了更深的了解,认为这个实验还是比较容易的,没有花太多的时间。
c语言单片机课程设计
c语言单片机课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握C语言在单片机编程中的应用。
2. 学习并掌握单片机的I/O口编程,定时器/计数器,中断处理等基础知识。
3. 掌握单片机与外围设备通信的基本方法,如SPI、I2C等。
技能目标:1. 能够运用C语言编写简单的单片机程序,实现对硬件的控制。
2. 能够运用所学知识,设计简单的单片机控制系统,解决实际问题。
3. 能够阅读和分析单片机程序,具备一定的程序调试能力。
情感态度价值观目标:1. 培养学生的编程兴趣,激发他们学习单片机技术的热情。
2. 培养学生的团队协作精神,提高他们在项目中的沟通与协作能力。
3. 培养学生严谨、细致的学习态度,增强他们面对困难的勇气和毅力。
课程性质分析:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握C语言在单片机编程中的应用,培养他们在电子技术领域的实际操作能力。
学生特点分析:学生为高年级学生,已具备一定的C语言基础和电子技术知识,具有较强的学习能力和动手能力。
教学要求:1. 结合教材,注重理论与实践相结合,让学生在实际操作中掌握知识。
2. 注重培养学生的编程思维和解决问题的能力。
3. 鼓励学生创新,注重个性化发展。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理及性能特点,结合教材第一章内容,使学生建立单片机的基本概念。
2. C语言编程基础:回顾C语言的基本语法,强调在单片机编程中的应用,参考教材第二章内容,为学生编程实践打下基础。
3. I/O口编程:讲解单片机I/O口的工作原理及编程方法,结合教材第三章内容,让学生掌握如何通过编程控制硬件设备。
4. 定时器/计数器:介绍定时器/计数器的工作原理,编程方法及应用场景,参考教材第四章内容,培养学生的实际应用能力。
5. 中断处理:讲解中断系统的原理,中断处理程序的编写与调试,结合教材第五章内容,提高学生的编程技能。
6. 单片机通信:学习单片机与外围设备通信的基本方法,如SPI、I2C等,参考教材第六章内容,使学生对通信协议有更深入的了解。
单片机基础修订本课程设计
单片机基础修订本课程设计一、课程设计概述本课程设计旨在培养学生对单片机控制器的理解和应用能力,通过课程实践,让学生掌握单片机的开发流程,熟练掌握单片机软件和硬件设计,并在实践中提高解决问题的能力,为今后从事单片机开发打下坚实的基础。
二、课程设计前置知识1.C语言编程基础2.电路基础3.单片机基础知识三、理论课程安排第一章单片机基础1.单片机的概念和分类2.单片机的结构和工作原理3.单片机常见的寄存器及其功能4.单片机编程语言的分类5.单片机编程语言的基本语法和程序结构第二章单片机软件开发1.单片机IDE的使用和配置2.单片机的模拟仿真3.单片机程序的调试和优化方法4.单片机常用编程技巧和工具第三章单片机硬件开发1.单片机系统的硬件平台2.单片机外设的接口设计和调试3.单片机系统的电路设计与绘制4.单片机硬件的制作和调试四、实验课程安排实验一单片机开发环境配置和基本程序开发1.搭建单片机开发环境2.编写LED灯闪烁程序3.下载程序到单片机上并测试实验二单片机外设接口设计1.串口通信的基本原理及其应用2.液晶显示器的接口设计3.实现串口通信和液晶显示器的控制实验三单片机系统电路设计与制作1.电路设计的基本原理和方法2.电路图的绘制和制作3.单片机系统的调试和实验测试五、大作业设计与实现学生需要自行选择一个题目进行研究和开发,并在期末提交一份完整的报告和实验成果。
六、考核方式1.日常表现满分20分,比如实验课出勤、课堂讨论和互动。
2.实验报告满分20分,每次实验课需要完成一份实验报告并按时提交。
3.大作业满分30分,根据大作业部署的难易程度给出评分并对成果进行评估。
4.期末考试满分30分,考试内容覆盖理论和实践,考试方式为闭卷笔试。
七、参考教材1.《单片机原理与应用》刘宗儒2.《C语言程序设计基础》吴里宁3.《C语言编程》赵卫东八、结语本课程不仅仅是基础的单片机课程,更是一项富有挑战的实践项目。
希望大家能够认真对待本门课程的学习和实践,不断提高自己的技术水平和应用能力。
单片机程序设计内容 改后 修整
课程设计(论文)题目名称基于单片机的电压表设计课程名称单片机原理及在电气测控学科中的应用学生姓名赵欣学号0941202041系、专业电气工程系(09自动化)指导教师尹进田2011 年6月28日邵阳学院课程设计(论文)任务书年级专业09自动化学生姓名赵欣学号0941202041题目名称基于单片机的数字电压表设计设计时间2011年6月20日—2011年7月1日课程名称单片机原理及在电气测控学科中的应用课程编号121200105设计地点数字控制与PLC实验室\创新实验室(214)(305)一、课程设计(论文)目的课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。
单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象。
《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。
二、已知技术参数和条件1、数字电压表可以测量0~5V的电压,并在四位LED数码管上显示出来。
测量的最小分辨率为0.01V;2、89C51系列单片机,A/D转换器件,LED数码管,LCD液晶显示器等;3、KEIL 软件;Wave软件;Proteus仿真软件;4、THKSCM-1型单片机实验系统。
三、任务和要求设计要求掌握数字电压表的基本原理;掌握数字电压表硬件电路的设计;掌握数字电压表软件程序设计。
设计一个数字电压表,该表可以测量0~12V的电压,并在四位LED数码管上显示出来。
测量的最小分辨率为0.01V。
1、要求设计出电气原理图;2、要求设计出程序流程图;3、要求设计出程序。
四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1、单片机课程设计指导,中南大学出版社,张一斌等2009年9月2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月3、THKSCM-1型单片机实验系统实验指导书、KEIL 软件,WAVE 软件4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。
单片机C语言课程设计
单片机C语言课程设计《单片机C语言程序设计》课程设计一、课程设计时间2012-2013学年第二学期第1-2周下午二、课程设计要求1、根据教师布置的题目进行选题;2、根据实验箱提供的功能,自行设计硬件电路图,并用Protel画出硬件原理图;3、采用单片机C语言或汇编语言进行编程,建议采用单片机C语言进行编程;4、编写完整的软件程序;5、调试、修改、完善;6、写出课程设计报告。
三、参考题目1、全自动洗衣机控制器基本要求:采用步进电机模拟洗衣机电机,实现上水、浸泡、洗涤、漂洗、甩干等过程。
洗涤分弱洗、轻洗、强洗;可设定3级水位设定,每级水位均设定水位下限;可选择漂洗次数(3~5次)。
使用键盘进行流程及参数设定及自动存储流程,设定暂停键,可暂时停止洗衣机的工作,恢复后按原设定程序继续进行,同时设定停止键,可终止洗衣机的工作,并在LED或LCD上显示当前流程。
(1)上水时,通过可调电位器及A/D TLC549模拟水位检测传感器,若水位低于设定水位下限,则通过蜂鸣器报警,手动调节可调电位器,直至水位超过水位下限,切断进水开关(用开关量输出电路模拟),进入下一流程;(2)浸泡不进行任何操作,延时等待30s;(3)洗涤时,先强洗、后轻洗再弱洗。
可直接选择轻洗或弱洗。
强洗、轻洗与弱洗的步进电机转速不同,依次递减,但均需正反转(转速自定、时间自定、正反转的时间自定);(4)漂洗进行正反转,转速介于强洗与弱洗之间,或与强洗同。
(5)甩干高速正向转动,时间自定;(6)洗涤、漂洗间均需脱水、上水,但脱水转速低于甩干。
(7)通过LCD显示当前操作流程及剩余洗涤时时间附加要求:各级水位的设定值保存在X5045中。
2、出租车计价器系统设计主要方法和要求:原理是价格=速度?时间?单价(1)采用直流电机测速单元模拟出租车速度;(2)利用单片机的定时器/计数器定时和计数;(3)用LCD实时显示当前总价、当前时间及里程数,其中总价显示单位为元,显示到小数点后2位,里程数单位为公里,显示到小数后2位;(4)累计里程数及累计行车时间转换以8:00作为转换开始时间;(5)起步公里数为3公里,起步价位5元;当出租车速度低于某一设定值时,自动进行计数,当计时每达到5分钟时,价格按照另一设定值进行计价。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。
本文介绍了一种应用 AT89S52单片机设计的防盗自动报警电子密码锁系统。
经实验验证该系统具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可作为产品进行开发,应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,所以电子密码锁凭着比较强的实用性、锁密匙量大,又要制造简单;既安全可靠,又成本低廉;既保密性强,又实用性广,在密码锁的巨大市场上占有一席之地。
本文讲述了基于AT89S52单片机的“电子密码锁”的设计与实现,首先在绪论中介绍了此系统的简介、研究本系统的目的和意义。
此后,本文在第二、三、四章论述了系统整体结构框图,系统各模块功能,论述了系统工作原理并对所使用各种芯片的功能与特性进行了介绍、系统硬件设计;在第五章中重点剖析了软件设计开发的过程。
而在最后一章简述了本次设计的总结,个人感受。
此外,通过对系统软硬件的不断调试,进一步完善功能,同时也加深了对单片机、LCD液晶显示器、电路设计等方面知识。
关键词: 单片机;AT89S52;电子密码锁; LCD显示1.密码锁1.1密码锁的介绍安全问题是现代社会各界普遍关注的焦点之一。
在现实生活中,很多场合都用到了电子密码锁,比如说门禁系统,银行账户管理,保险箱等等地方都要用到电子密码锁,而且对其要求也很高。
所以高安全性能密码锁的研究就成了一个必需的话题。
近几年各种安全产品(如指纹识别、卡辨识、红外防盗等)已相继问世,但这类产品的特点是针对特定指纹或有效卡。
只能适用于保密要求高或供个人使用的保险箱保险柜等,虽然这些产品安全性高,但其生产成本高,携带、安装及使用不方便,这在一定程度上限制了这类产品的普及和推广。
随着单片机的迅速发展,其应用领域越来越广,如消费电子、家用电器、办公设备、商业营销设备、工业控制和机电一体化控制系统、智能测量仪表以及汽车与航空航天电子系统中都广泛采用了单片机。
51系列单片机由于具有可靠性好,以及扩展控制功能强等优点,成为国内目前应用最广泛的一种8为单片机之一。
随着单片机的应用领域越来越广泛,可以看出其的优越性和可靠性,所以将其应用到保密和安全方面是必然的,也是相当可靠,相当有意义的,基于单片机的电子密码锁的研究在保护财产和人身安全方面可以给人们带来更多更好的选择。
本文介绍的是一种由单片机编程控制实现的多功能密码锁,这种电路设计具有密码输入有效提示、错误指示、控制开锁电平、控制报警电路、密码修改等功能。
可在意外泄密的情况下及时修改密码,密码可以是1-16位,保密性强、灵活性高、特别适用于家庭、办公室学生宿舍及宾馆等场所,具有社会推广价值。
1.2电子密码锁发展趋势从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。
但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。
当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。
因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。
在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。
总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。
电子防盗锁广泛应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:1、授予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款。
目前,金融行业电子防盗锁的应用主要集中在前两个层面上。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子防盗锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件(如伸缩的锁舌或锁栓、锁扣盒锁扣板以及依靠电磁力直接闭锁的电磁部件等)的强度(应有足够的机械强度和刚度,能够承受一定数值、一定方向的静压力和冲击力以及力矩)、锁止型式(能承受某些方式和工具的作用)、配合间隙(防止采用机械的、电子的方法探入锁具内部而被开启)和布局(将薄弱的、与锁的开启直接相关的零部件和电路置于壳体保护之下,并且不易被识别出来)。
提高电子防盗锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。
报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子防盗锁的性能至关重要。
1.3设计原理单片机电子锁是以51系列单片机为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。
单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机通过通信线路向智能监控器报警。
单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。
为了防止通信线路的人为破坏和电磁执行器因某种原因造成流过电磁线圈的电流过大而烧毁线圈,可以加入电流监视技术模块采用MAXIM公司生产的电流/电压转换芯片MAX471。
该芯片能将被测电流I转化成对地输出电压U,且有测量范围大、精度高、输出电压U和被测电流I成正比等特点。
电流监视器输出电压送A/D转换器,单片机通过读取A/D转换结果,获知线路中电流的变化情况,通过分析及时发现异常,发出报警信号。
本设计因为使用了LED灯替代电磁执行器,所以没有采用该保护。
1.4实现功能在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。
到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。
本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。
基于以上思路,本次设计使用 ATMEL公司的 AT89C51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:(1)密码通过键盘输入,若密码正确,则将锁打开。
(2)报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。
电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有 LED 提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
主要的设计实施过程:首先,选用 ATMEL公司的单片机 AT89C51,以及选购其他电子元器件。
第二步,使用protel设计硬件电路原理图。
第三步,使用Keil uVision3 软件编写单片机的 C 语言程序、仿真、软件调试。
第四部,使用 PROTEUS 软件进行模拟软、硬件调试。
最后,联合软、硬件调试电路板,完成本次课程设。
1.5研究的主要内容本设计采用的是串行的EEPROM芯片,使用I2C总线传输数据,这样可以少占用单片机的端口,I2C总线是由PHILIPS公司开发一种简单、双向二线制同步串行总线。