技术文档

单片机实验指导 单片机实验过程

小编 2024-10-14 技术文档 23 0

单片机实验过程

单片机综合训练Ⅰ实验指导书

目 录

一、 实验环境介绍 11、Keil集成开发环境介绍 1二、 实验内容 9实验一 练习使用集成调试软件 9实验二 简单输入输出 10实验三 定时器应用 11实验四 流水灯程序设计 13

一、实验环境介绍1、Keil集成开发环境介绍Keil集成开发环境是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编语言、PLM语言、C语言的程序设计,界面友好,易学易用。(1)建立工作文件夹在规定的盘符建立一个以自己学号命名的文件夹,作为工作文件夹,将日后实验所有的文件都存放在该文件夹中。(2)进入集成开发环境双击桌面图标,进入uVision4集成开发环境。

(3)新建工程选择菜单“porject—new uvision project”,弹出“Creat New Project”对话框;

在“保存在”下拉列表中选择自己的工作文件夹,在“文件名”文本框中键入工程名(不需要键入扩展名,扩展名默认为 .uv2),单击“保存”按钮,关闭“新建工程”对话框,弹出“为目标‘target 1’选择设备”对话框,选择目标芯片型号;

选择Atmel公司的89C52芯片,单击“确定”按钮,关闭对话框,新建一个工程。

(4)新建源程序选择菜单“File—New”新建源程序文件Text1

单击保存按钮,以.C后缀名保存改文件。

(5)将源程序添加到工程中右键单击“工程窗口”中的“Source Group 1”,在弹出的菜单中选择“增加文件到组”;(注:软件汉化有误)

弹出“增加文件到组”对话框;

选中欲添加的源程序,单击“Add”按钮,源程序添加到工程中。但是,该对话框并不关闭,等待用户继续添加其他程序。添加完毕后,单击“关闭”按钮,关闭对话框。“工程窗口”中,“Source Group 1”下将出现该源程序文件名。

若对同一个文件二次添加,则会弹出如下警告框。

(6)编译和连接单击“Rebuild all target files”按钮,对原程序进行编译和连接,构造结果将在“Build Output”窗口中显示。如果程序有语法错误,则会指出错误类型及所在行,修改后,重新构造,直至没有任何语法错误。

(7)开始调试单击“开始/停止调试”按钮,进入调试状态。

在调试状态下,“构造工具栏”变为“调试工具栏”。通过单步运行,查看寄存器、存储器的值,判断程序是否运行正确。若不正确,找出问题所在,单击“开始/停止调试”按钮,停止调试,进入编辑状态,修改程序,重新编译、调试。(8)查看寄存器进入调试状态后,“工程窗口”变为“寄存器窗口”,可以查看CPU各寄存器的值。(9)查看存储器单击“存储器窗口”按钮,打开存储器窗口;该窗口共有4个标签,可显示4个存储器的值。单击一个标签,在地址栏中输入要查看的存储器单元的类型及地址。片内数据存储器 I : [地址]片外数据存储器 X : [地址]程序存储器 C : [地址]若要人为修改某存储单元的值,可右键单击该单元,在弹出的菜单中选择“更新存储器”,在弹出的文本框中输入该单元的新值,单击“确定”即可。注:十六进制数前加“0x”。(10)单步运行在调试状态下,源程序的左边有一个黄色的箭头,指示当前程序执行的位置,即将要执行的一条指令。单击“单步”按钮,程序执行一条指令,黄色箭头下移一行。寄存器和存储器的值的变化显示在相应位置。执行过的指令左边用一绿色方块标记。(11)运行到光标行若想快速、连续执行若干条指令,可将光标定位在这些指令的最后一行处,单击“运行到光标行”按钮,即可。(12)全速运行对于有些程序,只有全速运行才能实现其功能,这时只需单击“运行”按钮;若要暂停运行,单击“暂停”按钮。(13)将源程序从工程中删除一个程序调试成功后,若要调试另一个程序,可不必新建工程,只需新建一个源程序,添加到原有的工程中,同时,将前一个源程序从工程中删除。在“工程窗口”中,单击要删除的源程序名,按“Delete”键,在弹出的对话框中选择“确定”即可。对于初学者,一般一个工程中只包含一个源程序,应将多余的源程序删除。

