单片机实验过程
单片机综合训练Ⅰ实验指导书
目 录
一、 实验环境介绍 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)流水灯的移动方向和顺序怎么确定?单片机怎么学?小白怎么快速学会单片机
单片机怎么学?小白怎么快速学会单片机不管是学习什么,都要抱着强大的求知欲。就像前不久也有几个同学问到我——如何快速学习单片机?针对这个问题,小编还是先来聊聊单片机的学习基础有哪些?也就是掌握单片机的技能包含什么:
1、熟悉单片机的结构和原理;
2、学好数电,模电,为设计电路打好基础;
3、熟练使用C语言,多学习别人的程序;
4、对操作系统原理有一定的了解;
5、Protel至少要有点基础;
6、要实际动手调试电路的能力。
一、学习单片机的步骤
当前的单片机种类繁多,但是 51 是最基础的,因此想学单片机的同学最好也是从 51 开始,不仅容易上手,而且相当实用。然而 51 单片机毕竟过于基础,后来的很多单片机在功能和应用上都有很大的扩展,因此按照多数人的路线接下来大多数人会学习 AVR 单片机, AVR 单片机在功能上较 51 有很大提升,集成了 A/D 、快速 PWM 等很多实用的功能,而且和很多大型的单片机在功能上有很多类似之处,因此如果以后还想掌握其他单片机 AVR 无疑是一个很好的跳板。
二、单片机学习的过程
如何快速学习单片机?学习单片机最终要的是当然是练,实战经验必不可少,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。
现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一种说法称之为先实践后理论的学习方法。
因此我的观点如下,单片机的硬件结构首先要有一个基本的了解,最起码要知道各引脚的功能、区别,能自己动手搭一个单片机的最小系统,然后就可以直接从程序入手,程序最好还是用 C 语言编程,从简单的×××灯做起,逐渐深入,陆续可以做一些数码管、液晶、 DS1302 、 DS18B20 等电子元器件的应用,在深入就可以结合一些具体实例扩展一些中断、串口通讯等功能。还有一点要声明的是单片机里用到的 C 语言其实很有限,课堂上学习 C++ 的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉得自己的 C 语言基础不是很好而对单片机望而止步!我们华维单片机编程也录制了一套单片机c语言的入门教程,非常适合新手,
私信领取教程
这套本来是为零基础的学员录制的,后面感觉这块教程已经泛滥,干脆分享出来了。
最后祝大家学有所成!
相关问答
单片机 数字钟毕业中期检查表中的一个问题 - 沈禾欣子 的回答...你问什么问题??淮安信息职5261业技术学院综合毕业实践说明4102书(论文1653)2009-2010学年系专业摘要:数字电子时钟电路设计系统,以AT89C51单片机为...
传感器给 单片机 的都是什么信号,是数字信号还是模拟信号?需不需要AD转换?求指教?把模拟信号传感器接入单片机:单片机自身带有A/D通道,那么直接把传感器模拟信号接入即可,前提是信号电压的范围要合适,如果信号过于微弱还要增加前置放大...
自己怎么制作蜂鸣器?如果声音质量要求不高,比如市面上那种生日贺卡发出的蜂鸣声,只有音高变化即可的话,用单片机就行了,把乐谱写成数组,写程序按照乐谱输出对应音高频率的方波给...
用手机在哪里下载刚勾ADC软件-ZOL问答模数转换器作用是将模拟信号转换为数字信号,比如你现在想用单片机录制一段声音,声音是模拟信号,单片机只能处理数字信号,这是你就需要模数转换器了。现实中绝大...
单片机 系统中一个标着J1的器件,只有两个引脚,请问是什么元器...J1录制的视频为什么右声道没有声音只有电流声~~~~663浏览1回答尼康(Nikon)J1(10mm/2.8)和尼康(Nikon)J1(VR10-30/...
有初学者学习python实用的编辑器吗?最近看到学习群里面的小伙伴,对于PythonIDE都比较纠结,希望找到一些适合自己的、Python开发工具。小编向企业级大佬请教之后,给大家分享几款Python开发工具,...
一个不是很了解CS(计算机科学)的人,该从哪里开始自学CS?.算法,是技术类岗位必考的内容,只能看书、刷题慢慢积累了。CS技术更新迭代快,要保持不断学习,避免被时代淘汰。我最近在做Code.org的少儿编程教育视频(h...
单片机 复位电路中电容和电阻的作用分别是什么?-ZOL问答晶振电路在单片机内部有相应的电路,电路里一定会有电源的。让复位端电平与电源...头条小视频中电子琴弹奏清晰的音频信号是如何录制的?1367浏览5回答京东方...
语音识别技术如何入门?作为硬件工程师,有做过智能语音音箱方面的相关经历和语音识别的硬件测试,下面我来分析一下。语音识别技术的实现,主要三部分:1.硬件部分硬件的实现主要是...