摇摇棒课程设计01 - 图文

更新时间:2024-07-02 17:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

第一章 绪论

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

1.1 单片机的简介

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电

1

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。

单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

1.2 单片机的工作过程

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,

2

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。

1.3 单片机的硬件特性

1、单片机集成度高。单片机包括CPU、4KB容量的ROM(8031 无)、128 B容量的RAM、 2个16位定时/计数器、4个8位并行口、全双工串口行口。

2、系统结构简单,使用方便,实现模块化。

3、单片机可靠性高,可工作到10^6 ~10^7小时无故障。 4、处理功能强,速度快。

1.4 单片机的应用

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。

3

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

第二章 摇摇棒的电路分析

2.1硬件电路的设计

2.1.1控制单元

单片机以其集成度高、功能强、可靠性高、体积小、功耗低、价格廉、使用

灵活等一系列优点得到迅速的发展,渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统等,这些都离不开单片机。

此次设计主要采用STC89C52单片机为控制单元。STC89C52的芯片管脚图如下图所示:

(1)组成:

1、一个8位的微处理器。

2、片内数据存储器RAM,用以存放可以读/写的数据,如运算的中间结果、最终结果以显示的数据等。

3、片内程序存储器ROM/EPROM,用以存放程序、一些原始数据和表格。 4、四个8位并行I/O接口P0~P3,每个口可以用作输入,也可以用作输出。 5、 两个(或三个)定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。

6、五(或六)个中断源的中断控制系统。

7、 一个全双工UART接口(通用异步接收发送器)的串行I/O,用于实现单片机之间或单片机与微机之间的串行通信。

8、片内振荡器和时钟产生电路,但石英晶体和微调电容须要外接。可以看出STC89C52RC系列单片机也是一款功能强大的单片机。

4

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

(2)特点:

1、增强型6时钟/机器周期,12时钟/机器周期8051CPU。 2、工作电压:5.5V-3.4V(5V单片机)/3.8V-2.0V(3V单片机)。

3、工作频率范围:0-40MHz,相当于普通8051的0-80MHz,实际工作频率可达48MHz。

4、.用户应用程序空间4K/8K/13K/16K/20K/32K/64K字节。 5、片上集成1280字节/512字节RAM。 6、通用I/O口(32/36个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是开路输出,作为总线扩展用时,不加上拉电阻,作为I/O口用时,需加上拉电阻。

7、.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片。

8、.EEPROM功能。 9、看门狗。

10、内部集成MAX810专用复位电路(D版才有),外部晶体20M以下时,可省外部复位电路。

11、共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。

12、外部中断4路:下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平触发中断方式唤醒。

13、.通用异步串行口(UART),还可用定时器软件实现多个UART。 14、封装:LQFP-44,PDIP-40,PLCC-44,PQFP-44。 (3)引脚功能说明:

1、VCC——电源电压 2、GND——地

3、P0口——P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接“上拉电阻”。

4、P1口——P1口是一个内部带上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P1.0和P1.1的第二功能:

a、P1.0 T2(定时/计数器2外部计数脉冲输入),时钟输出 b、P1.1 T2EX(定时/计数2捕获/重装载触发和方向控制)

5、P2口——P2是一个内部带上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,

5

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

P2口输出P2锁存器的内容。FLASH编程或校验时,P2亦接收高位地址和一些控制信号。

6、P3口——P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下所示:

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通信号) P3.7 RD(外部数据存储器读选通信号)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 7、RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

8、ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。D0置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

9、PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

10、EA/VPP——外部访问允许,欲使CPU访问外部程序存储器(地址0000H-FFFFH),EA端必需保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。 2.1.2 电源与复位单元

任何电路都离不开电源部分,单片机也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,其实有将近一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3节1.5V电池是最好的,电池输出的电压是最干净的,不会有任何干扰波动。本次课程设计使用的由USB口外5V电源。

上电复位:保障上电时能准确地启动系统。

掉电复位:当电源失效或电压降到某一电压值以下时,复位系统自动保存数

6

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

据。

除上电复位和掉电复位外,很多监控电路集成了系统所需的功能。电源测控:供电电压出现异常时提供预警指示或中断请求信号,方便系统实现异常处理。数据保护:当电源或系统工作异常时,对数据进行必要的保护,如保护数据备份或切换后备电池。

复位电路如下图所示:

2.1.3时钟电路单元:

单片机的时钟有一个11.0592MHz的晶振和两个30PF的小电容阻成,它们决定了单片机的工作时间精度为1Us。单片机内各部件之间有条不紊地协调工作,其控制信号是在基本节拍的指挥下按一定时间顺序发出的,这些控制信号在时间上的相互关系就是CPU时序,而产生这种基本节拍的电路就是振荡器和时钟电路。STC89C52RC单片机内部有一个用于构成振荡器的单级反相放大器。

引脚XTAL1为反相器输入端,XTAL2为反相器输出端。当在放大器两个引脚上外接一个晶体(或陶瓷振荡器)和电容组成的并联谐振电路作为反馈元件时,够成一个自激振荡器。

