单片机原理及应用B_实验指导
单片机原理与应用实验教案

《单片机原理及应用》实验教学大纲课程编号:B04611016课程类别:专业课实验学时:16学时学分:2.5适用专业:计算机科学与技术一、实验教学目的和任务本课程是计算机及应用专业一门重要的专业课。
其教学内容直接面向生产。
同时,微机向小型化、超小型化方面发展愈来愈迅猛。
单片机应用已渗透社会各个领域,特别在通信技术中的应用,大大提高了通信技术水平。
学生应具备这方面的知识与技能,为今后参加工作,打下坚实的基础。
二、实验教学基本要求本课程是一门很注重实践的课程。
以研究MCS-51系列单片机入手,掌握其硬件结构、指令系统和程序设计,以及常用接口技术和典型应用实例。
三、实验教学内容实验项目一:清零程序1、实验目的及要求要求学生掌握软件的结构和键盘的调试。
2、实验内容及学时分配(2学时)(1)了解MCS-51软件的构造(2)掌握清零程序的输入方法(3)了解起始伪指令的输入方法实验项目二:拼字和拆字程序1、实验目的及要求要求学生掌握存储器分配和汇编语言的简单应用。
2、实验内容及学时分配(2学时)(1)进一步掌握MCS-51软件的基本使用方法(2)掌握指令的寻址方式(3)掌握数据传送指令和地址内容的分配实验项目三:数据区传送子程序1、实验目的及要求要求学生掌握RAM数据存储器实际操作。
2、实验内容及学时分配(2学时)(1)掌握MCS-51逻辑运算指令和位操作指令(2)进一步掌握数据传送子程序的简单方法(3)掌握查表程序的编写实验项目四:数据排序实验1、实验目的及要求要求学生掌握汇编语言的应用和实际操作。
2、实验内容及学时分配(2学时)(1)掌握MCS51逻辑运算指令和位操作指令(2)进一步掌握简单顺序程序的编写和调试方法(3)掌握查表程序的编写实验项目五:查找相同个数1、实验目的及要求熟悉汇编语言程序,使用环移指令和加1指令。
2、实验内容及学时分配(2学时)(1)掌握赋值指令(2)掌握带进位的环移指令和加1程序的编写实验项目六:双字节无符号数的乘法实验1、实验目的及要求要求学生掌握MCS-51汇编语言设计和调试方法。
《单片机原理及应用》软件开发工具Keil与虚拟仿真平台Proteus的使用实验一

《单片机原理及应用》软件开发工具Keil与虚拟仿真平台Proteus的使用实验实验目的(1)了解Keil和Proteus软件的基本特点和功能。
(2)学会使用Keil软件进行单片机中断应用和定时器/计数器应用的编程。
(3)学会使用Proteus软件进行单片机中断应用和定时器/计数器应用的原理图的绘制和程序实现。
(4)学会使用Keil和Proteus两种软件的联调。
实验指导一、Keil C51的使用1.创建项目编写一个新的应用程序前,首先要建立项目(Project)。
(1)在编辑界面下,单击菜单栏中的[Project],出现下拉菜单,再点击选择中的“New Project”。
(2)单击“New Project…”选项后,就会弹出“Create New Project”窗口。
在“文件名(N)”中输入一个项目的名称,保存后的文件扩展名为“.uvx”,即项目文件的扩展名,以后可直接单击此文件就可打开先前建立的项目。
在“文件名(N)”窗口中输入新建项目文件的名字后,在“保存在(I)”下拉框中选择项目的保存目录,单击“保存(S)”即可。
(3)选择单片机,单击“保存(S)”后,会弹出“Select Device for Target”(选择单片机)窗口,按照提示选择相应的单片机。
搜索“AT89C52”并选择。
(4)单击“确定”按钮后,会出现对话框。
如果需要复制启动代码到新建的项目,选择单击“是”。
如选择单击“否”,启动代码项“STARTUP. A51”不会出现,这时新的项目已经创建完毕。
2.新建文件新的项目文件创建完成后,就需要将用户源程序文件添加到这个项目中,添加用户程序文件通常有两种方式:一种是新建文件,另一种是添加已创建的文件。
(1)单击快捷按钮,这时会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源代码。
(2)单击中快捷按钮,保存用户程序文件,这时会弹出窗口“Save As”的对话框,在“保存在(I)”下拉框中选择新文件的保存目录,这样就将这个新文件与刚才建立的项目保存在同一个文件夹下,然后在“文件名(N)”窗口中输入新建文件的名字,如果使用C51语言编程,则文件名的扩展名应为“.c”。
单片机原理及应用电子版教材

