单片机天才郭天祥的大学经历

合集下载

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。

系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。

踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。

当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。

我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对汇编语言有了更深的认识。

当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。

这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后学习中激励我继续进步。

【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。

了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。

LED显示器:LED显示器是由发光二管组成显示字段的器件。

通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。

有段选码和和位选码。

当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。

LED显示器的显示方式有动态和静态两种。

7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。

郭天祥学习经历--强烈推荐

郭天祥学习经历--强烈推荐

在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。

因此,在这里我要感谢哈尔滨工程大学的历任领导,我今天成绩的取得得益于他们不断完善的教育体制;衷心地感谢曾经教导过我的刁鸣教授、付永庆教授、王松武教授,没有他们对我的培养,也就没有我的今天。

同时我也希望能有更多的电子爱好者加入创新实验室,在完善自我的同时,在电子行业做出更突出的业绩。

2007年,我以全新的教学方式推出了一套讲述51单片机的教学视频课程——“十天学会单片机”,该视频自从网上发布后,得到了电子爱好者的一致好评,诸多的单片机初学者通过这套视频走上了单片机开发之路。

有很多学员来信或打电话希望我能够将视频中的内容著书出版,让更多的人受益。

为此,从2007年9月至2008年7月,我用了近十个月的时间将本书写完。

本书的写作风格与我在教学视频中的讲课风格相似,它与传统讲授单片机的书籍完全不同,我以学单片机“过来人”的思路,抱着如何才能更容易掌握单片机的态度,理论与实践完全结合的方式清晰地讲解了单片机部分。

其余大部分内容为我多年做项目的经验积累,也有部分内容来自于网络电子高手们的精华总结,应当说,在本书中有太多的知识是大家平时在书本上学不到的。

在这里,先将我在大学期间的学习和生活经历与大家分享,借此鼓舞大家珍惜大学时光,多学习文化知识,开创更加美好的明天。

我的大学写这篇文章的时候,我正处于硕士研究生毕业论文的准备阶段,眼睁睁看着我的大学生活即将画上句号,再看看身边有很多低年级的学生们一天天把时间白白荒费掉,我在心里替他们惋惜,在即将结束我的大学生活之际,我将我的大学几年的有意义的生活与大家分享,看过这篇文章后也许能让那些有梦想的同学为了实现自己的人生目标少走些弯路,大家要相信,大学校园——将为你提供一生最好的学习环境。

智能小车大学毕业文献综述

智能小车大学毕业文献综述

基于单片机的智能小车设计(运动控制)学生:指导老师:(惠州学院电子科学系,广东,惠州,516007)[前言]在传感器技术和自动控制技术正在飞速发展时代,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。

现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的Asmara 机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。

作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生实践能力。

但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机械设计制造及其自动化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。

为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。

所以立“寻线智能小车系统设计与调试”一题作为毕业设计来锻炼自己巩固自身知识修养。

1.智能技术的应用及发展趋势如今知识工程、计算机科学、机电一体化和工业一体化等许多领域都在讨论智能系统,人们要求系统变得越来越智能化。

郭天祥CPLD系统设计及VHDL语言的视频教程(CPLD_FPGA)

郭天祥CPLD系统设计及VHDL语言的视频教程(CPLD_FPGA)
更多 >>
相关资源
67.1MB 64.3MB 70.8MB 134.5MB 82.1MB 100.1MB 88.6MB 91MB 125.9MB 131.4MB 126.8MB 8.9MB 1.1GB
/topics/2734162/
2009/6/28
《郭天祥CPLD 系统设计及VHDL 语言的视频教程》(CPLD/FPGA)... Page 2 of 7
自从天祥电子推出40 小时的“十天学会单片机和C 语言编程”视频教程后,受到了广 大电子爱好者的好评,推出“CPLD 器件及VHDL 程序设计”的视频 教程。 这是一部针对初学可编程逻辑器件者的教程,教程全部十讲,讲座从基本的预备知识开 始讲解,非常详细的讲解了Quartus II 的基本使用,从工程的建立、文本的输入,系统的仿 真,RTL 视图查看,管脚的分配,硬件的配置等。整个过程全部用VHDL 语言讲解,从VHDL 语言库的调用,实体的描述,结构体的描 述,进程和函数的应用。一步一步的讲解设计过程中的每个语句和注意事项,同时包括编写后如何查找和修改错误。
第八讲:字符滚动显示例程,主要讲解了如何控制点阵显示字符,并且进行滚动。
第九讲:模数转换控制例程,主要讲解了如何控制ADC0804 进行电压采集并显示数据。
第十讲:正弦波发生器例程,包括了直接数字频率合成(DDS)的原理以及如何应用CPLD 产生频率可控频率的正弦信号。 通过本视频教程地学习,您就可以较快较好的掌握CPLD 器件内部结构和操作原理,以及VHDL 语言的书写规范和编写方法,如果配套我 们的CPLD 开发板一起学习,那肯定能够起到事半功倍的效果,让您不再为学习CPLD 和VHDL 语言而发愁。
3月10日 29楼 举报
[0]

51单片机控制智能小车(3)

51单片机控制智能小车(3)

51单片机控制智能小车(毕业论文)目录前言方案设计与论证控制器模块选取电机模块选取电机驱动器模块选取电源模块选取硬件设计主控系统电机模块电机驱动模块电源模块按键模块软件设计直行设计转弯设计调试中存在的问题参考文献一、前言:随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。

可见其研究意义很大。

本设计就是在这样的背景下提出的,指导教师已经有充分的准备。

本题目是结合科研项目而确定的设计类课题。

我们设计的智能电动小车该具有圆形运行、三角形运行、矩形运行和三者一起运行的功能。

都是运行一循环自动停车。

根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。

这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。

本设计采用STC89C52单片机。

以STC89C52为控制核心,利用按键的动作,控制电动小汽车的轨迹。

实现四种运行轨迹。

STC89C52是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。

二、方案设计与论证控制器模块选取我们采用STC公司的STC89S52单片机作为主控制器,STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它在5V供电情况下,最多支持80M晶振、且内部有512B的RAM数据存储器、片内含8k空间的可反复擦些1000次的Flash只读存储器、1K的EEPROM、8个中断源、4个优先级、3个定时器、32个IO口、片机自带看门狗、双数据指针等。

但是不兼容Atmel。

从方便使用的角度考虑,我们选择了此方案电机模块选取采用普通直流电机。

直流电机运转平稳,精度有一定的保证。

直流电机控制的精确度虽然没有步进电机那样高,但完全可以满足本题目的要求。

郭天祥 我的大学四年

郭天祥 我的大学四年

郭天祥,男,信通学院02812班学生。

曾在军政训练中获得”军事训练优秀学员”称号!,校二等奖学金,“优秀组织者”称号,校园漫画大赛二等奖,“五四杯科技竞赛”一等一次、二等两次,创新奖学金一等、二等, 全国大学生电子设计竞赛黑龙江省赛区一等奖,校“科技实践先进个人”,“科技创新先进个人”称号,“枭龙杯”中国空中机器人竞赛分获两个级别的亚军和季军,免试保送哈尔滨工程大学攻读硕士研究生,中央电视台专题片“我的太阳——创新360之郭天祥,信通学院首届感动校园人物,学校特大重点型学生科研立项“远程无线可控潜水器”成功立项。

