您的当前位置:首页正文

单片机课程设计报告

来源:一二三四网


《单片机技术》课程设

计实验报告

专 业: 电子信息工程 班 级:07电信(本)一班 姓 名: 李 汶 泽 学 号: 200710312136 指导教师: 杨 加 国 日 期: 20100-6-26

目录

一、课程设计的目的 .............................. 3

二、课程设计具体要求 .......................... 3

三、MCS-51单片机系统简介 ............... 3

四、MCS-51单片机内部定时器/计数器中断系统简介 .......................................... 4

五、键盘和LED数码管显示器简介 .... 5

六、实验内容基本原理 .......................... 7

七、硬件电路 .......................................... 8

八、程序简介与代码 .............................. 8

九、设计制作过程 ................................ 12

十、实验总结 ........................................ 17

一、课程设计的目的

本课程设计是自动化专业、电子信息技术专业学生在学完单片机原理及课程之后必修课程,它的教学目的和任务是综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。

二、课程设计具体要求

1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。

2、写课程设计报告,给出设计思想,原理,硬件电路图,给出相应程序,并写出设计过程。

三、MCS-51单片机系统简介

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

MCS-51系列之功能与总线结构

四、MCS-51单片机内部定时器/计数器中断系统简介

⑴定时/计数器:

1、MCS-51系列中51子系列有两个16位可编程定时/计数器:定时计数器T0和定时计数器T1

2、每个定时/计数器即可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,这些功能都是通过编程设定实现的、

3、每个定时/计数器都是多种工作方式,其中T0有四种工作方式;T1有三种工作方式;T2有三种工作方式。通过编程可设定工作于某种方式。

4、每一个定时/计数器定时计数时间到时产生溢出,使相应的溢

出位置位,溢出可通过查询或中断方式处理. ㈡中断系统

执行完服务程序后,再返回被暂停的位置继续执行原来的程序,这个过程称为中断,实现中断的硬件系统和软件系统称为中断系统。

8051有两个外部中断源和三个内部源:两个定时器/计数器中断源

和一个串行口中断源

中断系统主要有中断允许控制器IE和中断优先级控制器IP等电路组成

中断系统涉及了以下一个问题: 1、中断源及中断请求 2、中断优先权控制 3、中断允许和中断屏蔽 4、中断响应与中断返回

五、键盘和LED数码管显示器简介

键盘工作原理

LED数码管显示器

LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。在单片机系统通常使用的是8段式

LED数码管显示器,他有共阴极和共阳极两种结构。

LED数码管显示器具有硬件译码方式和软件译码方式 LED数码管显示器具有静态显示方式和动态显示方式

六、实验内容基本原理

利用单片机的定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。

用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。形成定时时间为50ms。用片内RAM的7BH单元对50ms计数,计20次产生秒计数器7BH单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格

式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。

七、硬件电路

C247uFX1CRYSTAL19C3GNDU1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161747uF18XTAL2C11nFVCC9R11k293031RSTPSENALEEAK0R5R4R35.1k5.1k5.1k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51K1K2K0键为模式选择键,按第一次暂停,设小时;按第二次暂停,设分,按第三次重新开始走动。K1为加1键,K2为减1健。 八、程序简介与代码 ;采用8位LED软件译码动态显示程序

;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳

;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。

;片内RAM的70H到77H单元为LED数码管的显示缓冲区 ;78H,79H,7AH分别为秒、分、小时计数单元 ;7BH为50ms计数器,7CH为调时按键计数器

ORG 0000H LJMP START

ORG 000BH ;定时器/计数器T0中断程序入口 LJMP INTT0

;主程序

START:MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H INC R0 DJNZ R7,INIT MOV 72H,#10 MOV 75H,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#03CH SETB EA SETB ET0 SETB TR0 START1: LCALL SCAN LCALL KEYSCAN SJMP START1 ;延时1MS子程序 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

;延时20MS子程序 DL20MS: ACALL SCAN ACALL SCAN ACALL SCAN RET ;数码管显示程序 SCAN: MOV A,78H ;时间存入显示缓冲区相应位置 MOV B,#0AH DIV AB MOV 71H,A MOV 70H,B MOV A,79H MOV B,#0AH DIV AB MOV 74H,A

MOV 73H,B MOV A,7AH MOV B,#0AH DIV AB MOV 77H,A MOV 76H,B MOV R1,#70H ;循环扫描显示 MOV R5,#80H MOV R3,#08H SCAN1: MOV A,R5 MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV A,R5 LCALL DL1MS INC R1 MOV A,R5 RR A MOV R5,A DJNZ R3,SCAN1 MOV P2,#00H MOV P0,#0FFH RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码