LED彩灯控制
通过单片机控制RGB LED的颜色和亮度,实 现彩灯的色彩变换和动态效果。
键盘输入控制设计实例
矩阵键盘输入控制
通过单片机扫描矩阵键盘,识别按键输入并执行相应操作。
独立按键输入控制
利用单片机检测独立按键的状态,实现按键输入控制。
编码器输入控制
通过单片机读取旋转编码器或按键编码器的输出信号,实现输入 控制。
串行通信编程
通过编程实现串行通信数据的发送和接收, 包括数据格式设置、波特率设置、数据校验 等。
05
单片机应用实例分析
LED显示控制设计实例
LED点阵显示控制
通过单片机控制LED点阵的亮灭,实现文字 、数字或图形的动态显示。
LED数码管显示控制
利用单片机输出数字信号,驱动LED数码管 显示数字或字母。
步进电机驱动控制
利用单片机产生步进电机所需的驱动信号, 实现电机的精确角度转动和定位。
直流电机驱动控制
通过单片机输出PWM信号,调节直流电机 的转速和方向。
交流电机驱动控制
通过单片机控制交流电机的变频器或软启动 器,实现电机的平稳启动和调速。
06
单片机实验与课程设计指导
实验一:闪烁LED灯实验
实验目的:掌握单片机I/O口的
单片机原理及应用电子版教 材
• 单片机概述 • 单片机基本原理 • 单片机编程语言与开发工具 • 单片机外围电路与接口技术
• 单片机应用实例分析 • 单片机实验与课程设计指导
01
单片机概述
单片机定义与发展
定义
单片机(Microcontroller Unit,MCU)是一种集成电路芯 片,采用超大规模集成电路技术将中央处理器(CPU)、存 储器、输入输出接口等计算机主要部件集成在一块芯片上, 构成一个完整的微型计算机。
单片机原理及应用实验报告

《单片机原理及应用》实验报告姓名:学号:班级:应用物理指导教师:日期:实验1 计数显示器一、实验目的熟悉51单片机的基本输入输出应用,掌握Proteus模块的原理图绘图方法及单片机系统仿真运行方法二、实验原理由共阴极数码管LED1和LED2、P0口、P2口,上拉电阻RP1及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输入电路,该电路在编程软件的配合下,可实现计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制数形式显示出来;当显示值达到99后可自动从1开始,无限循环。
三、实验内容(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能(2)学会选择元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)验证计数显示器的功能四、实验要求提交实验报告并包括如下内容:电路原理图、电路原理分析、仿真运行截图及实验小结1.实验原理图2.仿真运行截图3.实验小结通过这次实验让我认识了kell和proteus软件的基本功能,学会了用kell编写程序用proteus仿真运行。
在这次实验中同时也遇到了很多问题。
比如因为第一次使用这两个软件对界面还不太熟悉,浪费了很多的时间也产生了很多错误,但之后与同学们的交流过程中,慢慢的对这两个软件有了更深入的了解,在后期仿真的时候才能得心应手的处理问题。
这个计数显示器的实验让我进一步了解了单片机与数码管的魅力,看到了电子元件的神奇之处,只要按动按键就能让数码管的数字逐次加一,这大大激发了我的学习单片机兴趣,这次实验也会成为我以后学习单片机的奠基石,因为它打开了我认识单片机的大门,让我认识到了单片机的魅力,并让我沉浸其中。
实验2 指示灯开关控制器一、实验目的学习51单片机I/O口基本输入输出功能,掌握汇编语言的编程与调试方法。
二、实验原理输入电路由外接在P1口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
《单片机系统设计技术》实验指导