熟练掌握各种单片机应用设计、掌握FPGA\CPLD、熟练运用VHDL语言、汇编语言、C语言、C++语言、VC,熟练运用PROTEL DXP绘制多层电路板,熟练使用MAXPLUS 、QUARTUS、MA TLAB等软件。

大学本科四年的时间,我在创新实验室呆了三年,这三年里创新实验室给我提供了宽敞的实验环境,丰富的实验设备,在这里与众多电子爱好者们交流中使我学到了很多的知识,在指导教师们的教导中使我的专业水平得到了不断的升华,希望能有更多的爱好者们加入创新实验室,在电子行业做出更突出的贡献.我的大学四年在最先需要说明一下的是,我写这篇文章的目的并非给大家炫耀我多么厉害,多么能干,而事实上我也真的很一般,在学校像我这样的学生有很多,我以下讲出的是我这四年实实在在的感受和真真切切的经历,我是想借此文章给低年级的同学们一些激励,你们身处在这么好的学习环境里,有很多同学在这里是迷失方向的,不知道自己在大学里究竟该做些什么,我们身边有很多机会可以发挥你的能力,实现你的理想,即使是这些机会不是很明显的让你看见,你也应该去努力争取。

写这篇文章的时候我正身处大学本科生活的第八个学期,眼睁睁看着我大学本科四年最后的时光一点点逝去,再看看身边有很多低年级的学生们一天天把时间就这样白白的荒费掉,我在心里替他们惋惜,在即将结束我的大学本科生涯之际,我将我的大学四年生活与大家分享一下,看过这篇文章后也许能让那些有梦想的同学为了实现自己的人生目标少走点弯路,大家一定要相信,大学校园—这儿有人的一生最好的学习环境。

倒车雷达毕业设计(基于51单片机)

倒车雷达毕业设计(基于51单片机)

&&&&&&&&&&&&毕业设计(论文)题目:基于单片机的倒车雷达的设计学院:&&&&&&&&&&&专业:&&&&&班级:&&&&&&&学生:****导师:**** 职称:****起止时间:2014年3月3日至2014年6月15日毕业设计(论文)诚信声明书本人声明:本人所提交的毕业论文《基于单片机的倒车雷达的设计》是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的文献、数据、图件、资料均已明确标注;对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感。

本人完全意识到本声明的法律后果由本人承担。

论文作者:(签字)时间:2014年6月10日指导教师已阅:(签字)时间:2014年6月10日西安邮电大学毕业设计(论文)任务书学生指导教师**** 职称****学院通信与信息工程学院专业信息工程题目基于单片机的倒车雷达的设计任务与要求1. 调研基于单片机的倒车雷达的设计的现状与背景。

2. 学习51单片机原理及超声波测距原理。

3. 进行相关模块功能的程序设计。

4. 在仿真软件上进行功能仿真。

5. 搭建硬件电路并调试。

6. 软件下载及综合调试。

7. 完成论文,准备答辩。

开始日期2014年3月3日完成日期2014年6月15日院长(签字) 201年 3 月7 日西安邮电大学毕业设计(论文) 工作计划2014年3 月10 日学生**** 指导教师**** 职称****学院通信与信息工程学院专业信息工程题目基于单片机的倒车雷达的设计工作进程主要参考书目(资料)(1)郭天祥. 新概念51单片机C 语言教程:入门、提高、开发、拓展全攻略[M].: 电子工业, 2009. 1.(2)周立功等. 增强型80C51单片机速成与实践[M]. : 航空航天大学, 2003.(7)亮. 跟我学51单片机(一)——单片机最小系统组成与I/O 输出控制[J]. 电子制作,2011, 1: 73-77.1.计算机一台2.硬件材料若干每周指导一次,主要解答学生问题,指导研究进度,并检查阅读资料笔记和仿真程序。

单片机学习心得体会(通用11篇)

单片机学习心得体会(通用11篇)

单片机学习心得体会(通用11篇)单片机学习心得体会1时光荏苒,转眼间,一个学期已经结束,本学期的单片机综合课程设计也在一周内完成。

俗话说“好的开始是成功的一半”。

说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。

其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。

最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。

硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题:一是不够细心,比如因为焊错线不小心,以及因为不熟悉课本理论,出现编程错误。

第二,在学习态度方面,这门课是对我学习态度的一个考验。

对于单片机综合课程的实习,我的第一个体会是,作为一名工程技术人员,首先要求的素质肯定应该是严谨。

我们在这次实习中遇到的大部分问题都是因为我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。

通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。

在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。

还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。

并且我们熟练掌握了有关器件的性能及测试方法。

再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。

郭天祥十天学会单片机PPT课件

郭天祥十天学会单片机PPT课件
2利用定时计数器t1产生定时时钟由p1口控制8个发光二极管使8个指示灯依次一个一个闪动闪动频率为10次秒8个灯依次亮一遍为一个周期循3同时用两个定时器控制蜂鸣器发声定时器0控制频率定时器1控制同个频率持续的时间间隔300ms依次输出110501002004008001khz的方波
十天学会单片机 完整版
五个中断源的中断控制系统; 一个全双工UART(通用异步接收发送器) 的串行I/O口,用于实现单片机之间或单片机 与微机之间的串行通信; 片内振荡器和时钟产生电路,石英晶体和微 调电容需要外接。最高振荡频率取决于单片 机型号及性能。
C51知识
C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言的 功能。目前,使用C语言进行程序设计已经 成为软件开发的一个主流。用C语言开发系 统可以大大缩短开发周期,明显增强程序的 可读性,便于改进、扩充和移植。而针对 8051的C语言日趋成熟,成为了专业化的实 用高级语言。
非总线型
RST P3.0/RXD P3.1/TXD XTAL2 XTAL1 P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 GND 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1/AIN1 P1.0/AIN0 P3.7
C-51数据的存储类型
例:
数据类型 变量名
char var1; bit flags; unsigned char vextor[10]; int wwww; 注意:变量名不能用C语言中的关 键字表示。
◆单板机 将CPU芯片、存储器芯片、I/O接口芯片和 简单的I/O设备(小键盘、LED显示器)等装 配在一块印刷电路板上,再配上监控程序(固 化在ROM中),就构成了一台单板微型计算 机(简称单板机)。

单片机实验心得体会5篇

单片机实验心得体会5篇

单片机实验心得体会5篇单片机实验心得体会篇1单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在单片机里面的应用很多。

由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没有什么捷径可循。

在大二的时候,我就听学长介绍过单片机,当时感觉很神奇,从此就对单片机特别感兴趣,也感觉它特别有用。

于是经学长推荐,在大二上学期我利用学习之余在图书馆借书,学习了kile和proteus软件,刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。

通过学习才大体知道了单片机的一些知识。

