《单片机技术》实验级自本电子电气本通信教案详解.docx
《《单片机技术》实验级自本电子电气本通信教案详解.docx》由会员分享,可在线阅读,更多相关《《单片机技术》实验级自本电子电气本通信教案详解.docx(16页珍藏版)》请在冰豆网上搜索。
![《单片机技术》实验级自本电子电气本通信教案详解.docx](https://file1.bdocx.com/fileroot1/2023-2/8/a7dbfb74-e047-47f4-b65c-df6952d3c7e1/a7dbfb74-e047-47f4-b65c-df6952d3c7e11.gif)
《单片机技术》实验级自本电子电气本通信教案详解
课程教案
课程名称:
单片机技术实验
任课教师:
王韧
所属系部:
电气与信息工程学院
教学班级:
自本1003~4
电子1001~2
电气本1001~2
通信本1001~2
教学时间:
2012—2013学年第一学期
湖南工学院
课程基本信息
课程
名称
单片机技术实验
课程代码
G0190334
总计:
学时
讲课:
学时
实验:
16学时上机:
学时
课程设计:
周
学分
1
类别
必修课(√)选修课()理论课()实验课(√)
任课
教师
王韧
职称
副教授
授课
对象
专业班级:
自本1003~04、电子1001~02、
电气本1001~02、通信本1001~02共8个班
课
程
简
介
(不超过1000字)
《单片机技术》实验是本科电气信息类专业学生必修的一门专业基础课程,该课程具有较强的理论性和实践性。
通过实验课程使学生在实验方法和实验技能上得到训练,进而培养他们理论联系实际的能力,提高他们实际动手操作的能力,同时也可加强他们对理论课程内容的理解。
本课程的任务是让学生学习和掌握单片机的工作原理,掌握Keil软件、Proteus软件的使用方法,并结合具体的实验项目来完成系统硬件和软件的设计。
本实验主要有软件和硬件两部分组成,通过一系列实验加深和巩固学生对所学理论知识的理解和认识,扩展知识面,学会一些实用的技术和实验技能。
基本
教材
和主
要参
考资
料
基本教材:
《单片机技术实验》讲义
参考资料:
[1]《单片机基础》,李广弟主编,北航出版社
[2]《单片机的C语言应用程序设计》,马忠梅主编,北航出版社
湖南工学院教案用纸p
一、实验名称:
数据传送实验
二、课时安排:
2学时
三、实验目的
1、掌握单片机的汇编指令系统及汇编语言程序设计方法。
2、掌握单片机的存储器体系结构。
3、熟悉Keil软件的功能和使用方法。
4、掌握单片机应用程序的调试方法。
四、实验内容或原理
1、实现单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送。
2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。
五、设计要求
1、编写程序将00H~0FH16个数据分别送到单片机内部RAM30H~3FH单元中。
2、编写程序将片内RAM30H~3FH的内容传送至片内RAM40~4FH单元中。
3、编写程序将片内RAM40H~4FH单元中的内容传送到外部RAM4800H~480FH单元中。
4、编写程序将片外4800H~480FH单元内容送到外部RAM5800H~580FH单元中。
5、编写程序将片外RAM5800H~580FH单元内容传送回片内RAM50H~5FH单元中。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、实验总结。
5、思考题。
七、思考题
1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?
2、说明指令MOVA,20H和MOVC,20H中的20H含义有什么不同?
传送指令
湖南工学院教案用纸p
中的助记符MOV,MOVX,MOVC各适用于访问哪个存储器空间?
八、实验后记
1、绝大部分同学预习了实验内容,编写了实验程序,并能准确使用Keil模拟仿真软件,但也有少部分同学实验准备不充分,事先没有学习Keil模拟仿真软件,不能按要求利用该软件对实验程序进行编辑、汇编、调试、运行及观察实验结果,尤其是对实验程序的排版存在较大的问题,在对实验程序进行汇编的过程中出现的错误不能熟练排除,说明同学们还没有掌握51单片机的汇编指令系统,还不能熟练运用相应指令来编程。
2、基本上掌握了循环程序设计的方法,能够使用多种控制转移语句来控制循环。
3、对于外部RAM之间的数据传送,采用了多种编程的方法来实现。
(1)、用4个通用寄存器来分别保护和恢复数据区原地址和目的地址;
(2)、用两个通用寄存器及堆栈来分别保护和恢复数据区原地址和目的地址;
(3)、利用P2口发高8位地址,用R0或R1作间址寄存器,以实现16位地址的传送;
(4)、利用堆栈实现数据块的传送。
4、掌握了INCDPTR指令的用法,对于DPTR的减一操作,学会利用DECDPL或DECDPH来间接实现。
5、实验结束后大部分同学能够准确的解释和理解实验程序。
湖南工学院教案用纸p
一、实验名称:
单片机并行I/O口的应用实验
二、实验课时:
2学时
三、实验目的
1、熟悉Proteus软件和Keil软件的使用方法。
2、熟悉单片机应用电路的设计方法。
3、掌握单片机并行I/O口的直接应用方法。
4、掌握单片机应用程序的设计和调试方法。
四、实验内容或原理
1、利用单片机并行I/O口控制流水灯。
2、利用单片机并行I/O口控制蜂鸣器。
五、设计要求
1、用Proteus软件画出电路原理图。
要求在P1.0至P1.7口线上分别接LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。
2、编写程序:
要求LED0至LED7以秒速率循环右移。
3、编写程序:
要求LED0至LED7以秒速率循环左移。
4、编写程序:
要求在灯移动的同时,蜂鸣器逐位报警。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
七、思考题
1、编程实现LED0至LED7以十六进制计数规律亮灯?
湖南工学院教案用纸p
八、实验后记
1、比第一次实验,同学们的预习工作做得较为充分,基本上都设计并画好了实验电路原理图,也按要求预先编写了大部分实验程序,但思考题的编程准备得不充分,希望以后能够有所改观!
2、在程序设计方面,同学们对子程序和中断服务程序的区别存在误解,尤其对RET和ret和reti的用法,没有弄清楚。
子程序必须用调用指令调用,除此,别无它法!
3、延时1秒子程序,同学们用了纯软件延时和定时器定时两种方法编程,非常不错!
4、编程语言采用了汇编和C语言两种。
湖南工学院教案用纸p
一、实验名称:
定时器/计数器应用实验一
二、实验课时:
2学时
三、实验目的
1、掌握定时器/计数器定时功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
四、实验内容或原理
1、利用单片机的定时器/计数器以查询方式在单片机口线上产生连续周期性矩形波。
2、利用单片机的定时器/计数器以中断方式在单片机口线上产生连续周期性矩形波。
五、设计要求
1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P1.1口线上接示波器观察波形。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
七、思考题
1、在P1.0口线上产生周期为500微秒,占空比为2:
5的连续矩形波。
湖南工学院教案用纸p
八、实验后记
1、实验准备工作做的不够好,大部分同学把试验程序只写在纸上,应该在宿舍先把电路原理图在电脑上画好,实验程序用KEIL软件先编辑好,进实验室时用U盘拷贝过来,这样,在实验室主要完成试验程序的调试工作,给实验教师留出更多的时间来解决学生在实验过程中出现的问题,以提高效率。
2、通过这次实验,同学们对定时器/计数器的查询工作方式有了比较深刻的理解,并能熟练运用。
3、定时器/计数器的中断工作方式中,出现了一些典型的问题,这些问题反映了学生对单片机中断系统的理解发生了较大的偏差。
尤其是对中断系统编程方面较为突出。
4、不能准确安排各中断源的入口转移指令,对中断服务程序的RETI指令及中断服务程序的调用过程不清楚,错误的用子程序返回指令RET替代RETI指令。
5、中断嵌套没有能够真正理解,对中断响应的过程和相应所需的时间不清楚。
6、典型案例:
ORG0000H
START:
LJMPMAIN
ORG000BH
LCALLTT0
RETI
ORG0030H
MAIN:
ORG1000H
TT0:
RET
湖南工学院教案用纸p
一、实验名称:
定时器/计数器应用实验二
二、实验课时:
2学时
三、实验目的
1、掌握定时器/计数器计数功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
四、实验内容或原理
1、利用单片机的定时器/计数器以查询方式计数外部连续周期性矩形波并在单片机口线上产生某一频率的连续周期性矩形波。
2利用单片机的定时器/计数器以中断方式计数外部连续周期性矩形波并在单片机口线上产生某一频率的连续周期性矩形波。
五、设计要求
1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P1.0口线上接示波器观察波形。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
湖南工学院教案用纸p
七、思考题
1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P1.1口线上接示波器观察波形。
八、实验后记
1、从4个班的整体情况来看,本次实验较为令人满意!
2、同学们基本上弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),基本掌握了查询和中断工作方式的应用。
3、存在的问题:
(1)定时/计数器的第二种开关控制方式,即利用外部输入信号,结合TR控制。
同学们错误的认为,从INT0或INT1输入的外部控制信号,是外部中断请求信号。
实际上仅仅是输入点的巧合而已,此信号不是作为外部中断请求信号来使用的。
(2)在中断服务程序的编写过程中,还有少数同学用RET代替RETI指令使用,虽然能实现中断返回,但概念不对。
极少数同学用LJMP指令来进入和退出中断服务程序,反映出在中断的过程中对堆栈操作的理解不深。
(3)在编写程序的过程中,常常在中断服务程序中对定时/计数器是否计数溢出进行查询,往往造成程序不能退出本次中断服务,进而影响中断嵌套的实现。
湖南工学院教案用纸p
一、实验名称:
外部中断应用实验
二、实验课时:
2学时
三、实验目的
1、掌握中断系统外部中断源的使用方法。
2、掌握延时程序的编程及使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
四、实验内容或原理
1、在单片机口线上产生某一频率的连续周期性矩形波。
2、以按键K0作为外部中断源0开启波形。
3、以按键K1作为外部中断源1关闭波形。
五、设计要求
1、用Proteus软件画出电路原理图,在单片机的P1.0口线上接按键K0,作为外部中断源0使用,用于开启波形,在单片机的P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。
2、在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
七、思考题
1、在P1.2口线上产生周期为100mS,占空比为2:
5的连续矩形波,要求只采用按键K0来控制其开启和关闭。
湖南工学院教案用纸p
八、实验后记
1、本次实验的预习工作较前两次而言有了比较大的进步,绝大部分同学已经做好了电子文档,即实验电路图和试验程序已完成电子化,在规定的实验时间里主要用于完成程序的调试工作,但也有及个别不想学的学生,不做任何准备工作,进实验室后就是等待下课。
2、从实验过程来看,学生对中断系统的理解及应用存在较大的问题。
主要反映在以下几个方面:
(1)没有弄清楚中断服务程序与子程序的共同点和不同点。
(2)采用子程序调用指令和控制转移指令随意转向中断服务程序,中断服务程序的返回也随意采用RET或控制转移指令来实现,结果造成堆栈使用的不平衡,程序跑飞。
(3)没有准确安排各种类型的中断服务程序入口,结果中断源提出中断申请后,却执行不到相应的中断服务程序。
(4)中断请求撤销的条件和时刻有误解。
对于定时/计数器,中断请求的撤销是由硬件电路自动完成的,对于外部中断,如果是脉冲方式,也是由硬件电路自动完成;如果是电平方式,只有在外部有效信号无效后才会由硬件电路自动完成。
以上中断源的有效申请,只有在单片机准备响应中断,将相应中断源的入口地址送入PC后才由硬件电路将中断有效申请标志为清零。
而串行中断有效标志为的清零,必须由程序设计人员在中断服务程序中安排清零指令来实现。
(5)中断控制优先级的问题:
即中断嵌套,大多数同学都清楚,级别较高的中断源提出的中断申请可以打断级别较低的中断源的中断服务,从而实现中断嵌套。
而同级或低级则不能实现嵌套。
但对于同一个中断源,在第一次有效的中断申请被响应后,在执行其中断服务程序过程中,即使这个中断源再次提出有效的中断申请,单片机也不会响应。
也就是同一个中断源不能实现中断嵌套。
(6)同学们习惯使用查询方式,对中断方式的使用还不是非常熟练,只有待于今后多加练习。
湖南工学院教案用纸p
一、实验名称:
可编程并行接口芯片8255的应用实验
二、实验课时:
2学时
三、实验目的
1、掌握单片机与可编程并行接口芯片8255的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
3、熟悉可编程并行接口芯片8255初始化程序的设计方法。
四、实验内容或原理
1、在可编程并行接口芯片8255的PA口或PB口的某一口线上产生连续周期性矩形波。
2、在可编程并行接口芯片8255的PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。
五、设计要求
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。
2、在8255PA口或PB口的某一口线上产生周期为500μS的连续方波,接示波器观察波形。
3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
湖南工学院教案用纸p
七、思考题
1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。
八、实验后记
1、实验准备工作比较充分,基本上都准备好了电子文档。
2、8255与单片机的接口电路设计比较熟练,唯一不足的是8255的片选很多同学采用直接接地的方式,这样容易造成8255端口地址的重叠。
3、8255端口地址的确定比较熟练,已经掌握了I/O口编址技术的要领。
4、掌握了8255两个命令字的功能、格式及定义方法。
5、8255初始化编程的要领理解透彻。
6、8255C口位置位/复位控制字的应用还不是很熟练,有待加强。
湖南工学院教案用纸p
一、实验名称:
A/D转换实验
二、实验课时:
2学时
三、实验目的
1、掌握单片机与ADC0809的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
四、实验内容或原理
1、设计一个简单的单片机数据采集系统,利用ADC0809转换器,轮流采集模拟量输入电压信号,并将模拟量转换成数字量,通过数码管显示器显示。
五、设计要求
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。
2、在0809的某一模拟量输入通道上接外部模拟量。
3、在单片机的外部扩展数码管显示器。
4、分别采用延时和查询的方法编写A/D转换程序。
5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
七、思考题
1、采用中断的方法编写A/D转换程序,完成实验要求。
湖南工学院教案用纸p
八、实验后记
这次实验同学们准备工作做得不是很好,表现在以下几个方面:
1、实验电路设计存在问题。
AD0809通道选择设计有误;AD0809的启动、ALE电路也有错误;数码管显示器的动态显示接线有问题;整个实验电路中,AD0809属于单片机I/O口总线扩展使用,而数码管显示器属于I/O口直接使用,会有可能造成冲突。
2、程序设计也存在问题。
表现在显示子程序的编写上,没有按规范编写子程序。
另外,整个采样应是多通道巡回采样,而同学们实现的是单通道的采样。
3、十六进制数转换成十进制数的算法也存在问题。
4、数据的标度变换也有问题。
5、压缩的BCD码与非压缩的BCD之间的转换也存在问题。
湖南工学院教案用纸p
一、实验名称:
D/A转换实验
二、实验课时:
2学时
三、实验目的
1、掌握单片机与DAC0832的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
四、实验内容或原理
1、设计一个简单的单片机应用系统,利用DAC0832输出连续周期性方波、锯齿波、三角波、正弦波信号。
五、设计要求
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0832接口。
2、在单片机的外部扩展一个4个按键的键盘。
3、按下K0,产生连续方波信号。
4、按下K1,产生连续锯齿波信号。
5、按下K2,产生连续三角波信号。
6、按下K3,产生连续正弦波信号。
7、通过外接示波器观察波形。
六、实验报告要求
1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
七、思考题
1、编程实现产生连续梯形波信号。
湖南工学院教案用纸p
八、实验后记
本次实验总体情况不错,但也存在问题,表现在以下几个方面:
1、实验电路的设计。
DA转换电路:
单缓冲的问题;参考电压的选择;0832的片选;集成运放芯片的选择及接线;尤其是运放的反馈电阻,很多同学没有接,造成不能产生正常的波形。
2、程序设计表现在键盘子程序没有按规范来编写,这是很多同学的通病。
延时子程序的延时时间不明确。
3、子程序的使用存在问题。
很多同学采用的不是调用指令LCALL,而是无条件转移指令LJMP,造成堆栈使用不平衡。
4、键盘键功能程序的设计及处理上有缺陷,由于考虑不周,造成程序在某个键功能程序中死循环。
此时按键盘上的其他键均无效,必须依靠复位操作来拜托死循环