《单片机系统设计技术》实验指导书适用专业: 电气、自动化、信息等编写单位: 电气信息学院编写人: 曹 林审核人:审批人:批准时间:年月日目 录实验1 IO控制LED流水灯实验 (3)实验2 IO控制数码管动态扫描实验 (5)实验3 外部中断实验 (8)实验4 定时器应用控制实验 (10)实验5 UART实验 (12)实验6 键盘扫描输入编程 (14)实验7 UART与PC对话实验 (17)实验8 ADC数据采集实验 (19)实验1 IO控制LED流水灯实验1.实验目的1)、熟悉KEIL编程环境和调试环境。
2)、掌握单片机汇编语言和指令的用法。
3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。
2.实验设备硬件: PC 机,单片机教学实验开发平台;软件: KEIL集成开发环境、STC ISP程序下载软件。
3.实验内容使用P0口控制8个LED 进行流水灯显示。
4.实验预习要求和实验准备要求预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。
预习汇编程序编写、MCS-51指令表。
带上教科书、U盘、具备二进制和十六进制转换的科学计算器。
5.实验原理和步骤1)实验原理(1)实验原理图图1 P0口连接的8盏LED灯从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。
因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。
图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、PORT0_1……PORT0_7。
2)实验步骤(1)启动KEIL集成开发环境,按照《KEIL使用方法》中描述步骤进行工程建立、汇编源程序文件添加。
《单片机原理与应用》课程标准

《单片机原理与应用》课程标准一、课程基本信息课程名称:单片机原理与应用课程时长:32学时课程对象:电子工程、自动化等专业的大三学生二、课程目标1. 掌握单片机的基本原理和概念;2. 了解单片机的应用领域和发展趋势;3. 掌握单片机编程语言和开发工具;4. 能够独立完成单片机系统的设计、调试和测试;5. 具备团队协作和沟通能力。
三、课程内容与安排1. 单片机基础知识(XX学时)a. 单片机的定义和分类;b. 单片机的结构和工作原理;c. 单片机的编程语言和开发工具。
2. 嵌入式系统基础(XX学时)a. 嵌入式系统的概念和特点;b. 嵌入式系统的硬件和软件;c. 嵌入式系统的应用领域和发展趋势。
3. 单片机应用实例(XX学时)a. 温度控制系统的设计与实现;b. LED显示系统的设计与实现;c. 电机控制系统的设计与实现。
4. 单片机开发工具(XX学时)a. Keil软件的使用;b. IAR软件的使用;c. J-Link调试器的使用。
5. 实验与实践(XX学时)a. 单片机实验箱的使用;b. 单片机应用系统的调试与测试;c. 小组项目实践。
四、教学方法与手段1. 采用案例教学,通过实例讲解单片机原理和应用;2. 运用多媒体教学,通过动画演示单片机的工作原理;3. 组织小组讨论,鼓励学生自主学习和探究;4. 定期进行实践操作,提高学生动手能力和问题解决能力。
五、课程考核方式1. 平时成绩(40%):包括出勤率、课堂表现、实验报告等;2. 终结性考核(60%):包括笔试和实践操作,考察学生对单片机原理、应用及开发工具的掌握情况。
六、教学资源与参考文献1. 教学PPT、实验指导书等教学资源;2. 相关教材和参考书籍:《单片机原理与应用》、《嵌入式系统开发》等;3. 网络资源:单片机相关论坛、技术博客、视频教程等。
4. 参考文献:相关学术论文、技术报告等。
七、课程总结与展望通过本课程的学习,学生应该能够掌握单片机的基本原理和应用,具备独立设计和调试单片机系统的能力。
单片机实验指导书

