课程设计单片机

发布 2022-10-04 22:57:28 阅读 5544

实习总结报告。

实习类型生产实习。

实习单位电子科学学院实习基地

实习起止时间 2010年7月12日至2010年7月31日。

指导教师。所在院(系。

班级。学生姓名。

学号。2010年 7月 31日。

一、实习目的与要求。

1、深刻掌握单片机的硬件结构及特点。

单片机的40个引脚大致可分为4类:电源、时钟、控制和i/o引脚。

电源: ⑴vcc - 芯片电源,接+5v; ⑵vss - 接地端;

时钟:xtal1、xtal2 - 晶体振荡电路反相输入端和输出端。

控制线:控制线共有4根, ale/prog:地址锁存允许/片内eprom编程脉冲① ale功能:

用来锁存p0口送出的低8位地址② prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。

psen:外rom读选通信号。

rst/vpd:复位/备用电源。

rst(reset)功能:复位信号输入端。

vpd功能:在vcc掉电情况下,接备用电源。

ea/vpp:内外rom选择/片内eprom编程电源。

ea功能:内外rom选择端。

vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。

i/o线:51单片机共有4个8位并行i/o端口:p0、p1、p2、p3口,共32个引脚。p3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

2、学习用c语言开发单片机。

c语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用c语言进行程序设计已经成为软件开发的一个主流。用c语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。

我们因为没怎么学过汇编语言,所以这次主要以c语言为主。

3、keil软件的使用。

1) keil工程的建立和软件的开发;

2) keil中软件**的基本应用;

3) 用keil直接硬件**单片机学习板的方法。

4、掌握中断原理,学会使用中断的方法编程;

1)我们把能引起中断的称之为中断源,单片机中也有一些能引起中断的事件,51单片机中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。

2)中断的响应过程:五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应能分为以下几个步骤:

保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。

寻找中断入口,根据5个不一样的中断源所产生的中断,查找5个不一样的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。

执行中断处理程序。

中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。

51单片机中断系统的结构:5个中断源的符号、名称及产生的条件如下。

int0:外部中断0,由p3.2端口线引入,低电平或下跳沿引起。

int1:外部中断1,由p3.3端口线引入,低电平或下跳沿引起。

t0:定时器/计数器0中断,由t0计满回零引起。

t1:定时器/计数器l中断,由t1计满回零引起。

ti/ri:串行i/o中断,串行端口完成一帧字符发送/接收后引起。

整个中断系统的结构框图见下图一所示。

如图所示,由与中断有关的特殊功能寄存器、中断入口、次序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器ie、ip、econ和scon来控制中断类弄、中断的开、关和各种中断源的优先级确定。

5、掌握单片机与外围电路的接口。

掌握movx指令的时序是接口电路设计的关键。

二、单片机开发板原理及各部分功能说明。

1、整体功能:

1)八个数码管显示(数字和字母显示)

2)20个按键:包括4个独立按键和 4*4矩阵键盘(人机接口输入)

3)8个发光二极管(流水灯、指示灯、红绿灯)

4)标准的rs232通信接口(串口通信)

5)红外接收头(高灵敏度,可做红外遥控器解码)

6)蜂鸣器(报警和****)

7)eeprom 24c02(数据存储)

8)ds18b20(精密温度检测)

9)usb供电。

10)晶振采用插拔方式,可以使用不同频率的晶振。

11)ds1302实时时钟。

12)isp 10pin**线接口。

13)标准1602和12864液晶接口。

2、开发板总原理图如下:

三、硬件调试。

1、硬件静态的调试。

1)排除逻辑故障:这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。

排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。

2)排除元器件失效,造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。

在保证安装无误后,用替换方法排除错误。

3)排除电源故障:在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查vcc与gnd之间电位,若在5v~4.

8v之间属正常。若有高压,联机**器调试时,将会损坏**器等,有时会使应用系统中的集成块发热损坏。

2、联机**调试。

联机**必须借助**开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络单片机和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。

51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(psen)、地址锁存信号(ale)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。

例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。

main: mov dptr,#dptr ;将地址送入dptr

movx a,@dptr将译码地址外ram中的内容送入acc

nop适当延时。

sjmp main循环。

执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1靤/每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到8031的复位引脚将变为高电平;一旦松开,电平将变低。

总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。

四、软件开发。

1、单片机软件开发工具使用。

1)点击 project 菜单,选择弹出的下拉式菜单中的 new project。接着弹出一个标准 windows 文件对话窗口。在“文件名”中输入您的第一个 c 程序项目名称。

“保存”后的文件扩展名为 uv2,这是 keil uvision2 项目文件扩展名,以后能直接点击此文件以打开先前做的项目。

2)选择所要的单片机,这里选择常用的 ateml 公司的 at89c52。而且本单片机c语言教程里的大部分程序都是基于此芯片的。at89c52有什么功能、特点呢在右边有简单的介绍。

完成上面步骤后,就可以进行程序的编写了。

3)首先在项目中创建新的程序文件或加入旧程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在 keil 中有一些程序的 demo。

点击新建文件的快捷按钮,出现一个新的文字编辑窗口,这个操作也能通过菜单 file-new 或快捷键 ctrl+n 来实现。好了,现在能编写程序了。下面是经典的一段程序:

#include <>

#include <>

void main(void)

scon = 0x50; /串口方式1,允许接收。

tmod = 0x20; /定时器1定时方式2

tcon = 0x40; /设定时器1开始计数。

th1 = 0xe8; /11.0592mhz 1200波特率。

tl1 = 0xe8;

ti = 1;

tr1 = 1; /启动定时器。

while(1)

printf (hello world!);;显示hello world

这段程序的功能是不断从串行口输出“hello world!”字符。

4)点击保存新建的程序,也能用菜单 file-s**e 或快捷键 ctrl+s进行保存。因是新文件所以保存时会弹出类似图 1-3 的文件操作窗口,把第一个程序命名为 保存在项目所在的目录中,这个时候您会发现程序单词有了不一样的颜色,说明 keil的c语言语法检查生效了。鼠标在屏幕左边的 source group1 文件夹图标上右击弹出菜单,在这里能做在项目中增加减少文件等操作。

选“add file to group ‘source group 1’” 弹出文件窗口,选择刚刚保存的文件,按 add 按钮,关闭文件窗,程序文件已加到项目中了。这个时候在 source group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它能展开查看。

5)c程序文件加到了项目中,然后编译运行。软件默认的编译设置,它不会生成用于芯片烧写的 hex 文件。需要在“project”菜单下的options for target“target1”然后选择output选项卡下hex前面的钩。

2、本次实习我的小作品99倒计时,程序如下:

#include <>

code unsigned char tab=

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...