此振荡器由XTAL1端向内部时钟电路提供一定频率的时钟源信号。另外振荡器的工作还可以由软件控制,当对单片机内电源控制寄存器PCON中的PD位置1时,可停止振荡器的工作,使单片机进入省电工作状态,此振荡器称为内部振荡器。

单片机也可以通过外部振荡器向内部时钟电路输入固定频率的时钟源信号。此时,外部信号接至XTAL1端,输入给内部时钟电路,而XTAL2端浮空即可。 片内振荡器频率是由外接石英晶体的频率决定的,其频率值可在0~24MHz之间。当频率稳定性要求不高时,可选用陶瓷振荡器。

片内振荡器对构成并联谐振电路的外接电容C1和C2要求并不严格。外接晶体时,C1和C2的典型值为30PF左右;外接陶瓷振荡器时,C1和C2的典型值为

7

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

47PF左右。而且在设计印刷电路板时,晶体(或陶瓷)振荡器和电容应尽可能安装得靠近单片机,以减少寄生电容,保证振荡器的稳定性和可靠性。

内部方式时钟电路如下图所示:

2.1.4 显示模块:

LED显示器具有功耗低,接口控制方便等优点,而且模块的接口信号和操作指令具有广泛的兼容性,并能直接与单片机接口,可方便地实现各种不同的操作,在各类测量及控制仪表中被广泛的应用。当在LED上显示汉字时,应先取得汉字的点阵构成数据,然后将其写入显示存储器中进行显示。

摇摇棒显示是一种通过同步控制发光二极位置和点亮状态来实现图文显示的新型显示器,其结构新颖,成本低廉,可视角度达360°。

本设计采用16个并排发光二极管分别接单片机的P0口和P2口,利用人眼的“视觉暂留效应”显示文字及图案。

显示模块如下图所示:

8

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

2.2 设计的总电路:

2.3 硬件制作注意项;

1、使用直径为3mm的高亮LED灯焊接显示部分,使用别的直径的LED灯,看效果很好但近看时字不够连贯。

2、水银开关里的水银珠很活跃,导致在接通时容易产生抖动,所以将水银开关斜向上放置(尖尖朝斜上方45°角),靠水银珠自身重力的作用减少抖动。 3、IC座里面隐藏元件,既美观又能保护元件。

4、底座连线部分,通过合理紧凑的布线,可以使线路更加牢固。

9

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

第三章 设计方案的选定

3.1 单片机选择

方案一:选用单片机 STC89C51 作为扫描显示控制核心,由其直接控制 LED 线阵的显示,并外加扫描控制开关控制字符或图形的扫描显示。该方案线路简单,扫描控制开关可选择机械开关或编码开关或水银开关,在基于单片机的LED 显示摇摇棒的设计 , 显示棒摇摆时接通线路控制单片机扫描输出字符或图形的列编码信号;单片机外另接有中断控制按钮用以切换不同字符或图形的显示,LED 线阵采用普通三极管驱动。 此方案的优点是:单片机C51 的端口较多,可实现显示数据并行传输,速度较快,且外围电路简单,调试较方便。 缺点是:单片机使用的晶振频率较大,软件不易实现对计数的控制。

方案二:由单片机STC89C52 最小系统、寄存器组、驱动电路、LED 线阵和电源部分组成。 单片机最小系统寄存器组驱动电路 LED 线阵显示电源 ,该方案通过单片机将列编码输入寄存器,通过寄存器组移位功能实现字符图像的扫描输出。

与方案一比较,方案二中单片机所需输出端口很少,可选用小型单片机 STC89C52,不仅功能强,而且尺寸小,价位比较低,其数据输出串口输出方式,所需端口较少,编程同 C51 兼容,总体线路较简单,电路板占用面积小;利用寄存器移位功能可轻易实现显示LED 灯数量的扩展,不仅具备方案一的大部分优点,而且外围器件更少,能耗更低,电路调试简单,故选择方案二。

3.2 外部中断信号产生方式

通过外部中断可以控制数据开始传输的时刻。选择好外部中断来源是本次制作的难点和重点。

方案一:使用水银开关。通过摇摆使得水银开关中的水银珠与两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。

方案二:使用遮光器。在摆棒上安装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摇摆一次这个杆就会通过遮光器,发生电平变化。同样通过这种电平变化,结合软件控制显示。

本次设计的中断时为了实现数据的单程传输。如果使用遮光器,其触发单片机的时刻处于正中央,不能解决图片因为返回与原来图片重叠的现象。而使用水银开关因为在左右都有触点,所以很容易在往返途中产生中断,从而选择方案一。

3.3 总体方案

整体系统以STC89C52单片机为中央控制器使用16只LED等作为显示单元。当水银开关触发中断时,单片机向16只LED传送数据,依据人体额视觉暂留原理,随着显示棒的摆动前进,输出数据的列是不会立刻消失而是随着摆动逐渐显示在形成的扇形区域。

在摇动LED灯棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始通过水银开关中水银的位置来使单片机实现

10

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