单片机实验指导书第一章实验概述本实验指导书旨在帮助学生掌握单片机基本原理和应用技巧。
通过实验的学习,学生将了解单片机的内部结构,学习单片机的编程方法,并能够用单片机实现简单的控制功能。
第二章实验准备2.1 实验器材准备本实验需要准备以下器材:- 单片机开发板- USB线- 电脑2.2 软件安装在开始实验之前,需要安装以下软件:- Keil C51开发环境- STC单片机系列驱动程序第三章实验步骤3.1 硬件连接将单片机开发板通过USB线连接到电脑上,并确保连接正常。
3.2 软件设置打开Keil C51开发环境,点击菜单栏中的“文件”选项,选择“新建”创建新的工程。
设置工程的名称和保存位置,确定后点击“保存”。
3.3 编写程序在Keil C51开发环境中,编写单片机程序。
首先需要包含相应的头文件,然后编写具体的程序逻辑,实现所需的功能。
3.4 编译和烧录程序在编写完程序后,点击菜单栏中的“编译”选项进行编译。
编译成功后,点击菜单栏中的“下载”选项将程序烧录到单片机开发板中。
3.5 实验验证将程序烧录完毕后,将开发板与外部模块连接,观察实验现象是否符合预期。
第四章实验注意事项4.1 安全注意事项在实验过程中,要注意使用安全电压和电流,避免短路和电击风险。
4.2 实验环境实验需要在安静、整洁的环境中进行,以避免干扰和误操作。
4.3 调试和故障排除如果遇到实验效果不理想或者出现故障的情况,可以参考开发板的说明书进行故障排查和调试。
第五章实验总结通过本次实验,我深入了解了单片机的基本原理和应用技巧。
通过编写程序并实际观察实验现象,我成功掌握了单片机编程的方法和技巧,并能够用单片机实现简单的控制功能。
本次实验还让我意识到了实验中的安全注意事项和环境要求的重要性。
在实验过程中,我严格遵守了安全规定,并在安静整洁的环境中进行操作,确保实验顺利进行。
通过反复实践和调试,我不断提高了自己的实验技巧和问题排查能力。
在遇到故障时,我能够通过检查并参考说明书,准确地找到并解决问题。
“单片机原理及应用”课程教学改革探讨