由中央处理器cpu、随机存储器ram、只读存储器rom、i/o接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。

也算给我正式学习单片机打下一个基础。

在大二下学期,我购买了一套单片机学习开发板和郭天祥主编的《新概念51单片机c语言教程》,从此正式开启我的单片机学习之路。

在刚开始学时,就完全模仿郭天祥主编的这本书再结合开发板一步一步的学,从点亮一个发光二级管,流水灯,数码管,定时器,中断,矩阵键盘,ad、da,串口通行,i2c总线等一步一步的深入学习。

此时,我虽然能看懂程序,一些简单的程序可以自己编写,但一些比较复杂的自己编不出来。

在大二暑假,我发现了郭天祥主讲的《十天学会单片机》视屏,于是我坚持天天看视屏,然后在自己根据视屏内容结合开发板写程序,调程序,就这样学了一个暑假。

通过这个视屏,我初步了解了单片机的硬件结构,编程方法及调试方法(用kile软件调试和用开发板调试),寄存器的使用,学会了如何看芯片资料,初步开始利用芯片时序图来编程。

可以说这个视屏对我学习单片机有巨大的帮助,更夸张的说是这个视屏将我带进了单片机的世界,让我尽情的体验单片机带给我的快乐!在大三上学期,我有幸参加了教改班的单片机课程学习。

(完整版)十天学会单片机C语言_郭天祥---课后习题答案

(完整版)十天学会单片机C语言_郭天祥---课后习题答案

郭天祥十天学通单片机TX-1C单片机实验板所有课作业+答案,特别整理,供单片机爱好与学习者使用讲次内容细节第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51 知识简介,如何申请免费芯片样品。

点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。

第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60 秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA 的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD 及DA、ADC0804 的操作方法、DAC0832 的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10 位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。

第八讲 1 602液晶、12864 液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51 单片机的定时器设计一个时钟综合运用51 单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。

