单片机课程设计论文 (微电子学0802 陈伟伟 王文娟 胡日强)
基于单片机的数字钟设计论文设计
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭, 车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路 的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数 字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定 时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘 箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基 础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
单片机经过 1、2、3、3 代的发展,正朝着多功能、高性能、低电压、低功耗、低价 格、大存储容量、强 I/O 功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个 方面:
1、多功能 单片机中尽可能地把所需要的存储器和 I/O 口都集成在一块芯片上,使得单片机可以 实现更多的功能。比如 A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家 狗)、高速 I/O 口及计数器的捕获/比较逻辑等。 有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数 量。例如,有的芯片以 51 内核为核心,集成了 USB 控制器、SMART CARD 接口、MP3 解码 器、CAN 或者 I*I*C 总线控制器等,LED、LCD 或 VFD 显示驱动器也开始集成在 8 位单片机 中。 2、高效率和高性能 为了提高执行速度和执行效率,单片机开始使用 RISC、流水线和 DSP 的设计技术,使 单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机 运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内 ROM(FLASH) 和 RAM 的容量都突破了以往的数量和限制。 由于系统资源和系统复杂程度的增加,开始使用高级语言(如 C 语言)来开发单片机 的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植 性,便于改进和扩充功能。 3、低电压和低功耗 单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于 CMOS 等工艺的大 量采用,很多单片机可以在更低的电压下工作(1.2V 或 0.9V),功耗已经降低到 uA 级。 这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。 4、低价格 单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司 为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。 下面大致介绍一下单片机的主要应用领域和特点。 (1)家用电器领域 用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、 冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。 (2)办公自动化领域
单片机脉冲计数电路设计 毕业设计论文
本科毕业论文(2012届)题目单片机脉冲计数电路设计学院理学院专业应用物理专业班级08073211学号08072121学生姓名xx指导教师xx完成日期2011年12月摘要随着单片机技术和电子技术的不断发展(单片机在医学仪器领域得到广泛应用,其在生物医学信号处理和控制中发挥着越来越重要的作用。
各种生物医学信号经过放大、滤波等处理后(可将模拟信号转换为数字信号送到单片机处理(此外还可以通过单片机根据处理结果对医疗仪器进行控制)。
可以更精确简单便携的检测脉搏、心跳、血压等数据。
因此本论文所做脉冲计数系统采用了以单片机(PIC16F877A)为核心,结合相关的外围元器件例如六位8段数码管、复位电路,再配以相应的软件,达到制作简易脉冲计数器的目的。
以C语言为程序设计的基础,利用PIC单片机独有的CCP捕捉模式能实现脉冲的检测计算,频率实时显示在数码管上。
关键词:PIC16F877A;CCP捕捉模式;脉冲;C语言ABSTRACTWith the single chip microcomputer technology and electronic technology development of microcomputer in the medical instrument (was widely used in the, in the biomedical signal processing and control a more and more important role in biological medicine. Various signal amplified, filtering processing (analog signal after can be converted to digital signals to SCM processing (also can through the MCU according to deal with the results of the medical instrument control). It will be more accurate, simple and portable for the detection of heart beating, blood pressure and pulse data. This research of the digital clock with the single chip processor (PIC16F877A) as the core, combining related peripheral components such as six 8 period of digital tube and reset circuit, matching again with the corresponding software to create a simple counter to the purpose of the pulse. C language program is designed for the foundation, PIC microcontroller unique CCP capture mode is used to realize pulse test calculation, frequency real-time display in digital tubes.Keywords: PIC16F877A;CCP Capture mode;Pulse;C Language目录引言 (1)第一章方案选择 (2)1.1脉冲检测方案 (2)1.2显示方案 (2)1.3编程语言选择方案 (2)第一章系统设计 (4)2.1总体设计 (4)2.2主控制模块的方案选择与设计 (4)2.3芯片介绍 (4)2.3.1 基本介绍 (4)2.4主控模块电路 (10)2.5数码管显示电路设计 (11)2.6Protel99SE设计 (11)第三章软件设计 (13)3.1编程语言的选择 (13)3.2程序设计 (13)3.2.1程序流程图 (13)3.2.2 CPP捕捉中断函数 (14)3.2.3 初始化函数 (14)3.2.4 BCD转化函数 (17)3.2.5 延时函数 (18)第四章选材及应用软件 (20)4.1制作选材 (20)4.1.1 硬件选材 (20)4.1.2 电路制作 (20)4.2源程序编译与软件调试 (21)4.2.1 MPLAB和HI-TECH PICC软件简介 (21)第五章总结 (23)致谢 (25)参考文献 (26)附件 (27)引言单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机课程设计
单片机课程设计单片机课程设计15篇单片机课程设计1课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。
上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。
但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。
团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在XXX、XXX、老师的辛勤指导下,终于游逆而解。
单片机技术及应用论文参考范文
单片机技术及应用论文参考范文单片机技术在我们的生活中的应用非常广泛,比如各种智能IC卡、电子宠物等。
店铺为大家整理的单片机技术论文参考范文,欢迎大家阅读参考。
单片机技术论文参考范文篇一:《单片机监控系统探究》摘要:单片机因为其强大的控制系统目前被广泛应用到了野外作业、企业生产和军事指挥监控之中。
文章介绍了单片机的监控系统方案,并对单片机监控系统的发展趋势进行了预测。
关键词:单片机;监控;数据;通信技术随着半导体技术的飞速发展,当前将超大规模集成电路集成到一个很小硅片上的技术已经得到了实现,由此带来了单片机技术的飞速发展。
目前的单片机,已经由最初的4位、8位单片机,发展到现在的32位300 M高速单片机。
32位单片机由于内部采用了RISC(精减指令系统计算机)机构,因而优化了指令系统,同时也带来了快捷的运算速度和超强的数据处理能力,同时由于其使用方便,具有强大的中断控制系统、定时/事件控制系统,同步/异步通信控制系统,因而可以利用单片机实现对分散测控对象的监控。
目前,这项技术已经被越来越广泛地应用到野外作业、企业生产和军事指挥控制之中了。
1 单片机监控系统方案介绍监控系统需要有一个主站、若干个机动从站构成。
主站的作用在于收集来自传感器的数据信息,发布控制命令及实现自动化转台。
从站位于固定机房、无人值守间及野外作业站等地方,其主要功能是对传感器的指示数据进行检测验收、对Karlman滤波后的生产工艺方程进行解算和相关显控处理等。
主站与从站之间的通信方式采用点与点之间的码分多址通信。
从站电路功能如图1所示。
①主站和从站自定义了60芯的专用系统信号,结构采用双CPU(80C196、8031)扩展STD总线结构。
为了和数据通信板的8031之间数据交换的便利,将0C000H-0C3FFH分配给双口RAM(IDT7130)。
为了方便调试非全地址译码I/O空间,芯片类型选择了在线可编程芯片ISP2031。
②付站显控电路。
单片机的综合电子课程设计毕业设计(论文)
目录摘要 (I)1 前言 (1)2 方案设计 (1)2.1设计任务 (1)2.2工程方案 (1)3 仿真电路设计 (2)3.1仿真电路原理图 (2)3.2 仿真单元电路设计 (3)4 程序设计 (3)4.1程序流程图设计 (4)4.2具体代码实现 (5)5 系统仿真 (5)5. 1 系统仿真过程 (5)5. 2 仿真结果分析 (7)6 PCB板电路的制作 (8)7 总结 (9)参考文献 (10)附录(源程序清单) (11)1 前言首先,单片机向LCD1602输出显示“WELCOME TO USE”的界面,然后外围电路将被测量值转化为模拟信号并输入到AD转化器中,利用单片机启动AD转化,并将转化后的模拟信号读入到单片机并保存在寄存器R5中,单片机将读入的信号处理后转化为能被LCD1602显示的信号输出,LCD1602将测量结果显示。
本课题采用四个中断实现人机对话,分别为定时器0、定时器1、外部中断0、外部中断1。
外部中断0实现电压、电流、电阻三个档位的选择,外部中断1实现测量值档位的选择,定时器0为确认键,当确认后直接显示测量结果,定时器1为复位键。
本课题使用8位AD转化器,转化精度不是很高,课题程序使用了执行效率高的汇编语言,由于汇编语言中并没有浮点运算语句,因此需要编子程序实现浮点除法,本课题采用了八位浮点运算,因此该万用表精度不高。
此设计以单片机为控制核心,实现了硬件电路的设计、程序设计,并能够在PROTEU S平台实现仿真。
并且能在PROTEL软件中绘制PCB电路板。
2 方案设计2.1设计任务(1)实现LCD1602的开机显示;(2)设计外围电路,实现模拟信号的转化与数字信号的转化;(3)设计键盘,实现人机对话;(4)编写程序,实现信号处理与显示;(5)结合程序和电路进行调试;(6)在PROTEL软件中绘制相应的PCB电路板。
2.2 工程方案设计方案根据以下流程来实行:首先分析系统各个模块,并设计系统函数及子函数的功能。
单片机毕业论文范文
单片机毕业论文有关单片机技术论文篇一时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在一周内完成了。
俗话说“好的开始是成功的一半”。
说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。
最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。
第二,是在学习态度上,这次课设是对我的学习态度的一次检验。
对于这次单片机综合课程实习,我的第一大就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。
我们这次实习所遇到的多半问题多数都是由于我们不够严谨。
第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
这个设计过程中,我们通过在原有的计数器系统进行了改进,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自己的一个系统。
设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。
这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。
单片机毕业论文范文精选3篇(全文)
单片机毕业论文范文精选3篇(全文)第一章绪论1. 1 课题的提出及意义单片机作息时间操纵实现了对时间操纵的智能化,摆脱了传统由人来操纵时间的长短的不便,实现代学校必不可少的设备。
1. 2 设计的任务及要求1.作息时间能操纵电铃2.作息时间能启动和关闭放音机单片机作息时间操纵的功能如下:? 使用4位七段显示器来显示现在的时间。
? 显示格式为“时分”? 由led闪动来作秒计数表示? 具有4个按键来作功能设置,可以设置现在的时间及显示定时设置时间? 一旦时间到则发出一阵声响,同时继电器启动,可以操纵放音机开启和关闭。
第二章总体方案设计2. 1 芯片比较2.1.1 单片机选型当今单片机厂商琳琅满目,产品性能各异。
常用的单片机有很多种:intel8051系列、motorola和m68hc系列、atmel的at89系列、台湾winbond(华邦)w78系列、荷兰pilips的pcf80c51系列、microchip公司的pic系列、zilog的z86系列、atmel的at90s系列、韩国三星公司的ks57c系列4位单片机、台湾义隆的em-78系列等。
我们最终选用了atmel公司的at89c52单片机。
at89c52是美国atmel公司生产的低电压,高性能cmos8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(perom)和256bytes的随机存取数据存储器(ram),器件采纳atmel公司的高密度、非易失性存储技术生产,与标准mcs-51指令系统及8052产品引脚兼容,片内置通用8位ZY处理器(cpu)和flash存储单元,功能强大at89c52单片机适用于许多较为复杂操纵应用场合。
2.1.2显示器接口芯片的选择led显示器接口芯片的选择常用的显示器接口芯片有cd4511,cd4513,mc14499,8279,max7219,74hc164等,它们的功能有:1.cpu接受来自键盘的输入数据,并作预处理;2.数据显示的治理和数据显示器的操纵。
单片机程序内容的电子专业毕业设计论文2篇
电子专业基于STC89C52计算器毕业设计论文1.1引言计算器是日常中比较常见的电子产品,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,是一个重要的课题,设计一款简单实用的计算器有实际意义。
本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。
通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高设计实际问题的能力,为单片机应用和开发打下良好的基础。
1.2本设计任务和主要内容采用LCD1602液晶显示,其特点是:可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的I/O口资源线也不多。
在计算器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现LCD液晶显示,虽然在价格上的确是稍贵于LED数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃LED数码管,选择LCD1602液晶显示。
本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。
通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。
对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶显示模块的驱动和操作;在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程。
2. 硬件设计2.1 系统框图如图2.1.1所示,在该设计中采用STC89C52 单片机作为核心处理器,因此在电路中首先需要设计的是STC89C52 的最小系统。
单片机课程设计
课程设计(论文)课程名称单片机题目名称简易密码锁的设计学院高等技术学院专业班级高 1 1 0 9学号学生姓名刘欢指导教师胡立强2013年 11月 28 日目录一,任务目的 (3)二,任务要求 (3)三,电路与元器件 (4)四,程序设计 (5)五,程序运行测试 (6)六,任务小结 (7)七,心得体会 (8)八,参考文献 (9)1.任务目的通过对具有四个按键输入和一个数码管显示的简易密码锁的设计与制作,让读者理解C语言中数组的基本概念和应用技术,并初步了解单片机与键盘和LED数码管的接口电路设计及编程控制方法。
2.任务要求在一些智能门控管理系统,需要输入正确的密码才能开锁。
基于单片机控制的密码锁硬件电路包括三部分:按键、数码显示和电控开锁驱动电路,三者的对应关系如图表所示。
表简易密码锁状态简易密码锁的基本功能如下:4个按键,分别代表数字0,1,2,3:密码在程序中事先设定,为0-3之间的一个数字;上电复位后,密码锁初始状态为关闭,密码管显示符号“—”;当按下数字键后,若与事先设定的密码相同,则数码管显示字符“P”,打开锁,3秒后恢复锁定状态,等待下一次密码的输入,否则显示字符“E”持续3秒,保持锁定状态并等待下次输入。
3.电路与元器件根据任务要求,用一位LED数码管作为显示器件,显示密码锁的状态信息,数码管采用静态连接方式;4个按键连接到P0口的低四位引脚,设连接数字“0”按键、连接数字“1”按键,依次类推;锁的开、关电路用控制的一个发光二极管代替,发光二极管点亮表示锁打开,熄灭表示锁定。
根据以上分析,采用如图所示的连接电路。
图简易密码锁电路简易密码锁电路所需元器件清单如表所示。
元器件名称参数数量元器件名称参数数量插座DIP40 1 电阻103 1 单片机AT89SC51 1 电解电容22UF 1 晶体振荡12MHZ 1 弹性按键 54.程序设计程序设计思路:主程序主要负责按键输入、密码比较判断与显示处理。
基于单片机的步进电机控制课程设计报告
河南农业大学单片机课程设计报告题目名称:步进电机控制系统专业:电子信息工程班级:10 电信一班学号:1004101021学生姓名:汤炜炜指导老师:王玲2013年 6 月27 日目录1.前言 (1)2. 整体设计 (2)2.1步进电机28BYJ-48 (2)2.1.1 28BYJ-48工作原理 (2)2.1.2 28BYJ-48参数 (2)2.2单片机 (3)2.2.1.概述 (3)2.2.2.单片机的选择 (4)2.2.3.单片机的基本结构 (4)3. 电路仿真设计 (6)3.1 仿真软件Proteus的使用 (6)3.2单片机最小系统 (8)3.3液晶显示模块 (9)3.4步进电机及其驱动模块 (12)3.5键盘设计 (13)4. 软件设计 (14)4.1 Keil C51编程软件的使用及调试方法 (14)4.2软件设计要求 (15)4.3系统软件设计流程 (15)4.3.1软件总体设计框图 (15)4.4主程序 (16)4.4.1头文件 (16)4.4.2主程序 (16)4.4.3液晶模块 (16)4.4.4矩阵键盘模块 (18)4.4.5电机模块 (21)5. 调试与功能说明 (23)5.1硬件调试 (23)6. 结束语 (22)7.参考文献 (22)1.前言步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快,其中步进电机也广泛应用于数字控制系统,例如数控机床、绘图机、计算机外围设备、自动记录仪表、钟表和数—模转换装置等。
单片机课程论文设计-电子钟课程设计[修改版]
第一篇:单片机课程论文设计-电子钟课程设计单片机课程论文设计——电子钟一课程设计的主要内容1 设计思想1.1硬件设计思想 1.1.1电路设计思想电路原理图见图1,由动态数码显示组成时、分、秒的显示。
把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中S-S8端口上;“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上。
1.1.2键盘设计思想键盘是微机的主要设备,按键的读取容易引起错误动作。
可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms. 1.2软件设计思想本系统的主程序主要完成时间显示和修改时间的功能。
而时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。
1.2.1数据与代码转换由前述可知,从P2口输出位选码,从P0口输出段选码,LED就会显示出数字来。
但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。
可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,给CD4511译码后去驱动数码管显示。
具体转换过程如下:我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。
如:有一个单元存储了45这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A中。
A中BCD码,高位四位代表¡4¡低四位代表¡5¡同时送给两个译码器中,译码后¡45¡字就在两个LED中显示出来。
基于单片机的课设论文
基于单片机的具有A/D和D/A转换的信号测控装置的设计摘要:本次课程设计以AT89S51单片机为核心,以实现A/D和D/A的转换为主要目标,并通过扩展键盘输入、LED显示、声音报警和与上位机的通信等功能来更好地达到信号测控的目的。
关键词:信号测控、AT89S51单片机、A/D和D/A转换、键盘输入、LED显示、声音报警、上位机的通信Abstract:The curriculum design based on AT89S51 single-chip microcomputer as the core, in order to achieve A / D and D / A conversion as the main target, and extend through the keyboard input and LED display, voice alarm and communication with the host computer and other functions to achieve better signal monitoring and control purposes.Keywords: Signal monitoring and control, AT89S51 chip, A/D and D/A conversion, Keyboard input and LED display,Sound alarm,Computer communication1.背景与意义1.1课程设计的目的本次课程设计以《计算机控制系统》课程的理论为基础,以其他电子类、计算机及接口类相关课程的内容为辅助,以在实践中锻炼学生的系统设计的能力、理论应用的能力、总结归纳的能力以及自我学习的能力为目的,并提高大学生们的实践能力、创新意识与创业精神,为其将来打下坚实的基础。
1.2题目的背景与意义回眸过去的二十世纪,我们可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
单片机课程设计及单片机课程论文
《单片机原理》课程设计报告设计题目: 8路彩灯控制电路设计二00八年十二月十八日目录1 引言 (3)2 系统主要硬件电路设计 (5)3 系统软件设计 (10)4 结束语 (14)参考文献附录8路彩灯控制电路设计1.引言经过对单片机一个学期的学习,对单片机有一些初步的了解。
单片机技术包括硬件和软件两个方面。
硬件是以单片机为核心再加以其他元器件组成的电子电路。
它包括单片机技术有包括模拟,数字等电子电路的综合应用。
软件系统是为了完成一定的任务所编一系列指令的集合。
这次实训设计一种基于STC89C51单片机控制八路彩灯电路,它STC89C51单片机为核心。
因为它的外围电路比较简单,所以主要是考擦学生对单片机基础知识的考察,设计电路既能提高学生模拟、数字等电子电路的综合运用能力,学生自己编写单片机程序,能够进一步熟悉指令,巩固所学知识。
更重要的是使学生知道如何建立单片机与PC机之间的通信,以及怎样使用软件将程序写入单片机,以便于以后自行设计一些单片机电路时可以进行验证或调试。
实训涉及单片机简单外围电路的焊接和程序的编写,既是对学生单片机知识的一个考擦也帮助我们总结所学的相关知识,进一步的了解KEILC51软件的使用和ISP下载技术。
以便今后更好的学习单片机技术。
1.1本设计任务和主要内容实训要求设计八路彩灯控制电路,使用ST89C51这块单片机芯片焊接一个最小系统的外围电路,最小系统包括复位电路、时钟电路。
编写一个满足课题要求的程序,实训涉及到单片机的硬件电路和编写较简单的程序。
通过实训考察学生对单片机基础知识的掌握情况。
同时也要求同学对单片机硬件和软件的结合有所了解并掌握单片机与PC机之间的串口通信方式,知道如何使用PC机和相关软件来检测单片机并将程序写入单片机。
实训要求学生完成单片机外围电路的排版与焊接。
焊接一个由八个发光二极组成的LED电路,焊接成共阳极电路。
用来体会所编写程序的功能,使得更形象的表现出所编写得程序功能。
单片机课程设计论文.doc
单片机课程设计论文设计成员:自动化0803王晓涛学号:********** 自动化0803 李彦峰学号:**********自动化0803 张小龙学号:**********2011年1月6日基于AT89S52单片机的数显交通灯设计摘要: 随着微控技术的日益完善和发展,单片机的使用在不断走向深入。
它的使用必定导致传统的控制技术从根本上发生变革。
它在工业控制、数据采集、智能化仪表、机电一体化、家用电器等领域得到了广泛的使用,极大地提高了这些领域的技术水平和自动化控制。
本项目主要从单片机使用上来实现十字路口交通灯智能化管理,用来控制车辆的正常运作。
关键词:单片机 微控技术 智能化管理 交通灯1项目要求基于AT89S51单片机数显交通灯的设计,主要具有以下功能: 1东西南北路口执直和转弯交替进行,数码管显示直行通行倒计时。
2红绿黄灯显示包括人行道在内的道路交通状态。
3某一方向道路拥挤时,可以人工调节东西南北方向通行时间。
4紧急情况下,各路口交通等显示红灯,数码管保持数据不变。
2系统设计2.1框图设计按照系统设计的要求和功能,将系统分为主控模块,LED 显示模块,电源电路,复位电路,晶振电路,驱动电路灯几个模块,系统组成框图如图1所示。
主控模块采用AT89S52单片机,显示模块采用七段共阴LED 数码管。
图1 基于AT89S52单片机数显交通灯系统组成框图2.2知识点●本项目需要通过学习和查阅资料,掌握和了解如下知识点: ●+5V 电源原理及设计●单片机复位电路工作原理及设计 ●单片机晶振电路工作原理及设计 ●按键电路的设计 ●LED 的特性及使用 ●AT89S52单片机引脚●单片机汇编语言及程序设计3硬件设计AT89S52 单片机电源电路A 道LED 显示电路 红黄绿灯显示电B 道LED 显示电路 红黄绿灯显示电路复位电路 晶振电路按键电路3.1电路原理图基于AT89S52单片机数显交通灯系统硬件电路原理如图2所示,由于单片机需高稳定,高频率的实基脉冲,因此需要晶体振荡器。
单片机教学论文
激发不同层次的学生学习单片机的兴趣电气工程系王文川论文摘要:本文结合单片机教学改革实践的经验,笔者提出了一种适合当前成都市技师院校单片机实践教学的新思路,突出“能力为本”的思想,打破“学科为本”的模式,激发学生学习的积极性,培养学生的工程意识、分析问题和解决问题的能力,针对不同层次的学生,直升学生、三高学生、五高学生、预备技师学生等,作出相应的教学方案和教案及教学方法,并针对学生是否实训,作出具体的学习方案,因此提高学生的创新能力和综合素质。
论文关键词:单片机;实训;一、引言单片机已成为现代电子系统中重要的智能化工具。
无论是尖端科技,还是现代工业、农业、及个人信息终端等诸多领域,都离不开单片机,其使用率和普及率远远超过了其他类型的计算机。
因此“单片机原理及应用”课程也在职业院校的电子类、电气类等专业的教学计划中有着特殊的地位。
特别是现代自动化控制的大量应用,单片机教学方式的改进就是为了更好的使学生将所学到的单片机理论知识转化为适应社会发展潮流和就业需要的实际能力的一种教学活动。
二、改变单片机教学方式的意义传统的教学思路是按教材编写的顺序,先后讲单片机硬件基础知识,指令系统和汇编语言程序的编制,接口技术及应用实例,教学形式单一、方法呆板,实训课则以教师为中心,学生在规定的时间内,用统一的模式,按照指导书上规定的步骤做相同的实验。
学生感到学习内容枯燥乏味,兴趣不大。
所以要改变教学方式,培养学生学习单片机课程的兴趣,注重培养学生的动手能力、创新能力和综合运用知识的能力,造就综合型、创新型、复合型人才。
三、改变教学方式1、单片机实验课中,引入案例教学例如:将下一段指令进行手工汇编:ORG 0000HSJMP STARTORG 0030HSTART: CPL P1.0MOV R5, #0FHLCALL DELAYSJMP STARTDELAY: MOV R6, #32HDEL1: MOV, R7 #64HDJNZ R7, $DJNZ R6, DEL1DJNZ R5, DELAYRETEND必须教会学生如何查指令表,如何查,必须教会学生指令分类,指令序号,虽然很难,但是必须耐心和细心。
彩灯控制器
单片机课程设计(论文)题目:彩灯控制器院(系)工业中心专业机械设计制造及其自动化班级 116001姓名郭帆魏鹏飞导师王党利2014年 7月目录1设计任务 (1)2设计方案 (2)3 硬件设计 (3)3.1 总体方案 (3)3.2 单元电路设计 (4)4 软件设计 (7)5设计小结 (8)参考文献 (9)附录 (10)附录一原理图 (11)附录二程序 (12)1 设计任务1.1设计目的通过课程设计使我们进一步掌握单片机基础课程的有关知识,通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定的提高,同时也提高了我们通过动手进行硬件设计及程序设计的能力,从而提高解决实际问题的能力。
1.2基本要求1. 用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭;(30)2. 可以用输入按键在几种灯光效果间切换;(20)3. 可以通过输入按键暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果。
(15)4* 增加自动在几种效果间切换的功能,并设置一个按键可以在自动模式和手动模式间切换。
(10)5* 使用定时中断延时(5)6@ 实现其他除1~5中提到的功能(创新部分)(20)设计提示:LED可以采用共阳极或共阴极接法直接接在并行口,也可以用8255扩展更多的小灯。
多种效果可以放在不同的子程序空间中,主程序通过散转来访问不同的子程序段。
暂停效果可用中断,或定时扫描实现。
2设计方案彩灯控制器大致可分为两种方案实现。
一种是利用电子电路装置控制,另一种是采用单片机控制。
方案一:根据设计任务要求介绍的彩灯控制电路的基本组成,可以确定彩灯控制器应由振荡电路、计数/时序分配电路、移位位寄存器和彩灯显示五部分组成。
其框图如图1-1所示。
振荡电控制电译码器LED显示电路计数器图1-1 彩灯循环控制器硬件框图方案二:本方案主要是通过对基于单片机的多控制、多闪烁方式的LED 彩灯循环系统的设计,来达到本设计的要求。
单片机课件设计论文 (微电子学0802 陈伟伟 王文娟 胡日强)
单片机课程设计论文微电子学0802小组成员:陈伟伟 0806080208王文娟 0806080202胡日强 0806080216单片机交通灯设计摘要:在通讯、交通、工业等方面单片机的已经成为必不缺少的一部分,为了更好的适应社会的需求,我们通过对单片机的有关设计,了解并且掌握单片机的用途和作用,和制作原理。
系统由单片机系统、LED 显示、交通灯演示系统组成。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理及根据具体情况手动控制等功能。
关键词:单片机;交通灯;控制四个方向车辆行进;倒计时计数:1、方案比较、设计与论证1.1单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和并行I/O接口、中断系统、时钟电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、三代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
1.2芯片简介1.2.1MSC-51芯片简介(1)MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:•中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
•数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计论文微电子学0802小组成员:陈伟伟 0806080208王文娟 0806080202胡日强 0806080216单片机交通灯设计摘要:在通讯、交通、工业等方面单片机的已经成为必不缺少的一部分,为了更好的适应社会的需求,我们通过对单片机的有关设计,了解并且掌握单片机的用途和作用,和制作原理。
系统由单片机系统、LED 显示、交通灯演示系统组成。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理及根据具体情况手动控制等功能。
关键词:单片机;交通灯;控制四个方向车辆行进;倒计时计数:1、方案比较、设计与论证1.1单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和并行I/O接口、中断系统、时钟电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、三代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
1.2芯片简介1.2.1MSC-51芯片简介(1)MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:•中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
•数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
•程序存储器(ROM):8051共有4KB个8位掩膜ROM,用于存放用户程序,原始数据或表格。
•定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
•并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
•全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
•中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
•时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
1.3单片机选择方案我们选择80C51单片机为核心,结合单片机课程设计要求,在提高稳定性的前提下,设计并且制作交通灯,实现了能根据东西南北四个方向的指示灯来控制车辆的行进以及在紧急情况时的处理。
1.4电源选择方案为使模块稳定工作,须有可靠电源。
我们考虑了两种电源方案方案一:采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
由于我们所做的交通灯结构简单,由电源直接驱动的元件只有发光二极管,两个数码管用了74LS245来增强驱动,即电源的负载并不是很重。
综上所述我们选择第二种方案。
1.5选择界面方案系统要求完成倒计时、状态灯等功能。
基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。
这种方案只显示有限的符号和数码字符,无法胜任题目要求。
方案二:完全采用点阵式LED 显示。
这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。
方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。
2、理论分析与计算2.1显示时序的理论分析与计算对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量= 车流 / 时间来表示。
通过80C51芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩6秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过单片机的P0和P2口经过两个八段数码管显示);在紧急情况下可通过P3口的INT0(P3.2)和INT1(P3.3)的中断来控制现场的情况。
2.2亮度问题由于我们所用的数码管和发光二极管的电源都是由单片机的电源来提供的,这样可能会出现显示的亮度不够,因此我们在两个八段数码管的前面加了一个74LS245以增加对它的驱动能力。
3、测试、数据及结果分析3.1状态灯显示测试当电路连接完毕后,将写好的测试程序在电脑上的KEIL软件生成HEX文件。
3.2数码管的测试将串口的和电路板上的接口连接,将写好的测试程序通过串口连接线刷写到单片机的ROM中,然后给单片机上电即可。
3.3整体电路测试系统上电,刷写好程序即可开始测试,观测数码管和发光二极管的显示是否按所编程序的要求进行,灯的显示亮度和数码管的亮度是否正常,同时观察倒计的计数是否正常。
4、总结由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速等等,这需要在实践中进一步完善。
还有在焊接电路板的过程中也出现了不少问题。
如74LS245的管脚中的18引脚控制输入端低电平有效,刚开我们没有管这个引脚,导致信号输不进去。
参考文献:1.张毅坤单片微型计算机原理及应用,西安电子科技大学出版社19982.柴钰单片机原理应用,西安电子科技大学出版社20093.谭浩强单片机课程设计. 北京:清华大学出版社,1998设计心得体会陈伟伟的心得体会:此次设计我负责的主要是软件方案的设计部分和写报告,从考试前知道有课程设计这件事我就开始准备了,所以我并没有感觉到时间紧迫。
首先是编程,虽然我们设计的交通灯功能结构都比较简单,但这是我第一次编这么长的程序,心理很没底。
先找了一个类似的程序根据我门的实际情况进行反复的修改,同时和实际情况相对比设置参数,终于在电脑上把源程序没有错误的生成了。
此时心里就有一股成功的喜悦。
经过查阅资料,我把交通灯的系统电路图设计出来,用Keil和Proteus软件成功的仿真出来,此时我想我们已经成功了一半。
剩下的环节就是这一周做实物了。
实物焊完之后,调试的是时候出现了一些问题,主要是驱动管没连好,经过检查发现驱动管的输入控制引脚没有接。
通过这次课设,让我明白了凡事不能眼高手低,理论上的东西只有通过实际的操作,在实际的操作中才能进一步深刻的领悟,同时也加深了对课本的理解,激发了我们对单片机的学习兴趣。
我想这是这次课设的最重要的目的。
此外,这次课设让我明白了团队合作的重要性,三人一组,各有分工,想互合作,发挥每个人的特长为团队做贡献,这是我们设计成功的最重要的原因。
王文娟的心得体会:我是负责焊接的。
我刚开始我们先把各种元件在电路板上分布好,如何能给人良好的视觉效果,以及对于74LS245、八段数码管这些元件的管脚的标号确定出来,为焊接做准备。
我们以前做过单片机的焊接,只用焊接管脚就可以了,但这次要自己动手布线,连线,感觉很不适应。
我和搭档胡日强瞻前顾后,还是百密一疏,免不了出现考虑不到的地方。
我是主焊,胡日强检查有没有焊错误的地方。
我们商量着先焊哪一个,后焊哪一个。
这里面得重点和难点就是74LS245的焊接,我们两个把管脚先在纸上标记号,对应着实物步步为营,就这样把整个电路的所有元件焊到了板子上。
我以为我们这么认真仔细,保守的做法做出来的东西会一次成功,但运行时只有不按确定灯就不亮,而且数码管没有倒计时,经过请教别人和仔细检查发现没有给电,我们驱动管的输入控制引脚没有接,修改之后,两个都显示正常了。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近2星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
胡日强的心得体会:我是负责硬件模拟的,电脑上软件模拟正确后就是硬件模拟了。
经过一个学期的单片机课程的学习,我对51单片机的基本结构、工作原理及其程序设计有了一定程度的掌握和了解,并且学会按照一定的要求来编写程序。
这次单片机课程设计我们历时一个星期,我们组有三个同学,其中一个做软件,一个焊接,而我主要做硬件模拟。
按照预先设计的程序,我们在试验板上模拟,中间遇到问题:在模拟电路板上,只有共阳的数码管,而我们的程序设计要求用共阴极的数码管,开始我们找老师要共阴极的管子,老师考验我们说自己修改程序也可以。
这个也没有难倒我们,很快问题就解决了。
在实习的第一天,电路板上的红绿黄灯和数码管就按照我们预想的结果正常了。
接下来的工作就是实物的制作。
此次课程设计中,我学到了很多东西,尤为重要的是,让我一个学期的理论知识得到实践。
我们三个默契合作让设计进展顺利,团结就是力量。
感谢老师的谆谆教诲。
附录一:系统总体原理图图1 系统电路图图2 系统实物Y 图3 流程图附录三:程序清单/*交通灯控制系统C语言源程序*#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar data buf[4];uchar data sec_dx=20;//东西数默认uchar data sec_nb=30;//南北默认值uchar data set_timedx=20;uchar data set_timenb=30;int n;uchar data b;//定时器中断次数sbit k1=P1^6;//定义5组开关sbit k2=P1^7;sbit k3=P2^7;sbit k4=P3^0;sbit k5=P3^1;sbit Yellow_nb=P2^5; //南北黄灯标志sbit Yellow_dx=P2^2; //东西黄灯标志sbit Green_nb=P2^4;sbit Green_dx=P2^1;sbit Buzz=P3^7;bit Buzzer_Indicate;bit time=0;//灯状态循环标志bit set=1;//调时方向切换键标志uchar code table[11]={ //共阴极字型码0x3f, //--00x06, //--10x5b, //--20x4f, //--30x66, //--40x6d, //--50x7d, //--60x07, //--70x7f, //--80x6f, //--90x00 //--NULL};//函数的声明部分void delay(int ms);//延时子程序void key();//按键扫描子程序void key_to1();//键处理子程序void key_to2();void key_to3();void display();//显示子程序void logo(); //开机LOGOvoid Buzzer();//主程序void main(){TMOD=0X01;TH0=0XD8;TL0=0XF0;EA=1;ET0=1;TR0=1;EX0=1;EX1=1;logo();P2=0Xc3;// 开始默认状态,东西绿灯,南北黄灯sec_nb=sec_dx+5;while(1){key(); //调用按键扫描程序display(); //调用显示程序Buzzer();}}//函数的定义部分void key() //按键扫描子程序{if(k1!=1){delay(10);if(k1!=1){while(k1!=1){key_to1();for(n=0;n<40;n++){ display();}}}}if(k2!=1){delay(10);if(k2!=1){while(k2!=1){key_to2();for(n=0;n<40;n++){ display();}}}}if(k3!=1){TR0=1; //启动定时器Buzzer_Indicate=0;sec_nb=set_timenb; //从中断回复,仍显示设置过的数值sec_dx=set_timedx;if(time==0){ P2=0X99;sec_nb=sec_dx+5; }else{ P2=0xC3;sec_dx=sec_nb+5; }}if(k4!=1){delay(5);if(k4!=1){while(k4!=1);set=!set;}}if(k5!=1){delay(5);if(k5!=1){while(k5!=1)key_to3();}}}void display() //显示子程序{buf[1]=sec_dx/10; //第1位东西秒十位buf[2]=sec_dx%10; //第2位东西秒个位buf[3]=sec_nb/10; //第3位南北秒十位buf[0]=sec_nb%10; //第4位南北秒个位P1=0xff;// 初始灯为灭的P0=0x00;P1=0xfe;//片选LCD1P0=table[buf[1]];delay(1);P1=0xff;P0=0x00;P1=0xfd;//片选LCD2P0=table[buf[2]];delay(1);P1=0xff;P0=0x00;P1=0Xfb; //片选LCD3P0=table[buf[3]];delay(1);P1=0xff;P0=0x00;P1=0Xf7;P0=table[buf[0]]; //片选LCD4delay(1);}void time0(void) interrupt 1 using 1 //定时中断子程序{b++;if(b==19)// 定时器中断次数{ b=0;sec_dx--;sec_nb--;if(sec_nb<=5&&time==0) //东西黄灯闪{ Green_dx=0;Yellow_dx=!Yellow_dx;}if(sec_dx<=5&&time==1)//南北黄灯闪{ Green_nb=0;Yellow_nb=!Yellow_nb;}if(sec_dx==0&&sec_nb==5)sec_dx=5;if(sec_nb==0&&sec_dx==5)sec_nb=5;if(time==0&&sec_nb==0){ P2=0x99;time=!time;sec_nb=set_time nb;sec_dx=set_timenb+5;}if(time==1&&sec_dx==0){P2=0Xc3;time=!time;sec_dx=set_ti medx;sec_nb=set_timedx+5;}}}void key_to1() //键盘处理子程序之+{TR0=0; //关定时器if(set==0)set_timenb++; //南北加1Selseset_timedx++; //东西加1Sif(set_timenb==100)set_timenb=1;if( set_timedx==100)set_timedx=1; //加到100置1sec_nb=set_timenb ; //设置的数值赋给东西南北sec_dx=set_timedx;}void key_to2() //键盘处理子程序之-{TR0=0; //关定时器if(set==0)set_timenb--; //南北减1Selseset_timedx--; //东西减1Sif(set_timenb==0)set_timenb=99;if( set_timedx==0 )set_timedx=99; //减到1重置99sec_nb=set_timenb ; //设置的数值赋给东西南北sec_dx=set_timedx;}void key_to3() //键盘处理之紧急车通行{TR0=0;P2=0Xc9;sec_dx=00;sec_nb=00;Buzzer_Indicate=1;}void int0(void) interrupt 0 using 1 //只允许东西通行{TR0=0;P2=0Xc3;Buzzer_Indicate=0;sec_dx=00;sec_nb=00;}void int1(void) interrupt 2 using 1 //只允许南北通行{TR0=0;P2=0X99;Buzzer_Indicate=0;sec_nb=00;sec_dx=00;}void logo()//开机的Logo "- - - -"{ for(n=0;n<50;n++){P0=0x40;P1=0xfe;delay(1);P1=0xfd;delay(1);P1=0Xfb;delay(1);P1=0Xf7;delay(1);P1 = 0xff;}}void Buzzer(){if(Buzzer_Indicate==1)Buzz=!Buzz;else Buzz=0;}void delay(int ms) //延时子程序{uint j,k;for(j=0;j<ms;j++)for(k=0;k<124;k++);}附录四。