“单片机原理及应用”课程教学改革探讨目录一、内容简述 (2)二、当前教学现状分析 (3)1. 教学内容与实际需求脱节 (4)2. 教学方法单一,学生学习兴趣不足 (5)3. 实践环节薄弱,学生动手能力不强 (6)三、教学改革思路与目标 (7)1. 明确教学目标,优化课程体系结构 (8)2. 改进教学方法,提高教学质量 (9)3. 强化实践教学,培养学生的工程实践能力 (10)四、教学改革实施策略 (11)1. 更新教学内容,紧跟时代步伐 (12)2. 创新教学方法,激发学生的学习兴趣 (13)3. 加强实践教学,提升学生的动手能力 (14)五、教学改革效果评估与反思 (15)1. 教学质量评估方法与标准 (16)2. 学生反馈与评价 (18)3. 教学改革的持续改进与优化 (19)六、结论与展望 (20)1. 总结教学改革成果与经验 (21)2. 展望未来发展趋势与挑战 (22)一、内容简述在当今电子科技日新月异的时代背景下,“单片机原理及应用”作为电子工程及相关专业的核心课程,其重要性不言而喻。
本课程旨在通过对单片机的基础理论知识的深入讲解,配合丰富的实践应用案例分析,培养学生掌握单片机的设计原理、编程技巧以及在实际工程项目中的应用能力。
课程内容的安排遵循由浅入深的原则,首先从单片机的基础硬件结构入手,逐步介绍其工作原理、指令系统等核心概念。
过渡到编程语言的讲解,重点培养学生的C语言编程能力和调试技能。
课程还深入探讨了单片机应用系统的设计方法,包括系统需求分析、硬件选型、软件架构设计等,旨在提升学生的综合系统设计能力。
为了增强课程的实用性和针对性,本课程引入了多个实际的应用案例,涵盖智能家居、工业自动化控制、传感器应用等多个领域。
通过这些案例的学习与实践,学生不仅能够巩固理论知识,还能够培养解决实际问题的能力,为未来的职业生涯打下坚实的基础。
“单片机原理及应用”课程的教学改革应当紧密围绕提升学生的实践能力和创新能力展开,通过精心设计的教学内容和多样化的教学方法,激发学生的学习兴趣,培养他们的工程实践素养,从而更好地适应快速发展的电子科技行业对人才培养的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电学院 计算机系 嵌入式系统教研室
}
void main(void) {
while(1) { P1.0 = 0 ; delay( ); P1.0 = 1 ; delay( ); }
}
♦ 流水灯控制的参考程序见程序清单 1.2 程序清单 L1.2 ------- 流水灯控制参考程序
/********************************************************************/
② 启动 Keil C51 集成开发工具建立一个工程。 ③ 输入、建立一个新的用户设计文件,添加到项目中,并保存。 ④ 编译、链接、调试运行。
6. 思考
1) P1 口的各位可以用作接入按键吗? 2) 高级语言 C51 编程“时延程序”定时准确吗?那用汇编语言呢? 3) 如何调整闪烁频率和流水灯速度?
5
西安邮电学院 计算机系 ① 连接 MCS-51 单片机学习实验系统。 ② 启动 Keil C51 集成开发工具建立一个工程。 ③ 输入、建立一个新的用户设计文件,添加到项目中,并保存。 ④ 编译、链接、调试运行。
6. 思考
1) 显示的真值可以直接送显示吗?为什么? 2) 如何调整动态显示刷新频率?频率过低会怎样? 3) 试分析动态显示刷新频率的选参要兼顾的因素。
/*延时*/ void delay(void) {
unsigned int m; for(m=20;m>0;m--) ; }
void main(void) {
unsigned char disp_d,disp_c,data_d; unsigned char k;
while(1) {
7
西安邮电学院 计算机系 嵌入式系统教研室 for(i=1;i<7;i++) {
unsigned int m; for(m=20;m>0;m--) ; }
void main(void) {
while(1) {
6
西安邮电学院 计算机系 嵌入式系统教研室
for(i=0;i<6;i++) {
*port_duan=duan[i]; *port_wei=wei[i]; delay(); } } }
♦ 压缩 BCD 码显示缓冲区----动态扫描显示试验的参考程序见程序清单 2.2
程序清单 L2.2 ------ 压缩 BCD 码显示缓冲区---动态扫描显示参考程序
/****************************************************************************/
unsigned char xdata *port_wei=0xffdd;
unsigned char xdata *port_duan=0xffdc;
unsigned char data_buf[] = {0x56,0xcd,0x45}; unsigned char *data_ptr;
/* define the display data LED[6:1] */
unsigned int m; for(m=20;m>0;m--) ; }
void main(void) {
while(1) {
lamp = 0xfe; for ( i=0; i<=7; i++ ) {
P1 = lamp ; delay(); lamp = lamp <<1; } } }
4
西安邮电学院 计算机系 嵌入式系统教研室
k = (i-1)/2; data_d = data_buf[k]; if ((i-1) % 2 == 0)
{data_d &= 0xf0; data_d >>= 4;} else {data_d &= 0x0f;} disp_d = duan[data_d]; disp_c = duan[i]; *port_duan = disp_d; *port_wei = wei[i-1]; delay(); } } }
8
西安邮电学院 计算机系 嵌入式系统教研室
实验 3 《 MCS51----电子钟 》
1. 实验目的
z 学习 MCS51 中断控制编程; z 学习 MCS51 定时器资源的使用; z 学习 C51 程序设计中断服务程序; z 学习系统设计方法。
2. 实验设备
z 硬件:PC 机 一台;MCS-51 单片机学习实验系统; z 软件:Keil C51 集成开发环境
实验 2 《MCS51 端口的驱动试验 2》
1. 实验目的
z 学习 C51 程序设计,学习 MCS51 端口的简单驱动。 z 译码算法编程; z 学习扫描显示程序设计。
2. 实验设备
z 硬件:PC 机 一台;MCS-51 单片机学习实验系统; z 软件:Keil C51 集成开发环境
3. 实验内容
1) 熟悉 MCS-51 单片机学习实验系统相关硬件资源; 2) 学习 Keil C51 集成开发环境的使用; 3) 动态扫描显示硬件连接和软件驱动程序设计。动态扫描法,在 6 个数码管显示
/* Created by ZQL
*/
/* Data 2008.7.17 AM
*/
/* 功能描述: 完成 data_buf 缓冲区数据显示
*/
/* 入口参数: data_buf ----- 待显示的压缩型 BCD 码
*/
/* 出口参数: 无
*/
/****************************************************************************/
单片及原理及应用 实验指导
嵌入式系统教研室
马博 赵全良
2008 年 12 月 30 日
西安邮电学院 计算机系 嵌入式系统教研室
目录
实验 1 实验 2 实验 3 实验 4
《MCS51 端口的驱动试验 1》 .............................................................................3 《MCS51 端口的驱动试验 2》 .............................................................................5 《 MCS51----电子钟 》 ........................................................................................9 《UART 资源试验(串口通信)》 ......................................................................14
7. 实验参考程序
♦ 单 LED 闪烁控制的参考程序见程序清单 1.1 程序清单 L1.1 ------- 单 LED 闪烁控制参考程序
/********************************************************************/
/* Create by ZQL 2008.7.15 am
3. 实验内容
1) 熟悉 MCS-51 单片机学习实验系统相关硬件资源; 2) 学习 Keil C51 集成开发环境的使用; 3) 制作:① 软件延时闪烁 LED;② 流水灯控制(选作)。
4. 实验预习要求
仔细阅读 MCS51 端口原理相关内容。
5. 实验步骤
① 连接 MCS-51 单片机学习实验系统,单灯闪试验:将 P1.0 连接到 LED,作为 LED 控制端;流水灯实验:将 P1 口的 8 位引脚分别连接到 8 个 LED。
3. 实验内容
使用 MCS51 定时器电路一实验箱现有数码管等资源,设计实现一个基本功能的电子 钟。基本要求:在 6 个数码管上分别显示 时:分:秒
7. 实验参考程序
♦ 简易动态扫描显示试验的参考程序见程序清单 2.1
程序清单 L2.1 ----- 简易动态扫描显示参考程序
/********************************************************************/
/* Create by ZQL 2008.7.15 am
*/
/* 功能:单 LED 闪烁控制参考程序
*/
/********************************************************************/
#include <reg52.h> /* 延时 */ void delay(void) {
unsigned int m; for( m=20; m>0; m-- ) ;
unsigned char data_buf[] = {0x12,0x34,0x56}; /* define the display data,no used in this Lib */
unsigned char *data_p;
/* no used in this Lib */
/* 延时 */ void delay(void) {
显示 8 9 A B C D E F
字形码 0x80 0x90 0x88 0x83 0xc6 0xa1 0x86 0x8e
♦ 显示端口物理地址: 字位端口地址:0xffdd --- 该端口是一个 8 比特的端口,每一比特对应一个数码管选中。 字形端口地址:0xffdc---该端口是一个 8 比特的端口,每一比特输出对应数码管的一
#include <reg52.h>
unsigned char i;