(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第^一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10 年,并带有闹钟功能、年、月、日、时、分、秒等。

跟郭天祥学单片机

跟郭天祥学单片机

教学争鸣新课程NEW CURRICULUM跟郭天祥学单片机刘玉秀(山东诸城市潍坊工商职业学院)单片机技术是电子信息类学生必须掌握的一门技术,也是现代工科学生就业的一个基本条件,成为理工科院校,同时也是高职院校电子类专业的主要专业课程,它可以充分体现学生利用自己所掌握的知识解决实际工程问题的能力。

在单片机教学过程中,学生不仅要掌握单片机的原理和应用,还应具有“开发”能力,由于其教学内容纷繁复杂,与各种学科相互渗透,如何提高教学的效率是单片机教学过程中的一个研究课题。

传统的单片机教学,就是教师在上面枯燥地讲解理论、程序,下面的学生听得一头雾水,阻碍了学生的学习的兴趣,学生跟教师缺少交流与讨论。

下面介绍单片机的领军人物郭天祥是如何利用他的单片机系统学习单片机的。

郭天祥,老家新疆伊宁,原哈尔滨工程大学学生,后接触单片机,已经成为单片机领域的一个企业家,名下有天祥电子网站,其最大成就之一是开设了十天学会单片机系列课程并录制出来,网络上广泛流传,他建立了个人网站(天祥电子),公司的网站是,主要是产品宣传与销售。

他的单片机研发基地位于哈尔滨工程大学国家大学科技园创业中心4楼,1000多平方米,设备包括多功能贴片机、无铅回流焊机、无铅波峰焊机、BGA返修工作站、流水线组装线等。

拥有完整的小型产品生产线,能够完全满足公司产品焊接需求,此外还可对外承接焊接订单。

他的火爆视频教程介绍:单片机外围电路设计及C语言编程视频教程介绍:这是一部学单片机革命性的视频教程,教程全部十二讲,每讲3小时左右,看视频的同时可以用TX-1C单片机实验板一个实验一个的演示,给学员解释每条指令的意思及原理,通过10天的时间让学生完全掌握单片机的C语言编程及单片机外围电路设计的思想。

全程的屏幕,声音,用屏幕录像,实验板现象用摄像头拍摄,这部教程算是国内首个如此创新的以教师亲自实践为主,学员现场写程序,直接下载到实验板看现象,讲单片机的视频教程,只要你认真看,认真听,保证10天让你学会单片机应用和C语言编程。

读特权同学《深入浅出玩转FPGA》有感

读特权同学《深入浅出玩转FPGA》有感

读特权同学《深入浅出玩转FPGA》有感看了特权同学的这本书,感悟颇多,最终使我重新确立了目标。

只是思路有些杂乱,我得慢慢道来: 初识特权同学实在END网站上,因为他的FPGA助学活动,在得到他的35集FPGA教学视频后,得知他已经和北京航空航天大学出版社合作出板了《深入浅出玩转FPGA》一书。

对于国内格式呆板、内容互抄的教科书,我是一直没有任何兴趣的,但是对于这样一个搞过FPGA项目的工程师写出的经验之谈,而且是以随笔的形式写出的书,我是没有任何理由放过的。

也许我最需要的不是一份说教的知识,而是一个可以在我最困难的时候让陪我聊天、给我动力的‘人’,而这个‘人’就隐藏在这本书点点滴滴、洋洋洒洒的文字之间,等着我去感悟。

由于我个人是习惯在当当网买书的,于是当下就去当当网搜索了一下,果然有这本书,售价是31.9元,但由于最近经济的原因我始终没有点下购买的按钮,于是自己买到这本书的计划便搁浅了。

  也就是昨天我和一帮兄弟们去吉大的时候,偶然在兄弟那边看到了这本书,于是很爱不释手,当时便决定从兄弟手中‘横刀夺爱’了。

呵呵,于是,这本书便随我来到了理工,被我带到了实验室。

对于这样一本不同于现代呆板教材的书,我是很欣赏的,于是我开始用心去读这本书,去尽量感悟这本书的精髓,破开表面的知识去追求作者要给我们表达的深层次的意义。

很有幸的,我最后的结论是我没有选错书,在这本书中我感悟了很多,虽然我只读了第一个晚上,但这本书给我带来的感悟要比其他书籍在几周甚至几个月给我带来的感悟远远多得多...我感悟了很多,依靠串行触发是解决不了的,于是,我得用并行触发的方式来表达我的思路,首先得解释一下什么是并行触发:并行是指可以在同一时间进行响应,而没有顺序的问题。

于是,在这部分,我拿并行的概念套用一下,下面的这些感悟没有刻意的进行先后排序,既没有重要程度的高低和内容高低的划分,因为我认为:每一点思考都可以带来进步。

下面我就开始慢慢道来:1:它纠正了我对FPGA的认识 说实话,我的兄弟在去年寒假就给我买好了FPGA开发板,我们分配的任务是我在理工主要攻FPGA方向,很惭愧的是当我用原来单片机的方式去学习FPGA时遇到了很大的障碍,这段学习的路进展很缓慢,于是不知不觉已经推迟到了今年暑假。

我的大学四年——郭天祥

我的大学四年——郭天祥

书,这样就理解得很透彻了,就是从那时起我每天早上八点之前就到实验室了,除了选上部分课外,其他时间都泡在实验室里,一直到晚上十点多看楼的大爷用脚踹着实验室的门叫我走我才离开实验室。

那时每天就摆弄单片机,没有人教我,全是我自己一个人摸索,而且当时学的是非常难懂的汇编语言。

记得大一时也学过C语言,可我发现等要用的时候我什么也不会,根本和单片机联系不起来,就和没学一样,我只好选择汇编语言,大概一个月后,也就是快放暑假时,我做出来了自己的第一个单片机作品,一个电子钟。

有人说你要是用单片机做出一个电子钟,那你基本上已经掌握单片机的80%了。

这句话有道理,电子钟对编程的综合性要求还是相当高的。

那时,我对单片机已经有了初步的掌握,假期的时候我报名参加了2004年黑龙江省大学生电子设计大赛,那天起我搬进了学校的电子创新实验室,我们选的题目是无线数据通信,当时指导老师让我们用FPGA做,其中还要用到VC编程及C++语言,我那时还不懂什么是FPGA,于是我开始拼命地学这些知识,每天吃饭都在实验室。

省赛不同国赛,省赛是把题目先发下来,两个月后交作品就行,其实学FPGA/CPLD也和学单片机一样,关键是自己动手写程序实践,不停地写程序,然后看程序运行的效果,这两个月里我把VHDL语言搞得很熟练,但是VC还差了一点。

我们队一共三个人,除我之外还有路智超(做模拟电路部分)和魏旭东(上位机VC程序),魏旭东是我校理学院的,VC学得相当好,他的VC编程也全是自已业余学的。

魏旭东编程时,我就在旁边看,他耐心地给我解释每一行每一句,等空闲时我自己再练,那段时间我对VC有了初步的了解。

比赛结果很好,我们获得了黑龙江省一等奖,这也是我的第二次获奖,这次获奖给了我很大的鼓舞,接下来我发现必须要学单片机C语言编程了,汇编编程非常烦琐,一个全面的人才不能只将知识局限于某一方面。

从大三开始学校里有各种电子设计竞赛,我总是积极报名参加,为自己寻找锻炼的机会,我为此放弃了我最喜欢的篮球、足球运动,再没有逛过一次街,每天早上起床、洗脸、刷牙,然后就拿着书去实验室,白天在实验室写程序、调电路,做各种硬件练习,晚上回来补充理论知识,模电、数电、高频一遍一遍地重复看,每晚差不多两点睡觉,充分地把实践与理论结合在了一起,那时我才发现大学里的理论知识同样是那么重要,而原来根本没有意识到。

基于单片机的顶棚遮阳帘自动控制系统设计

基于单片机的顶棚遮阳帘自动控制系统设计

• 174•为了解决在日光强烈照射时阳光房室内光线炫目、热辐射温度过高的问题,研究并设计了一款顶棚遮阳帘自动控制系统。

系统以STC89C51单片机作为核心控制器,通过对BH1750FVI数字型光强度传感器光强信号、手动控制信号的接收和处理,向电机驱动电路发出控制信号,驱动执行机构完成遮阳帘自动展开和卷起,实现遮阳帘的自动控制。

该系统具有操作简单,成本低,运行稳定的特点,适合家庭使用。

1 引言阳光房也被称为玻璃房,主要是由玻璃与金属框架组合搭建而成,阳光房美观明亮,室内阳光充足,深受人们喜爱。

为了防止夏季阳光热辐射导致室内温度过高和光线过强,通常在房顶设置手动或人工控制的电动遮阳机构,为了进一步增加遮阳机构使用的便捷性和易用性,设计了一种能自动开合的电动遮阳帘。

2 系统设计遮阳帘自动控制系统主要由S T-C89C51主控器模块、光强采集模块、光强数值显示模块、手动控制输入模块、光强数据输入模块、控制执行驱动模块组成,系统框图如图1所示。

该系统设置了自动控制模式和手动控制模式。

在自动模式下,系统通过对室内光线强度的检测,与设定的光线强度最大值和最小值进行比较,当检测值大于最大预设值时,系统控制遮阳帘按钮,系统执行中断程序,根据遮阳帘当前状态,按用户要求实现遮阳帘的人工控制。

3 系统硬件设计3.1 主控制器系统主控器使用的是STC89C51单片机组成的最小系统,STC89C51单片机是一种低功耗、高性能CMOS 8位微型控制器,最高工作时钟频率为80MHz ,片内含8K Bytes 的可反复擦写1000次的Flash 只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,具有在系统可编程(ISP )特性。

3.2 光强采集模块本系统中使用光强传感器型号是BH1750FVI ,BH1750F-VI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路,支持IICBUS 接口,测光范围广泛(1-65535LX ),直接输出数字量。

基于郭天祥的十天学通单片机,其讲课中涉及到的源程序

基于郭天祥的十天学通单片机,其讲课中涉及到的源程序

以下程序基于郭天祥的十天学通单片机TX-1C单片机实验板,是其讲课中涉及到的源程序Lesson11#include<reg52.h>sbit D2=P1^2;unsigned int a;void main(){D2=0;/* for(a=0;a<=10000;a++){};D2=1;for(a=0;a<=10000;a++){};*/}2#include<reg52.h>void main(){P1=0xfd;}lesson21#include<reg52.h>sbit p1_1=P1^0unsigned int avoid main(){while(1){a=51000;p1_1=0;while(a--);a=51000;while(a--);p1_1=1;a=51000;while(a--);a=51000;while(a--);}}2#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit D1=P1^0;//void delay();void delay(uint);void main(){ while(1){D1=0;delay(100);D1=1;delay(100);}}/*void delay(){uint x,y;for(x=100;x>0;x--)for(y=600;y>0;y--);}*/void delay(uint z){uint x;uchar y;for(x=z;x>0;x--)for(y=20;y>0;y--);}lesson31#include<reg52.h>sbit dula=P2^6;sbit wela=P2^7;void main(){wela=1;P0=0xc0;wela=0;dula=1;P0=0x06;dula=0;while(1);}2 #include<reg52.h>#define uint unsigned int#define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;uchar num;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uint z);void main(){wela=1;//11101010P0=0xea;wela=0;while(1){for(num=0;num<16;num++) {dula=1;P0=table[num];dula=0;delay(1000);}}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}3#include<reg52.h>#define uint unsigned int#define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;sbit d1=P1^0;uchar num;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uint z);void main(){EA=1;//开总中断EX0=1;//开外部中断0//IT0=1;TCON=0x01;wela=1;//11101010P0=0xea;wela=0;while(1){for(num=0;num<16;num++) {d1=1;dula=1;P0=table[num];dula=0;delay(1000);} }}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void exter0() interrupt 0{d1=0;}4#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;sbit d1=P1^0;uchar num,num1;tt;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint z);void main(){num=0;tt=0;TMOD=0x11;//设置定时器0为工作方式1TH0=(65536-10000)/256;TL0=(65536-10000)%256;TH1=(65536-20000)/256;TL1=(65536-20000)%256;// EA=1;//开总中断ET0=1;//开定时器0中断ET1=1;TR0=1;//启动定时器0TR1=1;wela=1;//11101010P0=0xea;wela=0;dula=1;P0=0x3f;dula=0;while(1){if(num1==25){num1=0;P1=~P1;}if(tt==100){tt=0;num++;if(num==16)num=0;dula=1;P0=table[num];dula=0;}}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void time0() interrupt 1 {TH0=(65536-10000)/256; TL0=(65536-10000)%256; tt++;}void time1() interrupt 3 {TH1=(65536-20000)/256; TL1=(65536-20000)%256; num1++;}Lesson41.#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char uchar temp,aa,num;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uint z);void main(){num=0;aa=0;TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;temp=0xfe;P1=temp;dula=1;P0=table[0];dula=0;wela=1;P0=0xc0;wela=0;while(1){delay(1000);temp=_crol_(temp,1);P1=temp;/* if(aa==40){aa=0;num++;if(num==16)num=0;dula=1;P0=table[num];dula=0;} */}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void timer0() interrupt 1 {TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++;if(aa==40){aa=0;num++;if(num==16)num=0;dula=1;P0=table[num];dula=0;}}Lesson4-2#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char uchar temp,aa,numdu,numwe; sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar code tablewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //void delay(uint z);void main(){numdu=0;numwe=0;aa=0;TMOD=0x01;TH0=(65536-5000)/256;TL0=(65536-5000)%256;EA=1;ET0=1;TR0=1;while(1){// delay(1000);// temp=_crol_(temp,1);// P1=temp;if(aa==1){aa=0;numdu++;if(numdu==7)numdu=1;dula=1;P0=table[numdu];dula=0;wela=1;P0=tablewe[numwe];wela=0;numwe++;if(numwe==6)numwe=0;}}}/*void delay(uint z){uint x,y; for(x=z;x>0;x--)for(y=110;y>0;y--);}*/void timer0() interrupt 1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;aa++;}Lesson4-3#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar temp,aa,bai,shi,ge;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void display(uchar bai,uchar shi,uchar ge);void delay(uint z);void init();void main(){init();//初始化子程序while(1){if(aa==20){aa=0;temp++;if(temp==100){temp=0;}bai=temp/100;shi=temp%100/10;ge=temp%10;}display(bai,shi,ge);}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void display(uchar bai,ucharshi,uchar ge){dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(1);}void init(){wela=0;dula=0;temp=0;TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void timer0() interrupt 1 {TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++;}Lesson51#include <reg52.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned int sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0};uchar temp,t0,t1,bai,shi,ge,flag,flag1; uint shu;void init();voiddisplay(uchar,uchar,uchar,uchar,ucha r,uchar);void delay(uint z){uint t1,y;for(t1=z;t1>0;t1--)for(y=110;y>0;y--);}void main(){init();while(1){if(flag1!=1)display(7,6,5,bai,shi,ge);elsedisplay(16,17,18,18,19,20);}}void init(){shu=432;temp=0xfe;P1=temp;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0++;if(flag!=1){if(t0==10){t0=1;temp=_crol_(temp,1);P1=temp;}}else{if(t0%4==0)P1=~P1;if(t0==60){TR0=0;P1=0xff;flag1=1;}}}void timer1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;t1++;if(t1==2){t1=0;shu--;bai=shu/100;shi=shu%100/10;ge=shu%10;if(shu==398){TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;flag=1;t0=0;P1=0xff;TR1=0;}}}void display(uchar aa,uchar bb,uchar cc,uchar ba,uchar sh,uchar g){dula=1;P0=table[aa];dula=0; P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);dula=1;P0=table[bb];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(1);dula=1;P0=table[cc];dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(1);dula=1;P0=table[ba];dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(1);dula=1;P0=table[sh];dula=0;P0=0xff;wela=1;P0=0xef;wela=0;delay(1);dula=1;P0=table[g];dula=0;P0=0xff;wela=1;P0=0xdf;wela=0;delay(1);}Lesson5-2#include<reg52.h>#define uint unsigned int#define uchar unsigned char sbit d1=P1^0;sbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar num;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void main(){wela=1;P0=0xfe;wela=0;P3=0xff;while(1){if(key1==0){delay(5);if(key1==0){d1=0;num++;if(num==10)num=0;}while(!key1);delay(5);while(!key1);}elsed1=1;dula=1;P0=table[num];dula=0;}}Lesson5-3#include<reg52.h>#define uint unsigned int#define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0}; uchar num,temp,num1; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}uchar keyscan();void display(uchar aa); void main(){num=17;dula=1;P0=0;dula=0;wela=1;P0=0xc0;wela=0;while(1){display(keyscan());}}void display(uchar aa) {dula=1;P0=table[aa-1];dula=0;}uchar keyscan(){P3=0xfe;temp=P3;temp=temp&0xf0; while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0; while(temp!=0xf0){temp=P3;switch(temp){Case 0xee:num=1; break;case 0xde:num=2; break;case 0xbe:num=3; break;case 0x7e:num=4;break;}while(temp!=0xf0) {temp=P3;temp=temp&0xf0; }}}P3=0xfd;temp=P3;temp=temp&0xf0; while(temp!=0xf0) {delay(5);temp=P3;temp=temp&0xf0; while(temp!=0xf0) {temp=P3;switch(temp){case 0xed:num=5; break;case 0xdd:num=6; break;case 0xbd:num=7; break;case 0x7d:num=8; break;}while(temp!=0xf0) {temp=P3;temp=temp&0xf0; }}}P3=0xfb;temp=P3;temp=temp&0xf0; while(temp!=0xf0) {delay(5);temp=P3;temp=temp&0xf0; while(temp!=0xf0) {temp=P3;switch(temp){case 0xeb:num=9; break;case 0xdb:num=10; break;case 0xbb:num=11; break;case 0x7b:num=12; break;}while(temp!=0xf0) {temp=P3;temp=temp&0xf0; }}}P3=0xf7;temp=P3;temp=temp&0xf0; while(temp!=0xf0) {delay(5);temp=P3;temp=temp&0xf0; while(temp!=0xf0) {temp=P3;switch(temp){case 0xe7:num=13; break;case 0xd7:num=14; break;case 0xb7:num=15; break;case 0x77:num=16; break;}while(temp!=0xf0) {temp=P3;temp=temp&0xf0; }}}return num;}Lesson61#include<reg52.h> sbit csda=P3^2; sbit wr=P3^6;void main(){csda=0;wr=0;P0=0;while(1);}Lesson6-2#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit wr=P3^6;sbit rd=P3^7;void delay(uint z){uint t1,y;for(t1=z;t1>0;t1--)for(y=110;y>0;y--);}void init();void start();void main(){init();while(1){start();delay(20);rd=0;delay(10);rd=1;delay(10);}}void init(){P0=0;}void start(){wr=1;wr=0;wr=1;}Lesson7#include<reg52.h>unsigned char flag,a;void main(){TMOD=0x20;//设置定时器1为工作方式2TH1=0xfd; TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;while(1){/* if(RI==1){RI=0;P1=SBUF;}*/if(flag==1){ES=0;flag=0;SBUF='1';//28;while(!TI);TI=0;SBUF='2';//28;while(!TI);TI=0;SBUF='3';//28;while(!TI);TI=0;ES=1;}}}void ser() interrupt 4{RI=0;// P1=SBUF;a=SBUF;flag=1;}Lesson8#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]="I LIKE MCU!"; uchar code table1[]=""; sbit lcden=P3^4;sbit lcdrs=P3^5;sbit dula=P2^6;sbit wela=P2^7;uchar num;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com) {lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date) {lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){dula=0;wela=0;lcden=0;write_com(0x38);write_com(0x0e);write_com(0x06);write_com(0x01);write_com(0x80+0x10);}void main(){init();for(num=0;num<11;num++) {write_data(table[num]); delay(20);}// write_com(1);write_com(0x80+0x53);for(num=0;num<13;num++) {write_data(table1[num]); delay(20);}for(num=0;num<16;num++) {write_com(0x18);delay(20); }while(1);}Lesson9#include<reg52.h>#define uchar unsigned char sbit sda=P2^0;sbit scl=P2^1;uchar a;void delay(){ ;; }void start() //开始信号{sda=1;delay();scl=1;delay();sda=0;delay();}void stop() //停止{sda=0;delay();scl=1;delay();sda=1;delay();}void respons() //应答{uchar i;scl=1;delay();while((sda==1)&&(i<250))i++; scl=0;delay();}void init(){sda=1;delay();scl=1;delay();}void write_byte(uchar date) {uchar i,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1;scl=0;delay();sda=CY;delay();scl=1;delay();// scl=0;// delay();}scl=0;delay();sda=1;delay();}uchar read_byte(){uchar i,k;scl=0;delay();sda=1;delay();for(i=0;i<8;i++){scl=1;delay();k=(k<<1)|sda;scl=0;delay();}return k;}void delay1(uchar x){uchar a,b;for(a=x;a>0;a--)for(b=100;b>0;b--);}void write_add(uchar address,uchar date){start();write_byte(0xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();}uchar read_add(uchar address){uchar date; start();write_byte(0xa0);respons();write_byte(address);respons();start();write_byte(0xa1);respons();date=read_byte();stop();return date;}void main(){init();write_add(23,0xaa);delay1(100);P1=read_add(23);while(1);}Lesson10#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;sbit rs=P3^5;sbit lcden=P3^4;sbit s1=P3^0;sbit s2=P3^1;sbit s3=P3^2;sbit rd=P3^7;uchar count,s1num;char miao,shi,fen;uchar code table[]=" 2007-7-30 MON";uchar code table1[]=" 00:00:00"; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date){rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){uchar num;dula=0;wela=0;lcden=0;// fen=59;// miao=53;// shi=23;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<12;num++){write_date(table1[num]);delay(5);}TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void write_sfm(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge); }void keyscan(){rd=0;if(s1==0){delay(5);if(s1==0){ s1num++;while(!s1);if(s1num==1){TR0=0;write_com(0x80+0x40+10); write_com(0x0f);}}if(s1num==2){write_com(0x80+0x40+7); }if(s1num==3){write_com(0x80+0x40+4); }if(s1num==4){s1num=0;write_com(0x0c);TR0=1;}}if(s1num!=0){if(s2==0){delay(5);if(s2==0){while(!s2);if(s1num==1){miao++;if(miao==60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10); }if(s1num==2){fen++;if(fen==60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7); }if(s1num==3){shi++;if(shi==24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4); }}}if(s3==0){delay(5);if(s3==0){while(!s3);if(s1num==1){/* if(miao==0){miao=59;write_sfm(10,miao);write_com(0x80+0x40+10); }*/miao--;if(miao==-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10); }if(s1num==2){fen--;if(fen==-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7); }if(s1num==3){shi--;if(shi==-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4); }}}} }void main(){init();while(1){keyscan();}// while(1);}void timer0() interrupt 1 {TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;if(count==18){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}write_sfm(4,shi);}write_sfm(7,fen);}write_sfm(10,miao);}}Lesson11---shizhong.c#include<reg52.h>#include<define.h>void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void didi(){beep=0;delay(50);beep=1;delay(100);beep=0;delay(50);beep=1;}void write_com(uchar com) {rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date) {rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){uchar num;EA=1;EX0=1;IT0=1;dula=0;wela=0;lcden=0;// set_time();set_alarm(14,13,10);write_ds(0x0B,0x26);read_ds(0x0c);// fen=59;// miao=53;// shi=23;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<15;num++) {write_date(table[num]); delay(5);}write_com(0x80+0x40); for(num=0;num<12;num++){write_date(table1[num]);delay(5);}}void write_sfm(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void keyscan(){rd=0;if(flag1==1){if(s2==0){delay(5);if(s2==0){while(!s2);flag1=0;}}if(s3==0){delay(5);if(s3==0){while(!s3);flag1=0;}}}if(s1==0){delay(5);if(s1==0){ s1num++;flag=1;flag1=0;while(!s1);if(s1num==1){TR0=0;write_com(0x80+0x40+10);write_com(0x0f);}}if(s1num==2){write_com(0x80+0x40+7); }if(s1num==3){write_com(0x80+0x40+4); }if(s1num==4){s1num=0;write_com(0x0c);flag=0;write_ds(0,miao);write_ds(2,fen);write_ds(4,shi);}}if(s1num!=0){if(s2==0){delay(1);if(s2==0){while(!s2);if(s1num==1){miao++;if(miao==60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10); }if(s1num==2){fen++;if(fen==60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7); }if(s1num==3){shi++;if(shi==24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4); }} }if(s3==0){delay(1);if(s3==0){while(!s3);if(s1num==1){/* if(miao==0){miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);}*/miao--;if(miao==-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);}if(s1num==2){fen--;if(fen==-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);}if(s1num==3){shi--;if(shi==-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4);}}}}}void write_ds(uchar add,uchar date) {dscs=0;dsas=1;dsds=1;dsrw=1;P0=add;dsas=0;dsrw=0;P0=date;dsrw=1;dsas=1;dscs=1;}uchar read_ds(uchar add){uchar ds_date;dsas=1;dsds=1;dsrw=1;dscs=0;P0=add;dsas=0;dsds=0;P0=0xff;ds_date=P0;dsds=1;dsas=1;dscs=1;return ds_date;}void set_time(){write_ds(4,10);write_ds(2,32);}void set_alarm(uchar ashi,uchar afen,uchar amiao){write_ds(1,amiao);write_ds(3,afen);write_ds(5,ashi);}void main(){init();while(1){keyscan();if(flag1==1)didi();if(flag==0){miao=read_ds(0);fen=read_ds(2);shi=read_ds(4);write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);}}}void exter() interrupt 0{ uchar c;flag1=1; c=read_ds(0x0c); }。

基于单片机的车内防窒息监测报警系统

基于单片机的车内防窒息监测报警系统

• 129•本文针对车内防窒息应用需求,基于STC89C52单片机、红外传感器、GSM 模块等设计了一款车内防窒息监测报警系统。

车辆熄火后,通过红外传感器多次检测车内是否还有人,当系统确认车内有人时,触发电机转动控制车窗升降,同时,向预设置手机发送报警短信,对外发出尖锐的报警声,多措施多方位保护车内儿童安全,以解决儿童等弱势群体在车内窒息身亡的问题。

0 引言随着人民生活水平的提高,汽车日益成为人们的重要交通工具。

近年来,国内外屡屡发生监护人将孩子遗忘在车内而导致的儿童高温窒息的悲剧,研究表明,当气温达到35℃时,阳光照射15min ,封闭车厢内温度可升至65℃,在这样的环境里待上半小时就能致命,让人不得不对家庭用车安全注意起来。

而当今互联网技术、安全监控系统以及传感器和单片机的飞速发展,为车内防窒息监测报警功能提供了可能。

基于上述背景,本文设计一款基于单片机的车内防窒息监测报警系统,以有效防止家庭用车中孩童误被锁车内的安全隐患。

1 系统方案设计本文设计的车内防窒息监测报警系统,利用红外线传感器检测车内环境情况,识别车内是否还有人,反馈给单片机,单片机对输入的信号进行处理,通过I/O 口输出的脉冲信号传送给步进电机,驱动它按设定的方向转动一定角度;同时,通过蜂鸣器引起路人注意,GSM 模块给预存联系人发短信(余贤祥,一种防止在汽车内窒息的方法和系统,中国专利:CN201410589723.X ,2015),通知其车内遗留儿童或其它人员,以实现短信报警远程监控。

系统工作原理图如图1所示。

图1 系统工作原理图图2 热释电红外传感器电路图2 系统硬件设计车内防窒息监测报警系统主要由检测系统、控制系统、执行系统以及动力系统组成。

2.1 检测系统检测系统的核心是热释电红外传感器。

热释电红外传感器以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出(钱爱玲,钱显毅,传感器原理与检测技术:机械工业出版社,2015),将电压信号加以放大,便可驱动各种控制电路。

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

致阅读本书的大学生朋友在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。

因此,在这里我要感谢哈尔滨工程大学的历任领导,我今天成绩的取得得益于他们不断完善的教育体制;衷心地感谢曾经教导过我的刁鸣教授、付永庆教授、王松武教授,没有他们对我的培养,也就没有我的今天。

同时我也希望能有更多的电子爱好者加入创新实验室,在完善自我的同时,在电子行业做出更突出的业绩。

2007年,我以全新的教学方式推出了一套讲述51单片机的教学视频课程——“十天学会单片机”,该视频自从网上发布后,得到了电子爱好者的一致好评,诸多的单片机初学者通过这套视频走上了单片机开发之路。

有很多学员来信或打电话希望我能够将视频中的内容著书出版,让更多的人受益。

为此,从2007年9月至2008年7月,我用了近十个月的时间将本书写完。

本书的写作风格与我在教学视频中的讲课风格相似,它与传统讲授单片机的书籍完全不同,我以学单片机“过来人”的思路,抱着如何才能更容易掌握单片机的态度,理论与实践完全结合的方式清晰地讲解了单片机部分。

其余大部分内容为我多年做项目的经验积累,也有部分内容来自于网络电子高手们的精华总结,应当说,在本书中有太多的知识是大家平时在书本上学不到的。

在这里,先将我在大学期间的学习和生活经历与大家分享,借此鼓舞大家珍惜大学时光,多学习文化知识,开创更加美好的明天。

我的大学写这篇文章的时候,我正处于硕士研究生毕业论文的准备阶段,眼睁睁看着我的大学生活即将画上句号,再看看身边有很多低年级的学生们一天天把时间白白荒费掉,我在心里替他们惋惜,在即将结束我的大学生活之际,我将我的大学几年的有意义的生活与大家分享,看过这篇文章后也许能让那些有梦想的同学为了实现自己的人生目标少走些弯路,大家要相信,大学校园——将为你提供一生最好的学习环境。

我高中毕业于新疆伊宁市三中,2002年考入哈尔滨工程大学信息与通信工程学院电子信息工程专业,2006年以创新人才免试保送哈尔滨工程大学硕士研究生,现在已经是我在学校的最后一个学期了。

记得我刚入校的时候对电子知识一点也不懂,之前我比较喜欢经商,想着好好努力,将来开个公司,做做生意,所以第一志愿报了经济管理学院,结果没被经管学院录取,而被调剂到信通学院,现在想来也算是走对了。

在上大学之前,我的梦想是上大学后,一定要当班长,一定要当学生会的干部。

所以我从上大一就开始加入学校的学生会,非常积极地竞选班干部,后来也如了我的愿,班长也当了,学生会干部也做了不少。

因为刚上大一的时候根本不知道大学里具体要学什么知识,每天就是上课,那时一节课也不敢逃,每天的生活就是去上课、吃饭、打球和踢球,然后回宿舍瞎侃,上床睡觉。

周末时,找几个同学逛逛街什么的,每周都重复着同样的生活,日子过得平平谈谈,但那时也不觉得在虚度,可能还带着刚离开高中校园的那种兴奋,认为理想中的大学生活就是如此吧。

大一的一年就这样糊里湖涂过去了,接着就大二了,大二上学期除了在学生会的职位高了点外,其余和大一时也没什么区别,没有特别的事情发生过,偶尔逃逃不点名的公共课,天天照旧打篮球、踢足球。

在大二下学期开学不久的某一天,我静静地的思考了很久,我想起了我曾经有过的梦想、我追求的人生、我向往的生活,想想如果再这样过完两年,我的将来会是什么样子?那天我觉悟了。

我的专业是电子信息工程,那我必须在这方面学有所成,两年都快过去了,天天抱着课本啃,现在想想我的水平和高中时一样,我学的是电子专业,从初中就开始学电阻了,到现在都六七年了,至今我连电阻长什么样都没见过,这样下去学的算是什么电子专业?我想我不能再这样下去了,于是找了同宿舍的另一位同学赖世雄,我对他说:“我们一起参加学校的“五四杯”电子设计竞赛吧!”他欣然同意了,当时我俩真是对电子知识一无所知,根本不知道从哪里开始,于是我们就从电子杂志上随便找了个类似电话控制器的小作品,把杂志上原理图中所有的元件型号抄下来,然后我俩就去电子市场上买元件。

第一次买电子元件,一点专业知识也没有,我们讲的好多东西卖元件的人都听不懂,闹了不少笑话,一个电阻被人家要了一毛钱,还说这东西真便宜啊!(实际上一个电阻还不到一分钱),最后买了一堆电阻、电容和三极管,加起来一共六七十元,回来就准备照着别人的原理图焊接,很显然,这种做法从一开始就已经注定结果必然是失败的。

无奈之下,我们跑去找当时教我们电路基础课的付永庆教授,我对付老师说我们想学点真正的东西,但根本无从下手,能不能请付老师帮我们想想看做个什么东西?付老师是个很好的人,他当时正在构想从学校低年级学生中选出一部分爱动手、有上进心的学生作为创新型人才来培养,他看我俩有想法,就直接对我俩说:“你们俩可以到我的实验室里来,现在我正好带几个大四的学生做毕业设计,你俩先跟着他们学习学习吧!”。

当时因为是付老师个人的实验室,所以电脑不够用,于是我俩就把自己的电脑搬进了实验室,从那天起,我真正踏上了电子设计这条路。

付老师又给我俩介绍了一位正在做毕业设计的大四女同学,她叫黄光亚,她正在做一个两台计算机之间用激光通信的题目,我和赖世雄每天都去实验室看着黄光亚焊电路、写程序,那时看着真是一头雾水,感觉那些东西好神奇,在计算机上写上几句程序,按完回车,看见一道激光穿过眼前,然后在另一台电脑上就能看到整屏滚动的数据。

大概跟着黄光亚前后忙了一个月,对黄光亚正在做的作品的硬件部分算是有了基本的了解,但计算机部分具体怎么实现的还是不明白。

那时正好赶上2004年学校的“五四杯”电子设计竞赛,我们借黄光亚的作品申报了参赛资格。

在比赛那天,我们就用仅懂些基本原理的一堆元件加两台电脑等待比赛评委的到来,当时评委们问了我们这是什么原理、信号怎么样调制、传输波特率多少等很多很多简单的专业问题。

说实话,我们哪里知道啊!我那时连RS232电平是什么概念都不明白,评委们提的专业名词我根本就没听说过,当时也就把我们懂的东西全说了,也不知道对应评委的哪个问题。

那时学校“五四杯”电子竞赛的参赛作品比较少,评委看我们才大二,而且我们的作品又是一个较完整的系统,基本没什么工作上的漏洞,为了鼓励我们,最后还给我们发了个小奖。

“五四杯”结束后,赖世雄就从实验室把他的电脑搬回宿舍了,很可惜,他放弃了继续走这条路。

我的电脑一直放在付老师的实验室。

说到这里还要讲一点儿关于我买电脑的小插曲。

大二上学期时,我的很多同学们都买了电脑,于是我也跟着买了,当时不知道买来电脑后具体要学什么东西,我的同学们买来电脑后,大部分时间在玩游戏、QQ聊天,有的同学可以从早上一直聊到晚上,玩游戏的同学可以从早玩到晚,我同学建议我玩“传奇”游戏,说很有意思,他帮我注册了账号,游戏里一个动画人物拿着一把大刀不停地砍野猪、野鹿什么乱七八糟的所谓怪物,他砍了几刀就把一头野猪砍死了,然后他说:“你看长经验了吧,多有意思,你来玩!”,我接过鼠标砍了三刀,我想破脑子也想不出他说的有意思是指什么,然后我说:“实在是无聊!”,那天起开始了我的游戏生涯,三刀后也结束了我的游戏生涯,我觉得网络游戏实在是没有意思。

我更不喜欢聊QQ,可是这电脑都买了,不能一点用处都没有吧,当时那个时候,真的不知道电脑能“玩”什么和我们专业有关的东西,那些天我每天用电脑做的最多的工作就是把文件从一个分区拷到另一个分区,把一些不用的文件删除,甚至把C盘下能删的文件都删了,最后导致系统无法启动还问为什么?过了几个月我发现除了复制和粘贴功能我用得非常熟练外,其他我好像还是什么也没学会。

再后来就去书店买了些制作Flash动画和制作照片的Photoshop之类的书,回来后天天学那些没用的东西。

现在想来真的是太可惜了,那时真是浪费了大把大把的时间。

电脑真的是可以学很多很多东西的,对于我们专业来讲,学单片机需要学C语言,学Keil、WAVE、IAR、ICC、MPLAB软件的使用,学汇编语言;在用到上位机界面编程时,需要学C++、VC++、VB语言等;用CPLD/FPGA/SOPC时,需要学VHDL和Verlog语言,学这些语言时,可以学Maxplus、Quartus软件的使用;当用到仿真时,可以学Protues、Multisim软件的使用;设计电路板时,可以学Protell、Altium Designer、Power PCB软件的使用等;还可以学DSP用的CCS软件、ARM用的ADS、STD软件等,所有上面我提到的这些,全都依赖于计算机系统。

在今天看来,我是全部掌握了,然而这是后来我付出巨大的代价才换来的,如果我能利用好大一大二那些大好时光的话,我相信今天的我又会是另一番模样。

接上面话题,赖世雄搬走后,付老师给了我实验室的钥匙,从那天起,实验室便成了我的另一个家。

当时那个实验室只有我一个人学硬件,也只有我一个本科生,其他的硕士、博士研究生主要研究理论,所以很少有做硬件的,那时我分不清电解电容的正负极性,我拿着一个电解电容问了实验室的好几个人,结果他们也不知道,更有人说这是什么东西,我从来没见过。

这件事很令我震惊,难道这就是电子专业读了四年本科,又读了几年硕士研究生的高水平大学生吗?现在大学毕业生的工作确实不好找,那不能怪别人,只是因为你确实没有别人需要你的理由。

偶尔听前届的学长们说到,作为信通学院的学生,如果学会了单片机、C语言、DSP那你的前途必定是一片光明。

于是我开始学习单片机,当时苦于没有硬件实验环境,身边又没有会的人请教,于是我就上网找资料,看见网上有卖单片机学习板的,那时价格都挺贵的,但我还是狠下心买了一块三百多块钱的单片机学习板,寄回来后我就开始做练习,之前也看过几遍书,可发现光看书没有任何效果,看上十遍、二十遍,感觉是学会单片机了,可当要应用到硬件系统中时,发现其实我什么也不会。

后来我就边做实验边查书,这样就理解得很透彻了,就是从那时起我每天早上八点之前就到实验室了,除了选上部分课外,其他时间都泡在实验室里,一直到晚上十点多看楼的大爷用脚踹着实验室的门叫我走我才离开实验室。

那时每天就摆弄单片机,没有人教我,全是我自己一个人摸索,而且当时学的是非常难懂的汇编语言。

记得大一时也学过C语言,可我发现等要用的时候我什么也不会,根本和单片机联系不起来,就和没学一样,我只好选择汇编语言,大概一个月后,也就是快放暑假时,我做出来了自己的第一个单片机作品,一个电子钟。

有人说你要是用单片机做出一个电子钟,那你基本上已经掌握单片机的80%了。

这句话有道理,电子钟对编程的综合性要求还是相当高的。

那时,我对单片机已经有了初步的掌握,假期的时候我报名参加了2004年黑龙江省大学生电子设计大赛,那天起我搬进了学校的电子创新实验室,我们选的题目是无线数据通信,当时指导老师让我们用FPGA做,其中还要用到VC编程及C++语言,我那时还不懂什么是FPGA,于是我开始拼命地学这些知识,每天吃饭都在实验室。

相关文档
最新文档