版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计报告单片机课程设计报告专专 业业 0909 自动自动 化化 (2 2)班)班 姓姓 名名 周周 传传 剑剑 学学 号号 09050720040905072004 指导教师指导教师 储储 忠忠 完成时间完成时间 20122012 年年 3 3 月月 2020 目录 摘要摘要 : .3实验一实验一 构建单片机最小系统和实验环境熟悉构建单片机最小系统和实验环境熟悉 .31.11.1 单片机的工作原理单片机的工作原理.31.1.1 运算器.31.1.2 控制器.41.1.3 单片机最小系统组成电路图.61.1.4 实验总结.7实验二实验二 跑马灯实验及跑马灯实验及 74hc138 译码器
2、译码器 .82.12.1 实验内容实验内容.82.1.1 实验原理.82.1.2 实验原理图.82.1.3 实验程序流程图.92.1.4 实验程序代码.92.1.5 系统仿真.92.22.2 实验总结实验总结.10实验三实验三 8255 控制交通灯实验控制交通灯实验 .113.13.1 实验内容实验内容.113.1.3 实验原理.113.1.2 实验原理电路图.113.1.3 实验程序流程图.123.1.4 实验程序代码.123.1.5 系统仿真.133.23.2 8255a8255a 寻址原理寻址原理.143.33.3 实验总结实验总结.15实验四实验四 8253 方波实验方波实验 .164
3、.14.1 实验内容实验内容.164.1.1 实验原理.164.1.2 实验原理电路图.164.1.3 程序流程图.174.1.4 程序流程代码.174.1.4 系统仿真.184.24.2 实验总结实验总结.18附件:附件: .191 1、完整版电路仿真图、完整版电路仿真图.192 2、实物图、实物图.193 3、完整版程序代码、完整版程序代码.20单片机课程设计报告摘要:本课程设计完成的是构建单片机最小系统和实验环境熟悉,跑马灯实验及 74hc138 译码器,8255 控制交通灯实验,8253 方波实验。最小系统包括晶振,复位等模块。138 的译码实验,根据 138 的译码特性建立一个译码表
4、。0 xf0,0 xf1,0 xf2,0 xf3,0 xf4,0 xf5,0 xf6,0 xf7;用 p1 口给 74hc138 的 a、b、c 口赋值,在此过程中其实只用到了p10,p11,p12。8255a 交通的实验选择 pa 口控制交通灯,核心思想就是延时时间的控制。8253 方波实验采用的是 clk0 进行一次分频,输出方波,通过改变延时的时间可以改表方波的频率。关键词:关键词: 74hc138 8255a 8253 80c51 实验一实验一 构建单片机最小系统和实验环境熟悉构建单片机最小系统和实验环境熟悉1.11.1 单片机的工作原理单片机的工作原理1.1.11.1.1 运算器运算
5、器运算器包括算术逻辑运算单元 alu、累加器 acc、寄存器 b、暂存器tmp、程序状态字寄存器 psw、十进制调整电路等。它能实现数据的算术逻辑运算、位变量处理和数据传送操作。1.算术逻辑单元 alualu 在控制器根据指令发出的内部信号控制下,对 8 位二进制数据进行加、减、乘、除运算和逻辑与、或、非、异或、清零等运算。它具有很强的判跳、转移、丰富的数据传送、提供存放中间结果以及常用数据寄存器的功能。mcs-51 中位处理具有位处理功能,特别适用于实时逻辑控制。2. 累加器 acc累加器 acc 是 8 位寄存器,是最常用的专用寄存器,它既可存放操作数,又可存放运算的中间结果。mcs51
6、系列单片机中许多指令的操作数来自累加器 acc。累加器非常繁忙,在与外部存储器或 i/o 接口进行数据传送时,都要经过 a 来完成。3. 寄存器 b寄存器 b 是 8 位寄存器,主要用于乘、除运算。乘法运算时,b 中存放乘数,乘法操作后,高 8 位结果存于 b 寄存器中。除法运算时,b 中存放除数,除法操作后,余数存于寄存器 b 中。寄存器 b 也可作为一般的寄存器用。4. 程序状态字 psw程序状态字是 8 位寄存器,用于指示程序运行状态信息。其中有些位是根据程序执行结果由硬件自动设置的,而有些位可由用户通过指令方法设定。psw 中各标志位名称及定义如下:位序d7d6d5d4d3d2d1d0
7、位标志cyacf0rs1rs0ovpcy(psw.7):进(借)位标志位,也是位处理器的位累加器 c。在加减运算中,若操作结果的最高位有进位或有借位时,cy 由硬件自动置 1,否则清“0” 。在位操作中,cy 作为位累加器 c 使用,参于进行位传送、位与、位或等位操作。另外某些控制转移类指令也会影响 cy 位状态(第三章讨论) 。ac(psw.6):辅助进(借)位标志位。在加减运算中,当操作结果的低四位向高四位进位或借位时此标志位由硬件自动置 1,否则清“0” 。f0(psw.5):用户标志位,由用户通过软件设定,决定程序的执行方式。rs1(psw.4) ,rs0(psw.3):寄存器组选择位
8、。用于设定当前通用寄存器组的组,其对应关系如下:rs1rs0寄存器组r0r7 地址00组 00007h01组 1080fh10组 21017h11组 3181fhov(psw.2):溢出标志位。它反映运算结果是否溢出,溢出时 ov=1;否则 ov=0。ov 可作为条件转移指令中的条件。psw.1:未定义位。p(psw.1):奇偶标志位。p=1,表示 acc 中 1 的个数为奇数;否则p=0。p 也可以作为条件转移指令中的条件。1.1.21.1.2 控制器控制器控制器包括定时控制逻辑(时钟电路、复位电路) ,指令寄存器,指令译码器程序计数器 pc,堆栈指针 sp,数据指针寄存器 dptr 以及信
9、息传送控制部件等。1. 时钟电路mcs51 系列单片机芯片内部有一个高增益反相放大器,输入端为xtal1,输出端为 xtal2,一般在 xtal1 与 xtal2 之间接石英晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,就是单片机的内部时钟电路,如图(a)所示。时钟电路产生的振荡脉冲经过二分频以后,才成为单片机的时钟信号。电容 c1 和 c2 为微调电容,可起频率稳定、微调作用,一般取值在530pf 之间,常取 30pf。晶振的频率范围是 1.2mhz12mhz ,典型值取 6 mhz。xtal1 接地,xtal2 接外部震荡器,外接信号应是高电平持续时间大于 20ns 的方波,且脉冲频
10、率应低于 12 mhz。如图(b)所示。 (a)内部时钟电路 (b)外部振荡源2. 复位电路对于使用 12mhz 的晶振的单片机,复位信号持续时间应超过 4s 才能完成复位操作。产生复位信号的电路有上电自动复位电路和按键手动复位电路两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,该电路通过电容充电在 rst 引脚上加了一个高电平完成复位操作。上电自动复位电路如图(a)所示。按键手动复位电路。按键手动复位是通过按键实现人为的复位操作,按键手动复位电路如图(b)所示。复位后内部暂存器的状态如下:pc0000htcon00hacc00htl000hpsw00hth000hsp07htl1
11、00hdptr0000hth100hp0p3ffhscon00hip000000bsbuf不定ie0000000bpcon00000btmod00h3. 指令寄存器和指令译码器指令寄存器中存放指令代码,cpu 执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器后由定时与控制电路发出相应的控制信号,完成指令所指定的操作。4. 程序计数器 pcpc 是一个 16 位计数器,其内容为单片机将要执行的指令机器码所在存储单元的地址。pc 具有自动加 1 的功能,从而实现程序的顺序执行。由于 pc 不可寻址的,因此用户无法对它直接进行读写操作,但可以通过转移、调用、返回等指令改变其内容,以实
12、现程序的转移。pc 的寻址范围为 64kb,即地址空间为 00000ffffh。5. 堆栈指针 spsp 为 8 位寄存器,用于指示栈顶单元地址。所谓堆栈是一种数据结构,它只允许在其一端进行数据删除和数据插入操作的线性表。数据写入堆栈叫入栈(push) ,数据读出堆栈叫出栈(pop) 。堆栈的最大特点是“后进先出”的数据操作原则。mcs-51 系统复位后,sp 初始化为 07h。6. 数据指针 dptr数据指针 dptr 为 16 位寄存器,它是 mcs51 中唯一的一个 16 位寄存器。编程时,既可按 16 位寄存器使用,也可作为两个 8 位寄存器分开使用。dph 为 dptr 的高八位寄存
13、器,dpl 为 dptr 的低八位寄存器。dptr 通常在访问外部数据存储器时作为地址指针使用,寻址范围为 64kb。1.1.31.1.3 单片机最小系统组成电路图单片机最小系统组成电路图 单片机最小系统主要有外部晶振电路,系统复位电路以及供电电源组成。在构建单片机最小系统板是在 vcc 引脚出加上 10uf 和 0.1uf 的滤波电容,以减小电源对系统工作的稳定性的影响,提高系统工作的稳定性。单片机最小系统电路图1.1.41.1.4 实验总结实验总结该实验中,单片机系统电路的基本模块有:复位电路,晶振电路,jtag下载口等主要模块。其中 p0 口作为输出使用必须对单片机的 i/o 口,因为
14、p0为集电极开路,可以提高其功率和电平转换。在单片机最小系统的构建中,ea脚拉高是非常必要的,它可以影响单片机的正常工作。在检测单片机是否正常工作,可以通过检测晶振两端的信号的波形形状。在单片机正常工作条件下,其信号为正弦波。通过本次试验我了解了单片机的工作原理,知道了硬件部分的重要性,单片机最小系统板的焊接最主要是晶振部分的焊接,它为单片机提供了做工作的频率,是单片机的心脏。实验二跑马灯实验及实验二跑马灯实验及 74hc13874hc138 译码器译码器2.12.1 实验内容实验内容1、熟悉集成环境软件或熟悉 keil c51 集成环境软件的安装和使用方法。2、照接线图编写程序:使用 p1
15、口控制 g6 区的 8 个指示灯,循环点亮,瞬间只有一个灯亮。3、设计 74hc138 接口电路,编写程序:使用单片机的 p1.0、p1.1、p1.2控制 74hc138 的数据输入端,通过译码产生 8 选 1 个选通信号,轮流点亮 8个 led 指示灯。2、运行程序,验证译码的正确性。2.1.12.1.1 实验原理实验原理本次实验是根据 138 译码器的工作原理,当 g1g2ag2b=111 时,译码器工作,根据 74ls138 的 3 个译码信号 a、b、c 来选择y0、y1、y2、y3、y4、y5、y6 作为输出,各输出为低电平时,当共阳极的led 灯节高电平时,就会使相应的灯亮。给单片
16、机的端口赋初值,点亮第一个led,然后延时一段时间后,点亮下一个 led,依次循环下去。采用思想,根据 138 的译码特性建立一个译码表 uchar code table=0 xf0,0 xf1,0 xf2,0 xf3,0 xf4,0 xf5,0 xf6,0 xf7;用 p1 口 74hc138 的 a、b、c 口赋值,在此过程中其实只用到了 p10,p11,p12:;2.1.22.1.2 实验原理图实验原理图74hc138 跑马灯电路原理图2.1.32.1.3 实验程序流程图实验程序流程图74hc138 跑马灯实验程序流程图2.1.42.1.4 实验程序代码实验程序代码while(1) fo
17、r(num=0;num0;i-)/黄灯闪烁三次pa=0 x2e;delay(100);pa=0 x3e;delay(100);pa=0 x33;/东西红灯,南北绿灯delay(5000);for(i=3;i0;i-)/黄灯闪烁三次pa=0 x35;delay(100);pa=0 x37;delay(100);3.1.53.1.5 系统仿真系统仿真pa0pa1pa2pa5clk0pa3pa5pa3pa1pa0pa2pa0pa2pa1pa3pa4pa5pa4pa4out0gate0clk09gate011out010clk115gate114out113clk218gate216out217pa0
18、4pa13pa22pa31pa440pa539pa638pa737d10led-redd11led-redd12led-redd13led-redd14led-greend15led-greend16led-greend17led-greend18led-yellowd19led-yellowd20led-yellowd21led-yellow8255 交通灯系统仿真图3.23.2 8255a8255a 寻址原理寻址原理在本次试验中程序是用 c 语言写的 8253 驱动函数。使用 c 语言会给 8255的寻址带来了一个难题,在这里是借助 keil 软件里的库函数 absacc.h 来进行寻址的
19、。一下是 absacc.h 库函数的介绍:/*-absacc.hdirect access to 8051, extended 8051 and philips 80c51mx memory areas.copyright (c) 1988-2002 keil elektronik gmbh and keil software, inc.all rights reserved.-*/#ifndef _absacc_h_#define _absacc_h_#define cbyte (unsigned char volatile code *) 0)#define dbyte (unsigned
20、 char volatile data *) 0)#define pbyte (unsigned char volatile pdata *) 0)#define xbyte (unsigned char volatile xdata *) 0)#define cword (unsigned int volatile code *) 0)#define dword (unsigned int volatile data *) 0)#define pword (unsigned int volatile pdata *) 0)#define xword (unsigned int volatil
21、e xdata *) 0)#ifdef _cx51_#define fvar(object, addr) (*(object volatile far *) (addr)#define farray(object, base) (object volatile far *) (base)#define fcvar(object, addr) (*(object const far *) (addr)#define fcarray(object, base) (object const far *) (base)#else#define fvar(object, addr) (*(object
22、volatile far *) (addr)+0 x10000l)#define fcvar(object, addr) (*(object const far *) (addr)+0 x810000l)#define farray(object, base) (object volatile far *) (base)+0 x10000l)#define fcarray(object, base) (object const far *) (base)+0 x810000l)#endif#endif在程序中,用“include”即可使用其中定义的宏来访问绝对地址,包括:cbyte、xbyte
23、、pword、dbyte、cword、xword、pbyte、dword。例如:#define com8255 xbyte0x060ff 后面若出现 com8255,则单片机端口 p0 和 p2 联合输出 0x060ff 绝对物理地址(地址指向 82c55 指令寄存器)。p2.7p2.6p2.5p2.4p2.3p2.2p2.1p2.0p0.7p0.6p0.5p0.4p0.3p0.2p0.1p0.0a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0a0a100xxxxxxxxxxxxxx11xxxxxxxxxxxxxx表格的第四行表示 8255 的 a1,a0 口分别于
24、单片机的 p2.7,p2.6 相连接,表格是五行是表示 8255 pa 口的实际物理地址,即 0 x3fff,表格的第六行表示8255 控制字寄存地的实际物理地址。3.33.3 实验总结实验总结通过本次交通灯实验,学会了使用 8255 芯片的初始化和编程方法。同时认识到通过 8255 实现了 i/o 口的扩展。本实验使用的是 8255 的方式 0。利用8255 完成交通灯的四中状态切换。第一种状态是东西方向是绿灯,南北方向是红灯。第二种状态是东西方向是黄灯并且闪烁,南北方向是红灯。第三种状态是东西方向是红灯,南北方向是绿灯。第四种状态是东西方向是红灯,南北方向是黄灯,最后变到第一种状态。在实现
25、具体的硬件时,采用 8255 控制十二个led,三个一组,分成两组来模拟实际交通灯,其中的对面两组状态变化是相同一致的,所以将对面的对应相同颜色的灯用 8255 的一个口来控制。在本试验中还有诸多不足之处,比如没有考虑到左右拐弯的红绿灯,没有计时功能等,只完成了最基本的功能,还有许多有待优化之处。实验四实验四 82538253 方波实验方波实验4.14.1 实验内容实验内容1、设计接口电路,编写程序:使用 8253 的计数器 0 和计数器 1 实现对输入时钟频率的两级分频,得到一个周期为 1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。2、连接线路
26、,验证 8253 的功能,熟悉它的使用方法。4.1.14.1.1 实验原理实验原理利用 8253 的通道 0 工作于方式 3,方波发生器模式。利用单片机定时器延时 1ms,是单片机 p3.0 口产生 250hz 的方波,作为 8253 的时钟。然后给 8253装机数初值,所装初值为 250,8253 产生的频率为方波频率=时钟频率/计数初值然后利用 8253 产生的方波驱动 npn 三极管的通断,使得蜂鸣器以 1hz 的频率鸣叫,发光二极管以 1hz 的频率闪烁。4.1.24.1.2 实验原理电路图实验原理电路图8253 方波实验原理电路图4.1.34.1.3 程序流程图程序流程图8253 方
27、波实验程序流程图4.1.44.1.4 程序流程代码程序流程代码void fangbo() tmod=0 x01; /工作方式为定时器 0a1=1;a0=1;ct=0 x16; /控制字寄存器 选择通道 0 工作于方式 3a0=0;a1=0;t0=244; /装计数初值,方波频率=时钟频率/计数初值while(1)gate=1; /gate 高电平输出方波clk=1; /利用 p3.0 口产生 250hz 的方波delay(5);clk=0; delay(5); 4.1.44.1.4 系统仿真系统仿真8253 方波实验系统仿真图4.24.2 实验总结实验总结本实验使用 8253 的计数器 0 得
28、到一个周期为 1 秒的方波。然后用此方波控制 led 的闪亮和蜂鸣器的发声。是验证单片机定时器产生一个 250hz 的方波,作为 8253 的时钟信号。将此方波作为时钟信号送给 8253 的通道 0,通过分频产生需要的方波的频率。在实际电路中单片机产生的时钟频率为 244hz,所以8253 预装的初值是 244。 这是实验通过 8253 的连线和程序的编写,我学会了 8253 芯片的使用方法。学会如何用 8253 产生特定频率的方波。8253 的寻址原理如同 8255 实验的原理。附件:附件:1 1、完整版电路仿真图完整版电路仿真图bus0.7bus0.7p1.1p1.2p1.0p1.1p1.
29、2y0y1y2y3y4y5y6y7y0y1y2y3y4y5y6y7pa0pa1pa2pa5bus0bus1bus2bus3bus4bus5bus6bus7bus0bus1bus2bus3bus4bus5bus6bus7p2.0p2.1p2.2p2.3实验四实验二实验三p2.2p2.3p2.4p2.0p2.1p1.0clk0bus0bus1bus2bus3bus4bus5bus6bus7rdwrwrp2.7pa3pa5pa3pa1pa0pa2pa0pa2pa1pa3pa4pa5pa4pa4out0gate0clk0gate0out0wrp2.6p2.5p2.6p2.5p2.4out0rdrdxt
30、al218xtal119ale30ea31psen29rst9p0.0/ad039p0.1/ad138p0.2/ad237p0.3/ad336p0.4/ad435p0.5/ad534p0.6/ad633p0.7/ad732p2.7/a1528p2.0/a821p2.1/a922p2.2/a1023p2.3/a1124p2.4/a1225p2.5/a1326p2.6/a1427p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p3.0/rxd10p3.1/txd11p3.2/int012p3.3/int113p3.4/t014p3.7/rd17p3.6/wr16p3
31、.5/t115u180c51c233pfc133pfx1crystalc322ur210ka1b2c3e16e24e35y015y114y213y312y411y510y69y77u274hc138d08d17d26d35d44d53d62d71rd22wr23a019a120cs21clk09gate011out010clk115gate114out113clk218gate216out217u48253ar100.2kr110.2kr120.2kr130.2kr140.2kr150.2kr160.2kr170.2kd1led-redd2led-redd3led-greend4led-gre
32、end5led-yellowd6led-yellowd7led-blued8led-blued034d133d232d331d430d529d628d727rd5wr36a09a18reset35cs6pa04pa13pa22pa31pa440pa539pa638pa737pb018pb119pb220pb321pb422pb523pb624pb725pc014pc115pc216pc317pc413pc512pc611pc710u38255als1speakerd9led-blued10led-redd11led-redd12led-redd13led-redd14led-greend15l
33、ed-greend16led-greend17led-greend18led-yellowd19led-yellowd20led-yellowd21led-yellowq1pn2222aabcd2 2、实物图实物图 74hc138 流水灯流水灯 8255a 交通灯实验交通灯实验8253 方波实验方波实验3 3、完整版程序代码完整版程序代码#include /定义 8052 单片机寄存器的头文件#include/绝对地址处理头文件,包含 xbyte,用 xbyte 来定义扩展的 i/o 端口和外部 ram 单元地址#define uint unsigned int /宏定义#define uchar unsigned char#define con xbyte0 xffff/定义 8255 控制字寄存器端口#define pa xbyte0 xfcff /定义 8255 端口 pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026校招:会计试题及答案
- 2026校招:互联网架构师真题及答案
- 委托招商服务协议书模板
- 2026校招:方同舟控股面试题及答案
- 2026校招:博深实业集团试题及答案
- 2025-2026学年教学活动设计大班教案
- 2026年广东省阳江市单招职业倾向性测试题库含答案详解(夺分金卷)
- 2026年常德职业技术学院单招职业技能考试题库及答案详解(网校专用)
- 采购员岗前绩效目标考核试卷含答案
- 2026年广东岭南职业技术学院单招职业倾向性考试题库含答案详解(b卷)
- 2023年1月7日国家公务员考试《公安专业科目》试题(含解析)
- 眼科日间手术精细化管理
- 血透内瘘护理宣教
- 初中信息技术中考excel操作题(二)
- DB41T 2085-2020 炭素工业废气污染防治技术规范
- 新版人音版小学音乐一年级下册全册教案
- pet安全技术说明书
- 学前教育普及普惠质量评估幼儿园准备工作详解
- 在职申硕同等学力工商管理(财务管理)模拟试卷2(共238题)
- 美的研发转型(技术创新的运营管理实践)
- 江苏省法院书记员考试真题
评论
0/150
提交评论