二、实验内容实验一练习使用集成调试软件1.实验目的(1)练习使用Keil集成调试软件;(2)进一步熟悉语言指令的功能。2.实验内容按照实验指导书的说明,结合附录中的例子,练习使用Keil集成调试软件,为以后的实验打下基础。3.实验器材计算机1台4.实验步骤(1)新建工程;(2)输入源程序;(3)将源程序添加到工程中;(4)编译和连接;(5)运行程序;(6)观察记录运行过程和结果。5.实验报告要求(1)列出源程序,并加以注释;(2)结构复杂的程序,画出流程图;(3)对实验过程和结果进行分析;(4)写出心得体会。

实验二简单输入输出1.实验目的(1)进一步理解I/O口的工作原理;(2)掌握输入/输出程序的设计方法2.实验内容编写程序,点亮发光二极管3.实验器材(1)计算机1台 (2)仿真器1台 (3)开发板一套4.硬件电路

5.试编写程序点亮开发板上的发光二极管6.思考与发挥(1)如何实现多个开关控制多个发光二极管? (2)如何实现8个发光二极管闪烁?

实验三定时器应用1.实验目的(1)进一步了解定时器的结构和工作原理;(2)掌握定时器的应用程序设计方法。2.实验内容编写定时程序,实现发光二级管D1的定时1s亮灭3.实验器材(1)计算机1台 (2)仿真器1台 (3)开发板1套4.硬件连线

5.实验程序

6.思考与发挥(1)如何改变亮灭的频率?(2)计数初值变大,亮灭频率将如何变化?

实验四流水灯程序设计1.实验目的初步掌握C51程序设计方法。2.实验内容编写程序,使D0-D8,8个LED呈现流水灯效果进行左移右移滚动3.实验器材(1)计算机1台 (2)仿真器1台 (3)开发板1套4.实验程序/**************************************************************************************

LED流水灯实验 * 1

实现现象:下载程序后LED呈现流水灯效果进行左移右移滚动注意事项:无***************************************************************************************/

#include “reg52.h” //此文件中定义了单片机的一些特殊功能寄存器#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;

#define led P2 //将P2口定义为led 后面就可以使用led代替P2口

/*******************************************************************************

函 数 名 : delay函数功能 : 延时函数,i=1时,大约延时10us*******************************************************************************/void delay(u16 i){while(i–);}