;定时器/计数器T0中断服务程序 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7BH MOV A,7BH CJNE A,#14H,OUTT0 MOV 7BH,#00 INC 78H MOV A,78H CJNE A,#3CH,OUTT0 MOV 78H,#00

INC 79H MOV A,79H CJNE A,#3CH,OUTT0 MOV 79H,#00 INC 7AH MOV A,7AH CJNE A,#18H,OUTT0 MOV 7AH,#00 OUTT0: SETB ET0 pop psw pop acc RETI ;按键处理程序

KEYSCAN: CLR EA JNB P1.0,KEYSCAN0 JNB P1.1,KEYSCAN1 JNB P1.2,KEYSCAN2 KEYOUT: SETB EA RET

KEYSCAN0: LCALL DL20MS JB P1.0,KEYOUT WAIT0: JNB P1.0,WAIT0 INC 7CH MOV A,7CH CLR TR0 CLR ET0 CJNE A,#03H,KEYOUT MOV 7CH,#00 SETB TR0 SETB ET0 SJMP KEYOUT

KEYSCAN1: LCALL DL20MS JB P1.1,KEYOUT WAIT1: JNB P1.1,WAIT1 MOV A,7CH CJNE A,#02H,KSCAN11 INC 79H MOV A,79H CJNE A,#3CH,KEYOUT MOV 79H,#00 SJMP KEYOUT KSCAN11: INC 7AH MOV A,7AH

CJNE A,#18H,KEYOUT MOV 7AH,#00 SJMP KEYOUT

KEYSCAN2: LCALL DL20MS JB P1.2,KEYOUT WAIT2: JNB P1.2,WAIT2 MOV A,7CH CJNE A,#02H,KSCAN21 DEC 79H MOV A,79H CJNE A,#0FFH,KEYOUT MOV 79H,#3BH SJMP KEYOUT KSCAN21: DEC 7AH MOV A,7AH CJNE A,#0FFH,KEYOUT MOV 7AH,#17H SJMP KEYOUT END

九、设计制作过程

1、 PROTEUS的进入与界面

双击桌面上的ISIS 7.1 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional” →“ISIS 7 Professional”,出现如图1-1所示屏幕,表明进入Proteus ISIS集成环境。

图1-1 启动时的屏幕

Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

2、选择元器件

将所需元器件加入到对象选择器窗口。Picking Components into the Schematic

单击对象选择器按钮,如图所示

弹出“Pick Devices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图所示。

3、器件连线并且赋值

完成后为以下图片

4、使用KEIL51软件处理程序 首先项目文件的建立

通过用Project菜单下的New Project命令建立项目文件,过程如下。

选择Project菜单下的New Project命令,弹出如图2所示的

Create new Project对话框。

在Create New Project对话框中选择新建项目文件的位置,输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target 'Target 1'对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。

图3 Select Device for Target 'Target 1'对话框

选择Intel公司的8051AH。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,

然后给项目添加程序文件 将编写的.ASM文件加入工程里面

(1) 在项目管理器窗口中,展开Target1项,可以看到Source Group1子项。

(2) 右击Source Group1,在出现如图5所示的菜单中选择Add Files to Group 'Source Group1'命令。

(3) 弹出如图6所示的Add Files to Group 'SourceGroup1'对话框。在对话框中选择需要添加的程序文件,单击Add按钮,把所选文件添加到项目文件中

(4) 如果是已有的程序文件,则添加结束后,就可以做下一步的编译、连接工作;如果是新文件,则应先输入文件内容,存盘,然后做编译、连接工作。

(5)编译、连接工作成功后,产生HEX文件

五、用PROTEUS软件将HEX文件添加到51芯片里面

右键单击芯片编辑如下图,看红色部分将HEX文件添加进去

六、运行测试

十、实验总结

通过这次课程设计,我对Proteus Professional 7.1和Keil uVision3的使用有了一定深度的了解,掌握了这两款软件的基本使用方法.并且通过这次以理论为基础的实践操作后,我对MCS-51系列中51子系列的工作原理有了更深入的认识.特别是内部定时器/计数器中断系统的认识,相对以前来说,这次深入了许多。并且这次是用知识到应用的过程,让自己亲自模拟用软件做一个具有相关功能的东西出来,所以让自己对单片机知识的应用有了系统认识,在知识的应用上比以前更具有方向感。同时在对单片机软硬知识的理解的基础上,获得初步的应用经验,也正如实验目的上所说一样:为走出校门从事单片机应用的相关工作打下相关知识基础。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top