单片机课程设计计数器.docx
- 文档编号:30130916
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:15
- 大小:1.06MB
单片机课程设计计数器.docx
《单片机课程设计计数器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计计数器.docx(15页珍藏版)》请在冰豆网上搜索。
单片机课程设计计数器
单片机原理及应用课程设计报告
系别:
机电与自动化学院
专业班级:
机电一体化技术0901
学号:
***********
学生姓名:
**
指导教师:
***
(课程设计时间:
2011年6月6日—2011年6月10日)
目录
1.课程设计目的…………………………………………………………………2
2.课程设计题目描述和要求……………………………………………………2
3.课程设计报告内容……………………………………………………………2
3.1设计内容………………………………………………………………………2
3.2设计原理………………………………………………………………………2
3.2.1接线方案……………………………………………………………………2
3.2.2系统完整硬件电路图………………………………………………………3
3.2.3可编程多功能接口8155…………………………………………………4
3.3系统软件介绍…………………………………………………………………6
3.3.1系统软件流程………………………………………………………………7
3.3.2系统软件程序………………………………………………………………8
3.4系统软、硬件调试过程………………………………………………………10
4.总结……………………………………………………………………………11
参考文献……………………………………………………………………………12
1.课程设计目的
1.熟悉8155定时/计数器的记数功能;
2.掌握初始化编程方法;
3.掌握中断程序的调试方法。
2.课程设计题目描述和要求
1.脉冲计数(定时/计数器的记数功能)
2.利用实验仪提供的显示电路,动态显示一行数据。
3.课程设计报告内容
3.1设计内容
定时/计数器0对外部输入的脉冲进行计数,并送显示器显示
3.2设计原理
MCS-51有两个16位的定时/计数器:
T0和T1。
计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已。
当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能。
当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个有1到0的电平变化时,计数器的值加1,从而实现计数功能。
可以通过编程来指定时技术计数器的功能,以及他的工作方式。
读取计数器的当前值时,应读3次。
这样可以避免在第一次读完后,二次读完钱,由于低位溢出向高位进行时的错误。
3.2.1接线图案
接线方案1:
接线方案2:
3.2.2系统完整硬件电路图
图C89C52实验箱键盘及数码管系统电路图:
图C89C52实验箱键盘及数码管系统电路图
图D实验箱键盘及数码管电路图
图D实验箱键盘及数码管电路图
3.2.3可编程多功能接口8155
8155芯片内具有RAM、并行I/O端口和计数器,是可编程多功能接口芯片。
8155与MCS-51单片机接口简单,是单片机应用系统中广泛使用的芯片。
8155的组成与接口信号
(1)静态RAM
8155芯片内具有256个字节的静态RAM。
(2)定时器
8155芯片内具有1个14位减法计数器,
(3)端口A、端口B和端口C
8155芯片内具有2个8位、1个6位的可编程并行I/O端口。
PortA和PortB都是8位的端口,PortC是6位的端口,都可以选择作为输入或输出。
当端口A和端口B作为选通输入或输出的数据端口时,端口C与端口A和端口B配合使用,用作它们的控制信号或状态信号。
(4)地址数据线
AD0~AD7为地址数据复用线。
8155与计算机之间的地址、数据、命令和状态信息都是通过它们传送的。
8155共有256个RAM单元和命令状态寄存器、端口A、端口B、端口C、计数器低8位、计数器高8位等6个可编址的端口,为此8155引出了8条地址数据线。
使用8位地址对RAM进行编址,RAM的编址为00H~FFH。
使用低3位地址对端口进行编址,6个端口的地址为00H~05H,如表7-5所列。
表18155端口的地址表
A2
A1
A0
端口
0
0
0
命令状态寄存器
0
0
1
端口A
0
1
0
端口B
0
1
1
端口C
1
0
0
计数器低8位
1
0
1
计数器高8位
(5)读/写控制信号线
选片信号:
低电平有效,由它启动CPU与8155之间的通信。
IO/
IO/RAM选择线:
当IO/
=1时,对8155的IO口和计数器进行读/写,AD0~AD7上的地址为其端口地址。
当IO/
=0时,对8155的RAM进行读/写,AD0~AD7上的地址为RAM的单元地址。
ALE地址锁存信号:
其下降沿将计算机输出的低8位地址以及
、IO/
输入的状态都锁存到8155内部寄存器。
因此,8155与MCS-51单片机连接时不需外接地址锁存器。
写信号:
低电平有效。
它控制把CPU输出到系统数据总线上的数据或命令写到8155。
读信号:
低电平有效。
它控制8155送出数据或状态信息至地址数据线。
RESET复位信号:
高电平有效。
它清除命令状态寄存器和置A、B、C三个IO端口为输入方式。
(6)8155的命令状态字
8155的命令状态寄存器,实际上是两个寄存器,分别存放命令字和状态字。
但由于对命令寄存器只能进行写操作,而对状态寄存器只能进行读操作,因此把它们编为同一端口地址,合在一起称之为命令状态寄存器。
命令字
命令字写入命令寄存器,用于定义并行IO端口及定时器的工作方式。
状态字
状态字(只使用了7位,最高位没定义)从状态寄存器读出,用于寄存PA、PB和定时器的工作状态。
(7)8155与MCS-51单片机的连接
8155与MCS-51单片机的连接比较简单,因为8155的许多信号与MCS-51单片机兼容,可以直接连接。
8155与MCS-51单片机连接的主要麻烦在IO/
信号上。
因为是8155特有的信号,MCS-51单片机没有相应的信号。
因此要设法形成这个信号,提供给8155使用。
IO/
信号的形成有多种方法,不同的形成方法对应着不同的编址方式。
(8)8155在键盘和七段显示器接口中的应用
例7-15用8155做接口,设计矩阵键盘和七段显示器电路。
编写从键盘输入并在七段显示器上回显十六进制数的控制程序。
键入的数在显示器的最右边显示,并将原键入的数依次向左移动一位。
若多于六个,则仅显示后键入的六个数。
根据题意,需要16只按键和6只七段显示器。
8155芯片及4×4键盘、6位七段显示器与MCS-51单片机的连接电路如图7-30所示。
该电路是伟福单片机实验箱上的实际电路。
其中,74LS164是串入并出8位移位寄存器;UA2003是反相驱动器。
74LS164有2个串行输入端A和B、8个并行输出端Q7~Q0和1个异步清零端
。
只有当2个串行输入端都为高电平时,串行输入数据才是1,否则便是0。
3.3系统软件介绍
(1)系统概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
(2)KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
(3)注意事项
使用独立的Keil仿真器时,注意事项
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
3.3.1系统软件流程
图E实验框图
主程序流程图
二转十进制子程序
图E系统软件流程
3.3.2系统软件程序
OUTBITequ0e101h
CLK164equ0e102h;段控制口(接164时钟位)
DAT164equ0e102h;段控制口(接164数据位)
LEDBufequ40h
INequ0e103h
ORG0000h
MOVSP,#60H
MOVDPTR,#0e100H;8155初始化
MOVA,#03H
MOVX@DPTR,A
MOVTMOD,#05H;定时器初始化
MOVTH0,#00H
MOVTL0,#00H
SETBTR0
LOOP0:
MOVR2,TH0
MOVR3,TL0
LCALLLOOP1
MOVR0,#40H
MOVA,R6
LCALLPTDS
MOVA,R5
LCALLPTDS
MOVA,R4
LCALLPTDS
LCALLDISPLAY
SJMPLOOP0
LOOP1:
CLRA;二转十子程序
MOVR4,A
MOVR5,A
MOVR6,A
MOVR7,#10H
LOOP2:
CLRC
MOVA,R3
RLCA
MOVR3,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
DJNZR7,LOOP2
RET
PTDS:
MOVR1,A;拆字子程序
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
Delay:
movr7,#0;延时子程序
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
DISPLAY:
setb0d3h
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00000001b;从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#00h
movx@dptr,a;关所有八段管
mova,@r0
movdptr,#LEDmap
movca,@a+dptr
movB,#8;送164
DLP:
rlca
movr3,a
movacc.0,c
anla,#0fdh
movdptr,#DAT164
movx@dptr,a
movdptr,#CLK164
orla,#02h
movx@dptr,a
anla,#0fDh
movx@dptr,a
mova,r3
djnzB,DLP
movdptr,#OUTBIT
mova,r2
movx@dptr,a;显示一位八段管
movr6,#1
callDelay
mova,r2;显示下一位
rla
movr2,a
incr0
djnzr1,Loop
movdptr,#OUTBIT
mova,#0
movx@dptr,a;关所有八段管
clr0d3h
ret
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
END
3.4系统软、硬件调试过程
将十进制数改为十六进制数
IOOP0:
MOVR2,TH0
MOVR3,TL0
MOVR0,LEDBuf
MOVA,R3
LCALLPTDS
MOVA,R2
LCALLPTDS
LCALLDISPLAY
4.总结
通过这次单片机课程设计,我体会到了单片机在现代电子产品中的广泛用途和强大功能,复习了老师上课讲的内容。
但是由于时间仓促还有许多有待完善的地方,我会在以后的学习工作中继续努力。
参考文献
[1]催维娜,智能电子制作.北京:
科学出版社,2007.
[2]张红润,智能技术——系统设计与开发.北京:
北京航空航天出版社,2007..
[3]陈铁军,智能控制理论及应用.北京:
清华大学出版社,2009..
课程设计成绩:
项目
业务考核成绩(70%)
(百分制记分)
平时成绩(30%)
(百分制记分)
综合总成绩
(百分制记分)
注:
教师按学生实际成绩(平时成绩和业务考核成绩)登记并录入教务MIS系统,由系统自动转化为“优秀(90~100分)、良好(80~89分)、中等(70~79分)、及格(60~69分)和不及格(60分以下)”五等。
指导教师评语:
指导教师(签名):
20年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计 计数器 单片机 课程设计