/*******************************************************************************

函 数 名 : main函数功能 : 主函数输 入 : 无输 出 : 无******************************************************************************/void main(){u8 i;led=0xfe;delay(50000); //大约延时450mswhile(1){/ for(i=0;i<8;i++){P2=~(0x01<<i); //将1右移i位,然后将结果取反赋值到P2口delay(50000); //大约延时450ms}*/for(i=0;i<7;i++) //将led左移一位{led=crol(led,1);delay(50000); //大约延时450ms}for(i=0;i<7;i++) //将led右移一位{led=cror(led,1);delay(50000); //大约延时450ms}}}本例中main是主函数名,要执行的主函数的内容称为主函数体,主函数体用大括号{ }括起来。函数体中包含若干条将被执行的程序语句,每条语句都必须以分号为结束符。5.思考与发挥(1)流水灯的间隔时间怎么确定?(2)流水灯的移动方向和顺序怎么确定?

从最简单的单片机实验开始做起,这么多脚的东西到底能干嘛?

今天我们用12C2052单片机来应用做实验,还有其他的一些材料

它的工作电压是3.5~5.5V,分工业级(l)和商业级(C)的产品,第20脚是电源正极(VCC),第10脚是电源地端(GND)。第19脚是单片机的一个l/O接口,名为P1.7。什么是l/O接口,l就是lN/OUT,写成中文就是输入/输出接口,这是单片机最基本的接口了,可以说是单片机就有l/O接口。那输入、输出的是什么东西呢?是电平。电平是一个相对的概念,简单地说1个电路里有1个公共地端(GND),如果还有1个5V的电源(VCC),则5V是高电平,公共地端是低电平。如果还有1个-5V,那么-5V和前两者比就是低电平。

“l/O接口可以输入、输出电平又是怎么回事呢?”输入的意思就是输入给单片机,让它知道我们输入的是高电平还是低电平,这样我们就可以控制它了。给它下载一个程序,让它在检测到我们输入高电平的时候做什么事儿,检测到低电平的时候做什么事儿,反过来输出也是一样,单片机可以自己输出高电平或是低电平。我们就可以写一个程序,让它在l/O接口上输出高、低电平去控制一些东西,或者我们读出它的高、低电平状态来观察它在干什么。

一个单片机上有好多个l/O接口,我们现在用的这款STC12C2052上就有15个l/O接口,还有32个、64个和更多的,以后我们会慢慢了解的。我们可以通过写一个程序,让单片机的某几个l/O接口作为输入,来接收我们的命令;再把另几个l/O接口作为输出,来控制我们要控制的东西。用到电源

比如我们在1个l/O接口上连接1个小开关,就假设这个l/O接口是P3.4吧(第8脚),开关的另一端接到5V电源(VCC)上。在另一个l/O接口上接1个小灯泡,假设是P1.7吧(第19脚),小灯泡另一端接在公共地端(GND)。写一个小程序告诉单片机,当我们接通开关时(P3.4与VCC短接)则接在P1.7上的小灯泡点亮(P1.7输出了高电平)。程序运行时,单片机就会不断地查检P3.4接口的电平状态,当P3.4接口输入为高电平时(开关接通),单片机就会以迅雷不及掩耳之速度输出高电平给P1.7接口,让小灯点亮。这就是单片机l/O接口的功能之所在。

将单片机固定在面包板上,单片机的第20脚接电源正极,第10脚接地(负极)

LED正极与单片机第20脚连接,负极与单片机第19脚连接

打开电源开关就会得到下面的效果

有的朋友就说,这样一个太简单了,就是会一闪一闪的没有创意,我们要循序渐进,先从简单的开始,后面我们一起看看往单片机里怎样下载程序,欢迎关注转发,!

相关问答

单片机 基础 实验 是做什么用的?

单片机基础实验是用来让学习者掌握单片机的基础原理、操作方法和编程技能的实践性课程。通过基础实验,学生可以了解单片机的工作原理、寻址方式、输入输出方式...

单片机 AD 实验 的,AD按键采集的原理是什么啊?

AD键盘的原理是通过采集点不同电压而执行不同的功能。当不同的按键被按下时,AD转换的电压不同,通过AD转换值便可以判断出是哪个按键被按下。AD键盘的原理是...

单片机实验 板可以做哪些实验,尽量具体一点?

这个问题相当于:大学物理实验课中学习使用分光镜观察干涉条纹,以后有什么用、可做什么工作?这类实验器具有发展前景么?(观察干涉条纹的实验,也是基...这个问...

单片机 应用与实训考什么?

单片机应用与实训考察的主要是学生对于单片机的原理和应用的掌握程度,以及对于实际工程问题的解决能力。在实训中,学生需要运用单片机编程、接口设计、电路连...

单片机 走马灯 实验 灯亮原理?

跑马灯可以用MCS-51单片机控制一个LED点阵来实现,一个简单的跑马灯,每一个小方格代表一个发光二极管,黑色代表相应位置的发光二极管被点亮,白色的空格表示未...

单片机实验 板上led灯不够亮,应该是程序的問題,可是该怎么改...

2、单片机工作电压设置问题(设低了呢?)3、这个IO口工作了么,有的默认是1点几V的不工作的话,你要上电就设置高电平或低电平有用(0)回复APP查看全部4条讨论...

单片机 秒表显示 实验 中,提高计时精度的方法有哪些?

单片机秒表显示实验中,提高计时精度的方法只有一个(因晶振频率误差也影响计时精度,但是不能调,所以,这不能算一个方法),就是调整定时器的计数的初始值。都...

怎么用 单片机 检测脉冲输入个数?

可以使用单片机的计数器功能来检测脉冲输入个数。具体步骤如下:1.将计数器输入引脚与脉冲信号输入引脚连接。2.将计数器清零,并开启计数器。3.每次脉冲信号...

单片机 的外部中断仿真 实验 。在 单片机 P1口上接有8只LED。在外部中断0输入引脚(P3.2)接一只按钮开关K1?

中断处理函数感觉有些问题,for循环之前使用P1=0x0f;然后将for内的P1=0x0f;改为P1=~P1;同时for循环中应该需要调用延时函数Delay(10);这里的值看你自...

如何 实验 单片机 时钟频率?

你直接编一个闪烁的程序。。。。把延时调到1秒。。。看看如果好使他不就是间隔1秒亮一次#include你直接编一个闪烁的程序。。。。把延时调到1秒。。。看看如...

猜你喜欢