单程送数据给LED。在送数据时,数据送完后应该延时一段时间来使摇摇棒显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断水银的位置。

系统执行的流程图如下图所示:

开始

系统初始化

开关按下 N

换幅标志pic++ Y pic>3 N 选择相应画面送数据 延时 Led熄灭 pic归0 3.4程序的编制、运行和调试

根据指导老师的要求:将自己的人名通过字模软件取模得到代码,进行程序

的编写,最终使程序能够实现在晃动摇摇棒的时候,可以蒋自己的人名显示出来。通过画面切换开关可以实现画面的切换,显示不同的画面。单片机程序清单见附录2。

11

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

设 计 总 结

本次课程设计根据指导老师的要求,本次设计的最后的运行结果:摇摇棒在左右摇摆的时候,可以清晰的显示我们设计者的人名。通过本次设计,我可以熟悉地使用字模软件。

这次课程能够得以顺利完成,是所有曾经指导过我的老师,帮助过我的同学,一直支持着我的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!特别感谢我的指导老师——曲娜老师。曲老师在我程序编写调试过程中,给我提供了极大的帮助和指导。

本次单片机课程设计完成之后,发现自己对于理论知识的应用存在很大不足,对于单片机的了解也还不是很深入,今后有待改进。

12

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

参 考 文 献

【1】 何立民,单片机应用技术选编 (1~10),北京:北京航空航天大学出版社. 2006

【2】 江志红,51单片机技术与应用系统开发案例精选,北京:清华大学出版社.2008

【3】 张友德、赵志英、涂时亮,单片微型机原理、应用与实验(第四版),上海:复旦大学出版社.2003

13

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

附录

附录1:摇摇棒设计的总电路

14

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

附录2:摇摇棒的程序清单

#include

#define uchar unsigned char #define uint unsigned int #define KEY P3^3 uchar KY; uchar disp;

uchar pic=0,num=0; uchar code yu[]={

0x80,0x80,0x40,0x20,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x20,0x40,0x80,0x80,0x00,

0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00,

0x00,0x80,0x60,0xF8,0x07,0x00,0x10,0x98,0x54,0x93,0x10,0x10,0x54,0x98,0x30,0x00,

0x00,0x40,0x22,0x1A,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x0A,0x12,0x60,0x00,0x00,

0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00,

0x01,0x00,0x00,0xFF,0x00,0x80,0x89,0x44,0x46,0x2B,0x12,0x2A,0x46,0x80,0x81,0x00, };

uchar code love[] = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,

0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,

0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,

0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,

0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,

0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/ };

uchar code loveyou[] = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

15

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,

0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,

0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/ };

uchar code hehe[] = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,

0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,

0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,

0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,

0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,

0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(∩_∩)o图案*/ };

void display1(void); void display2(void); void display3(void); void display4(void); void DelayUs(uint N) {

uint x;

for(x=0; x<=N;x++); }

16

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

void intersvr0(void) interrupt 0 using 1 {

KY=~KY; //每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示) if(KY==0) {

num++; //计算中断次数 switch(pic) //选择画面 {

case 0:{display1();}break; case 1:{display2();}break; case 2:{display3();}break; case 3:{display4();}break; default:{display1();} } } }

void display1(void) {

uchar i;

DelayUs(4000); for(i=0;i<48;i++) {

P0=~yu[i]; P2=~yu[i]; DelayUs(100); } }

void display2(void) {

uchar i;

DelayUs(4000); for(i=0;i<64;i++) {

P0=~love[i*2]; P2=~love[i*2+1]; DelayUs(120); } }

/*****显示子程序3(心形图案)*****/ void display3(void) {

uchar i;

17

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

DelayUs(4000); for(i=0;i<64;i++) {

P0=~loveyou[i*2]; P2=~loveyou[i*2+1]; DelayUs(120); } }

/*****显示子程序4(呵呵o(∩_∩)o图案)*****/ void display4(void) {

uchar i;

DelayUs(4000); for(i=0;i<64;i++) {

P0=~hehe[i*2]; P2=~hehe[i*2+1]; DelayUs(120); } }

/*****主函数*****/ void main(void) {

IT0=1; EX0=1;

EA=1; //开中断,下降沿中断 while(1) //主程序中只检测按键 {

if(KEY==0) //画面切换键按下 {

DelayUs(10000); //按键去抖 if(KEY==0); pic++;} if(pic>3) pic=0; } }

18

吉林建筑工程学院城建学院电气信息工程系自动化专业课程设计论文纸

附录 3:元器件清单

序号 1 元件名称 电阻 型号与规格 470Ω 10KΩ 2 3 4 5 6 7 8 9 10

电解电容 瓷片电容 晶振 发光二极管 单片机 集成电路插座 按钮 水银开关 线路板 10Uf 0.03uF 12MHZ Ψ5红色 STC89C51 20脚 单位 只 只 只 只 个 只 块 块 只 个 块 数量 16 1 1 2 1 16 1 1 1 1 1 19

本文来源:https://www.bwwdw.com/article/nn0.html

Top