目录
一、构建单片机最小系统版和实验环境熟悉
1.1实验要求
1.2实验过程
1,21.单片机最小系统实验
1.22编译环境的熟悉
二、跑马灯实验及74LS138译码
2.1.实验要求
2.2.实验过程
2.21单片机直接实现跑马灯
2.22通过74LS138译码器实现跑马灯
三、8255A控制交通灯实验
3.1实验要求
3.2实验过程
四、8253方波实验
4.1实验要求
4.2实验过程
五、继电器控制实验
5.1实验要求
单片机设计总结:
附录:
摘要:
单片机应用技术为一门理论与实践相结合的课,本课安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。
使用Protues能使我们在没有用实物连接的情况下允许学生在Windows操作系统下编写、编译、连接、错误定位、调试、观察、修改系统。通过本实验的学习,学生可以熟悉各种类型的接口芯片,汇编语言程序的编写、调试,充分锻炼动手及编程能力。
关键词:编程语言 硬件芯片 单片机系统 接口芯片一、构建单片机最小系统版和实验环境熟悉1.1实验要求
一、预习要求
1.构建单片机最小系统,熟悉51单片机的结构及编程方法
2.按照程序流程图编写出程序
二、实验目的
1.熟悉星单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。
2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。
三、实验内容
单片机最小系统实验:
1、熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。
2、作出单片机最小系统的组成原理图,分析其各构成单元的工作原理。
存储单元数据传输实验:
1、熟悉MCS51汇编指令。
2、进行存储单元数据传输实验,编写程序。
3、运行程序,验证译码的正确性。1.2实验过程1,21.单片机最小系统实验
1.单片机最小系统板的组成
时钟电路复位电路,电源电路,这几个部分构成,复位电路是用来使电路的运行状态归零,电源电路是用来提供+5v的电源电压,对单片机进行供电(由于器材等原因本次设计我们用的是开发板供电)。下面的单片机最小系统板,我们晶振选择的是12MHz的,其他的各种元器件来构成单片机的最小系统板。
3、单片机最小系统的工作原理
(1)51单片机最小系统复位电路的极性电容C3的大小直接影响单片机的复位时间,一般采用10-30uF,51单片机最小系统容值越大需要的复位时间越短。
(2)51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
(3)51单片机最小系统起振电容C2、C3一般采用15-33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
(4)P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
A、设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。
B、设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。1.22编译环境的熟悉
实验中我们使用keil 4环境编译程序。其窗口界面如下:
跑马灯原理图
74LS138原理图
从原理图可看出,74138有三个输入端:A0、A1、A2和八个输出端Q0~Q7。当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。即Q0对应于A0、A1、A2为000状态,低电平有效。A0、A1、A2的另外7种组合见后面的真值表。
图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入输入为何值,每个输出端均为1。
(2)、74LS138译码器真值表
3.对应程序流程图
思考题
1、在单片机系统中,74LS138通常用来产生片选信 ,应如何处理/p>
答:取三根底地址线,接到74LS138译码器的输入端,译码产生,8个使能控制信 。
实验心得
第一个实验单片机直接控制跑马灯,比较容易实现,只需要从单片机的p1.0到p1.7接到跑马灯上,利用这些接口控制。138控制流水灯的实验有些麻烦,实验过程中也出现了不少的问题,但到最后都解决了。这次的实验让我对138的功能有了更深的了解与熟悉。三、8255A控制交通灯实验3.1实验要求
一、预习要求
1.熟悉51单片机的结构及编程方法
2.按照要求画出流程图及程序
二、实验目的
1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与单片机的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、尝试自行编写程序,填写实验 告。
三、实验内容
1、设计8255接口电路,编写程序:使用8255的PA0..2、PA5..7控制LED指示灯,实现交通灯功能。
2、连接线路验证8255的功能,熟悉它的使用方法。3.2实验过程
1、8255引脚图
8255共有三种工作方式:
(1)工作方式0:这是 8255A 中各端口的基本输入/输出方式。它只完成简单的并行输入/输出操作,CPU 可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。
(2)工作方式1:被称作选通输入/输出方式。在这种工作方式下,数据输入/输出操作要在选通信 控制下完成。
(3)工作方式2:被称作带选通的双向传送方式。8255A中只允许端口A 处于工作方式2,可用来在两台处理机之间实现双向并行通信。其有关的控制信 由端口 C 提供,并可向 CPU发出中断请求信 。
3、主程序流程图
4、8255A交通灯仿真图
4、中断程序流程图
(继电器控制原理图)
2、编写并运行程序,利用拨动开关控制直流电机转动、停止。
思考题
1.列写出所编程序及流程图并做出注释
CLR P2.7 ;使译码器无效
JIDIAN_1: SETB P2.6
CJNE R4,#05H,JIDIAN_2 ;按键按下后立即跳出
JB P3.1,JIDIAN_1 ;JB位条件转移
MM: CLR P2.6
JNB P3.1,MM
JB P3.1, JIDIAN_1
JIDIAN_2:
RET
END
实验总结
第五次试验我只做了继电器的实验,主要通过继电器来控制电机。由于器材的限制没有电机,我用一个发光二极管来代替。当开关合上导通时,二极管发光,开关断开时二极管熄灭,这样能模拟电动机的工作状态。实验焊接时需要非常小心,因为继电器的引脚有6个,不是都需要焊接,有几个引脚的功能是一样的,刚还是由于没有注意到这点,实验做不出来,后来在别人的指导下,找出错误,完成本次试验。单片机设计总结:
经过单片机的五次实验让我们受益匪浅.此次实验是通过团队合作进行软件与硬件的设计相结合。这次试验即考察了我们的焊接水平与编程能力,又考察了我们的团队合作,对于我们电子自动化的学生而言焊接是不成问题,也很顺利;可到了编程就出现了很大的问题。本来还以为实验会很简单,但等到实际操作起来才知道它的复杂性,首先我们不知道怎么去理解实验题目,怎样更好的设计程序而达到实验的要求。其次,队员的每个人的想法都不同,导致实验并没有想象中的那么顺利。最终我们通过讨论明确了分工以及向别的小组同学咨询,解决了这些问题。单片机技术已经很早结束了,所以后期很多专业知识已经不是很记得.不过经过我们一步步的努力,最终花费的时间与精力终于没有白费,效果渐渐地出现了,终于一步步地完成了本次设计实验。
总而言之,片机设计对于我们有很大的帮助,我们从中受益匪浅。最后我们要感谢储忠老师的辛勤教导,还有老师对我们的试验安排,让我们有足够的时间可以做好实验。
ORG 0000H
AJMP START
ORG 0003H
LJMP INTT0
ORG 000BH
LJMP T0INT
;ORG 001BH
;LJMP T1INT
ORG 0400H
START:
CLR P2.7
SETB P2.2
SETB P2.3
NOP
NOP
MOV P0,#0
SETB IT0 ;下降沿中断
SETB EX0 ;开中断0
SETB EA ;开总中断
;—————————————————————
/* SETB P2.7
MOV P0,#0F0H
CLR P2.7
MOV P0,#00H */
;—————————————————————
MOV R4,#00H
MAIN:
CJNE R4,#01H,PROC_1
LCALL LED
PROC_1:CJNE R4,#02H,PROC_2
LCALL LS138
PROC_2:CJNE R4,#03H,PROC_3
LCALL IC_8255A
PROC_3:CJNE R4,#04H,PROC_4
LCALL IC_8253
CLR ET0
PROC_4:CJNE R4,#05H,MAIN
LCALL JIDIAN
AJMP MAIN
DELAY: ;误差 0us
MOV R7,#01H
DL1:
MOV R6,#8EH
DL0:
MOV R5,#02H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
;按键中断
INTT0: //LCALL DELAYJ
MOV A,P3
ANL A,#04H ;anl位与
CJNE A,#00H,END_INT1
CLR P2.0
CLR P2.1
SETB P2.2 ;8255复位
CLR P2.2
CLR P2.3
INC R4
CJNE R4,#06H,END_INT1 ;实验项目计数,到达第5个实验时清零
MOV R4,#00H
END_INT1:
RETI
;功能:使用P1口控制8个LED流水灯
;端口:P1.0~P1.7P2.0P2.1
LED: ;模块1工作
MOV A,#0FFH
MOV P1,A
MOV DPTR,#TAB ;查表
MOV R0,#00H
LED_1:MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
CJNE R4,#01H,LED_2 ;按键按下后立即跳出
LCALL DELAY1
CJNE R4,#01H,LED_2 ;按键按下后立即跳出
MOV R5,#10
INC R0
CJNE R0,#29,LED_1
MOV R0,#00H
AJMP LED_1
LED_2:
RET
;查表
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH
DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
DB 7EH,0BDH,0DBH,0E7H,0DBH,0BDH
DB 3CH,99H,0C3H,99H,3CH
DB 0AAH,55H,0AAH,99H
;闪烁延时函数
;0.5S
DELAY1:MOV R5,#17H
D1: MOV R6,#98H
D2: MOV R7,#46H
DJNZ R7,$
CJNE R4,#01H,DELAY11 ;按键按下后立即跳出
DJNZ R6,D2
CJNE R4,#01H,DELAY11 ;按键按下后立即跳出
DJNZ R5,D1
DELAY11:
RET
;功能:使用74LS138控制8个LED流水灯,循环点亮,瞬间只有一个灯亮
LS138:
MOV P1,#0FFH ;使P1口输出高电平,防止P1口扰乱后面的操作
// SETB P2.7
// CLR P2.2
// CLR P2.3
MOV A,#0xf0 ;138使能
LS138_1:MOV P2,A
CJNE R4,#02H,LS138_3 ;按键按下后立即跳出
LCALL DELAY2
CJNE R4,#02H,LS138_3 ;按键按下后立即跳出
INC A
CJNE A,#0xf8,LS138_1
LS138_2:DEC A
MOV P2,A
CJNE R4,#02H,LS138_3 ;按键按下后立即跳出
MOV R5,#13
LCALL DELAY2
CJNE R4,#02H,LS138_3 ;按键按下后立即跳出
CJNE A,#0xf0,LS138_2
AJMP LS138_1
LS138_3:
RET
;闪烁延时函数
;0.5S
DELAY2: MOV R5,#17H
D3: MOV R6,#98H
D4: MOV R7,#46H
DJNZ R7,$
CJNE R4,#02H,DELAY22 ;按键按下后立即跳出
DJNZ R6,D4
CJNE R4,#02H,DELAY22 ;按键按下后立即跳出
DJNZ R5,D3
DELAY22:
RET
;8255PA、PB、PC及控制字端口地址
;ADD_8255PA EQU H
;ADD_8255PB EQU H
;ADD_8255PC EQU H
;ADD_8255CON EQU 0F3FFH
IC_8255A:
CLR P2.7
MOV DPTR,#0F3FFH
MOV A,#80H
MOVX @DPTR,A
CJNE R4,#03H,IC_8255_2 ;按键按下后立即跳出
S1: MOV A,#00110011B
MOV DPTR,#0F0FFH
MOVX @DPTR,A ;东西红灯亮,南北绿灯亮
CALL DELAY5S ;5秒延时
S2: ;南北黄灯闪烁三次
;黄灯第一次闪烁
CJNE R4,#03H,IC_8255_2 ;按键按下后立即跳出
MOV A,#00110101B ; 东西红灯亮,南北黄灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S ;延时0.5秒
MOV A,#00110111B ; 东西红灯亮,南北黄灯灭
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
;黄灯第二次闪烁
MOV A,#00110101B ; 东西红灯亮,南北黄灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00110111B ; 东西红灯亮,南北黄灯灭
MOV DPTR,#00FFH
MOVX @DPTR,A
CALL DELAY1S
;黄灯第三次闪烁
MOV A,#00110101B ;东西红灯亮,南北黄灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00110111B ; 东西红灯亮,南北黄灯灭
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
S3: CJNE R4,#03H,IC_8255_2 ;按键按下后立即跳出
MOV A,#00011110B ; 东西绿灯亮,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY5S
S4: ;东西黄灯闪烁三次
MOV A,#00101110B ;东西黄灯亮,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00111110B ; 东西黄灯灭,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00101110B ;东西黄灯亮,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00111110B ; 东西黄灯灭,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00101110B ;东西黄灯亮,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
MOV A,#00111110B ; 东西黄灯灭,南北红灯亮
MOV DPTR,#0F0FFH
MOVX @DPTR,A
CALL DELAY1S
CJNE R4,#03H,IC_8255_2
AJMP S1 ; 跳转到状态S1状态,循环
IC_8255_2:
MOV A,#00111111B ; 熄灭所有的交通灯,退出8255实验
MOV DPTR,#0F0FFH
MOVX @DPTR,A
RET
DELAY5S:MOV R7,#100 ; 延时5秒
L0: MOV R6,#100
L1: MOV R5,#248
L2: DJNZ R5,L2
DJNZ R6,L1
DJNZ R7,L0
RET
DELAY1S:MOV R5,#200 ; 延时0.5秒
L3: MOV R3,#248
L4: DJNZ R3,L4
DJNZ R5,L3
RET
;8253T0、T1、T2及控制字端口地址
;ADD_8253T0 EQU 03FFH
;ADD_8253T1 EQU 07FFH
;ADD_8253T2 EQU 0BFFH
;ADD_8253CON EQU 0FFFH
;功能:8253模块,主要是8253的初始化部分
IC_8253:
CLR P2.7 ;使138无效
MOV DPTR,#0FFFH
MOV A,#00100101B ;计数器0,只读/写高字节方式2,bcd码计数
MOVX @DPTR,A
// CJNE R4,#04H,IC_8253_2 ;按键按下后立即跳出
; 计数器0:100分频
MOV DPTR,#03FFH
MOV A,#01H ;装初值计数器0的高字节 ,
MOVX @DPTR,A
MOV DPTR,#0FFFH
MOV A,#01010111B ;计数器1,只读低字节,方式3,bcd计数
MOVX @DPTR,A
MOV DPTR,#07FFH
MOV A,#10H ;计数器1:10分频
MOVX @DPTR,A
MOV TMOD,#00H
MOV TH0,#0F0H
MOV TL0,#0CH
SETB TR0 ;启动T0
SETB ET0 ;开T0中断
SETB EA
IC_8253_1: CJNE R4,#04H,IC_8253_2 ;按键按下后立即跳出
AJMP IC_8253_1
IC_8253_2:
RET
T0INT: CPL P3.0 ;取反 ;1000HZ方波
MOV TH0,#0F0H
MOV TL0,#0CH
RETI
JIDIAN:
CLR P2.7 ;使译码器无效
JIDIAN_1: SETB P2.6
CJNE R4,#05H,JIDIAN_2 ;按键按下后立即跳出
JB P3.1,JIDIAN_1 ;JB位条件转移
MM: CLR P2.6
JNB P3.1,MM
JB P3.1, JIDIAN_1
JIDIAN_2:
RET
END复制代码
实物图:
完整的Word格式文档51黑下载地址:

邹世阳的单片机课程设计.doc
(1.69 MB, 下载次数: 13)
2019-4-14 21:15 上传
点击文件名下载附件
下载积分: 黑币 -5
相关资源:专业LED灯光动画制作软件(安装后直接用!)_setup安装包-Delphi工具…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!