当前位置:文档之家› 基于IAP15F2K61S2单片机的在线仿真功能的实现

基于IAP15F2K61S2单片机的在线仿真功能的实现

基于IAP15F2K61S2单片机的在线仿真功能的实现
基于IAP15F2K61S2单片机的在线仿真功能的实现

基于IAP15F2K61S2单片机的在线仿真功能的实现

文/杜洋

有单片机初学者问了我这样一个问题:单片机真是个好东西,可以实现我的很多想法,就是在编程开发的时候太麻烦,每次改动都要重新编译、下载,再等待着问题的出现。仅调试一个参数就要花上几个小时的时间。对于我们这些没什么经验的编程菜鸟来说太麻烦了。我想单片机技术发展至今,应该有更便捷的开发工具吧。杜老师你平时是怎么开发单片机软件的?有什么秘诀传授一下呗!

我的回答是:当然有秘诀,那就是使用“仿真功能”。什么是仿真?它如何实现更快捷的开发呢?详见下文。

【什么是仿真】

什么是仿真?我们举一个汽车设计的例子来说明一下吧。大家一定在影视剧或电视广告中看过这样的镜头:在一个大大的厂房里,一辆崭新的小汽车正在以很高的速度撞向一面厚厚的水泥墙。坐在车上的两个人面不改色心不跳,一动不动地等待着死亡。他们为何如此冷静,因为“他们”是实验用的假人。说时迟那时快,汽车已经撞到了墙上,巨大的声响夹杂着飞溅的碎片充满了空间,汽车在撞击中破了相。旁边的几台高速摄像机记录下了这一切。这是一次真实的撞击实验,目的是为了得出这款车型在出现意外时,是否能保住人的小命。安装在假人身上的传感器所得出的数据,能帮助工程师们发现安全隐患,改进汽车的设计。可以说以上就是一次仿真,一辆真车和两个假人有计划地撞墙,模拟了真实车祸情况。仿真让实验变得可能,因为没有一个真人愿意坐在车里参与这场实验。当真实情况很难在开发时再现时,仿真就可以帮助开发者完成必要的实验。这就如同单片机开发中,我们在自己的实验板上去开发一款产品一样。当我们设计好了一个产品的功能,我们要在实验板上模拟用户的操作,看看操作是否正常,产品的反应速度和稳定性如何。这些都是在仿真——模仿用户使用的真实情况。

有朋友会问了:如果这就是仿真,那还有什么好讲的呢?嗯,如上所说的仿真只是广义上的仿真,凡是在实验室里用实验板或工程样机模拟用户使用的过程,都可以算是仿真。而还有一种狭义的仿真,就是下面要重点介绍的内容。再说回到汽车撞击的实验吧。后来呀,汽车公司的老板在办公室里坐不住了。因为每当从外面传来一声巨响,他就知道又有一辆新车被撞得稀巴烂,一阵痛苦涌上心头。虽然理性上明白,这是为了开发出更安全的汽车,可是感性上还是不喜欢这种烧钱的行为。人们常说利益推动科技进步,当老板的利益受损,自然就会有高科技问世。不久,工程师们用上了一种电脑仿真软件,它采用了虚拟现实的技术,只要在电脑上按几个钮,输入一些汽车的参数,一台虚拟的汽车就出现在屏幕上。这辆虚拟车能和真车一样撞击、飞溅,然后得出一大堆接近真实的数据。不仅能模拟真实的撞,还能歪着撞,倒着撞,飞起来撞,飞起来转体360度地撞。还能暂停时间,一步一步撞,或者只看撞击中某一秒的数据。这一技术完全超越了真实实验,撞击再也不用耗人耗时了,新车的开发速度也快了很多,大大降低了成本。

汽车公司的遭遇在单片机公司也同样发生着,各种仿真软件如雨后的水泡子般越来越多。有的直接在电脑上虚拟仿真,还有的用一种叫仿真器的东西,让实验板与电脑连接,给实验板或工程样机增加了单片机实物所不能达到的仿真功能。其中最重要的一个功能就是“单步运行”了。在仿真软件里,把单片机从上电开始以正常的速度一直运行下去的过程叫“全速运行”。相对的,如果单片机只运行程序中的某一条或几条程序就是单步运行了。在非仿真的情况下,单片机是不能单步运行的。那单步运行有什么用呢?呵呵,单步运行非常有用呀,

甚至可以说是一项单片机开发的重大进步,就如同录音带和MP3的区别一样。录音带在听歌的时候必须从头听到尾,如果想换歌就得花时间倒带,而且你也不能精准地倒到下一首歌的开始处。而MP3不是连续的线性存储,你可以随意换歌,还能把任意的一段反复听。在单片机的开发中,我们为了测试某个部分的功能,必然要从头运行,再跳过不必要部分才能达到。大把的时间浪漫在多余的劳动上面了,现在有了单步运行,你想到哪就到哪,你想反复运行某段程序也没问题。期间你还能修改大部分参数,不仅能模拟真实的运行,还能歪着运行,倒着运行,飞起来运行,飞起来转体360度地运行。好玩吧!?

而本文要介绍的是仅使用单片机的“片上传真”。片上仿真是基于单片机本身的仿真,也就是说只要一片单片机,不需要额外购买别的东西,就可以实现仿真。对于单片机爱好者来说,片上仿真是最高性价比的选择,你甚至不需要修改电路,用给单片机下载HEX文件的电路就能实现仿真。各大单片机公司都已开发出不同性能的支持片上仿真的单片机。其中STC 公司有一款性能很不错的片上仿真单片机——IAP15F2K61S2。下面我就给大家介绍一下片上仿真环境的建立,还有进入仿真界面的操作流程,最后以一个实例告诉大家如何进行仿真调试。这是一些非常简单的操作,只要按照本文的步骤操作,就一定能顺利学会。

带有仿真功能的单片机IAP15F2K61S2

【仿真电路连接】

建立单片机仿真环境,最主要的工作是设置软件的参数,而硬件电路的连接是很简单的事。如果你已经根据本书第一章的内容制作出了ISP下载线,并成功地给单片机写入了HEX文件。那么从某种意义上讲,你已经完成了单片机仿真的硬件电路连接。也就是说,单片机仿真电路与ISP下载电路是完全相同的。如果是这样,我为什么还要花时间来讲仿真电路的连接呢?因为虽然电路连接相同,但单片机不同了。所以我们不能使用STC12C5A60S2和STC12C4052AD来仿真,因为这两款芯片不带仿真功能。而唯一带仿真功能的单片机IAP15F2K61S2是最新发布的15系列单片机,它有着不相同的引脚定义。我们只要熟悉了它的新引脚定义,再来制作电路就不难了。

首先最明显的是引脚定义的不同,虽然IAP15F2K61S2也是40脚的单片机,但如果把它直接插在我们做好的ISP下载线里,你会发现单片机是不工作的。不仅IO接口不兼容,连VCC 电源输入的位置也不同。接下来是外部晶体的使用,IAP15F2K61S2单片机不需要接外部晶体,因为它的内部集成了一个高精度的时钟源,可以用软件设置成5~30MHz的时钟频率。这一改进对我们使用者的意义是:不论我们做何应用,都不需要外接晶体的电路了。只要连接VCC和GND,单片机就可以工作。再连接TXD和RXD,单片机就能ISP下载和仿真了。

可仿真单片机IAP15F2K61S2

下载/仿真电路原理图

【新建仿真环境】

硬件电路连接完毕后,下面开始步骤较多的软件设置,请大家一定按我的步骤仔细进行。

第1步:下载到STC-ISP V6.36软件,目前只有V6.36及以上版本支持仿真功能。

第2步:点击软件右侧的“KEIL关联设置”选项卡。仿真相关的操作都在这个选项卡里完成。

第3步:接着点击“添加MCU型号到Keil中”。这个操作效果是把STC芯片的仿真程序与KEIL软件绑定在一起,这样KEIL软件中的仿真功能才能操作STC单片机硬件。

第4步:在弹出的“浏览文件夹”窗口中找到KEIL软件的安装目录,并点击“确定”。(默认是在C:\Keil中)

第5步:点击“将IAP15F2K61S2设置为2.0版仿真芯片”,在此处可以仿真的芯片有两款:IAP15F2K61S2和IAP15L2K61S2,前一款是F表示5V电源电压的芯片,后一款是L表示3.3V 电源电压的芯片。我们以5V芯片为例。

第6步:按下第5步的按钮后,按键变灰,下方状态窗口出现“正在检测目标单片机…”。这个提示的意思是你需要给单片机重新上电了,和之前给单片机写入HEX文件的方法相同。此时在硬件上给单片机冷启动,即会出现下载程序的提示,最后显示下载完成。大家可能不明白了,不是要仿真吗,为什么还要下载程序呢?其实这次下载的是仿真所需要的仿真处理程序,而不是我们要运行的HEX程序文件。仿真处理程序的功能是接收KEIL软件通过串口发出的仿真指令,再用这个指令去操控单片机寄存器和IO接口什么的。由此可见仿真处理程序是必不可少的哦。

第7步:打开KEIL,打开你想要仿真的项目,我打开一个P1接口流水灯的程序,一会我们也以此为例详细讲解。

第8步:点击Target Options按键,或在菜单栏中点击ProjectàOptions for Target。

第9步:进入Options窗口后,点击Device选项卡。

第10步:在Database下拉列表中选择“STC MCU Database”项。选中后就会出现STC系列单片机的型号。

第11步:在左侧型号中选择“STC15F2K60S2”项。这里选的是系列型号,包括同系列的很多款单片机。

第12步:选择“Debug”选项卡。这里面都是与仿真相关的设置。

第13步:选中窗口右上方的项目。

第14步:在下拉列表中选择“STC Monitor-51 Driver”项。

第15步:选择好后,点击右侧的“Settings”按钮。

第16步:在弹出的窗口中可以设置仿真用串口通讯的串口号和波特率。串口号就选择单片机正在使用的串口。

第17步:在波特率下拉列表中选择115200或57600,这个部分涉及到仿真的稳定性。所以要根据你的经验来设置。如果你是第一次使用,可以多设置几个值看看,哪一个最稳定就用哪个。如果仿真时出现错误提示也可能与此有关。

第18步:设置完成后回到主界面。点击DebugàStart/Stop Debug Session或按键盘上的Ctrl+F5开始仿真。这个操作是开始或停止仿真的切换按钮。如果我们之前的设置都是正确的,单片机硬件也接通了电源,这时KEIL软件会切换到仿真界面。

第19步:点击仿真界面下的“Run”按钮或按键盘上的F5键就能全速运行程序了。如果一切正常,你将会在单片机硬件电路上看到8个LED顺序点亮,呈现流水灯效果。想复位单片机,可以按左边的“RST”按钮。

第20步:在全速仿真运行的状态下,点击“Stop”键停止仿真。

注意:如果在进入仿真界面或点击“Run”按钮后,出现如上图的提示窗口。则表示你之前的设置存在问题,或者是硬件电路的部分有异常。解决的办法是:首先把KEIL软件退回到正常编程状态,然后重新给单片机上电,再尝试进入仿真界面。如果还不行,则重新给单片机下载一次仿真处理程序。还不行的话就选择KEIL仿真设置里的其他波特率,再重复前面的尝试。最后实在没有办法的话就只能重启电脑试试了。

【流水灯程序仿真实例】

以上是仿真环境的建立和基本的仿真程序运行方法,下面我们就以流水灯的程序为例,讲一下仿真的过程与技巧吧。首先要做的是在单片机的P1接口上接8个LED灯,流水灯程序运行起来的时候,8个LED灯会按顺序亮起。因为LED在单片机所产生的电流不大,所以可以不加限流电阻器。接下来就是加载流水灯的程序,这个部分大家当然可以自己来写,并不复杂。但为了保证仿真时不会因为程序的问题而导致错误,我还是写了一个标准的流水灯程序。建议大家第一次仿真时,还是用我给出的标准程序来使用,当你熟悉了仿真之后,再仿真自己的程序,这样能避免不少问题和麻烦。

流水灯程序的硬件电路图

电路在面包板上连接的照片

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

程序名:P1组接口流水灯

编写人:杜洋

编写时间:2013 年4月11日

硬件支持:STC单片机

接口说明:P1接口接8个LED,灌电流

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

#include //单片机头文件

void DELAY_MS (unsigned int a){//延时程序

unsigned int i;

while( a-- != 0){

for(i = 0; i < 600; i++);

}

}

/*************************************************************************/ void main (void){

unsigned char a,i;

while(1){

a=1;//初始值

for(i = 0; i < 8; i++){//循环8次

P1 = ~a;//将a的值取反送入P1接口

a=a<<1;//a值左移

DELAY_MS(100);//延时

}

}

}

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

流水灯源程序

仿真调试界面介绍

仿真调试窗口介绍

打开流水灯的工程文件,进入仿真调试界面。这时可以看到界面中包含了很多大小不同的窗口,它们都是干什么的呢?这里我们只介绍最重要的3个窗口的应用吧。在界面右侧上方较大的窗口是汇编语言调试窗口,里面既有C语言(我们写的源程序),还有软件自动编译出的汇编语句。要知道,单片机是不能直接读懂C语言的,这对它来说实在太难了。所以KEIL 软件要先把C语言转成汇编语言,显示在汇编语言调试窗口上。在仿真的过程中,软件真正执行的是这些汇编的语言。而如果窗口中都是汇编的语言,我们调试人员又很难看出这些汇编语句与C语言源程序的对应关系。于是软件在这个窗口中先显示一行C语言,再在其下面显示这行C语言所转换成的汇编语言。在汇编语句的左侧有一个黄色的小箭头,这个被称为“程序运行指针”。它所指向的汇编程序行就是仿真软件正在执行仿真的那一行。大家从此可以看出每一行C语句都会转换出至少3行汇编语句。也就是说,要执行3步以上的汇编语句才能完成1行C语言的指令。了解这一点是非常重要的。

在汇编语言调试窗口的下面是C语言源程序调试窗口,我们的源程序就在此处供你参考。在窗口的左侧也有一个小黄箭头,与汇编语言调试窗口里的黄箭头对应。双击源程序中希望仿真的那行,就能让黄箭头跳到对应的位置,再点击单步运行,就会从这一行开始运行。值得注意的是,看到这个窗口的时候,大家一定会以为在调试的过程中只要改动源程序调试窗口里的内容,再点击运行,就会执行新的程序,但事实并不是这样的。源程序调试窗口只是给我们调试时考虑的,在这里修改是不能被更新仿真的。所以我们还需要退出仿真界面,在KEIL的编译界面下修改,再进入仿真界面仿真。虽然有点麻烦,但相比于把程序用ISP下载到单片机里调试可要方便得多。

在界面最左边的一个纵向的矩形窗口是寄存器调试窗口,这个部分显示的是单片机内部与运算有关的寄存器。包括R0到R7,PSW,加法器a等。在仿真调试的过程中,这些数据的值会随着程序的运行而改变。你可以观察这些数值是否如你意,同时还可以修改数值到你希望的状态,再运行程序,程序会按你设置的数值运行。非常方便。

仿真调试相关按钮

好了,现在就来仿真流水灯的程序看看吧。在仿真界面的左上角有一排按钮,它们是控制仿真的操作按钮。它们从左到右依次是“复位”“全速运行”“停止”“单步运行”“跳过子函数”“退出子函数”和“运行光标行”。这些按键就好像DVD播放机上的操作按键,可以正常播放、快放、慢放、单帧步进。仿真按钮就是DVD机的遥控器,你完全可以这样理解。“复位”按钮相当于DVD机上的归零键,即把播放的时间设置到00:00,也就是从头播放。按下后,仿真软件会把单片机复位,随后的运行就是从程序最初状态开始的。“全速运行”相当于DVD 机上的播放键,按下后程序会以正常的速度仿真,其效果和把HEX文件下载到单片机上运行的效果相同。“停止”按钮相当于DVD机上的停止键,无论程序运行到什么地方都要停下来。因为只有停止运行才能设置参数、修改源程序。“单步运行”就是DVD机上的单帧步进按键,可以一帧一帧地看画面,从而发现容易闪过的细节。点击“单步运行”,仿真软件只走一步,仅运行一行汇编程序。在你想知道程序在某处时到底发生了什么,单步运行是最好的查看方式。但假如程序很长很长,中间又有很多子程序,要走到想调试的某处并不容易。这时就要用到下面3个按钮。“跳过子函数”就是在当前的程序中不进入任何子函数的单步运行。例如现在调试流水灯程序,我们只希望看到灯流动时的几个关键点的状态,这样自然不需要进入延时函数。点击“跳过子函数”就不会进入延时函数,只在改变IO接口状态的主函数部分运行。要是不小心进入了延时函数怎么办?点击“退出子函数”按钮可以跳出当前的函数,回到上一级函数。如果当前在主函数里的话,这个按钮是灰的(不能点击)。如果你还是感觉不方便,那“运行光标行”按钮一定适合你。点击它可以跳到汇编语言光标所在的那一行,不论那一行离当前运行的行有多远,都会跳过去运行。与前几个按钮相比,“运行光标行”看上去像超人一样可以飞到任何地方,可是它并不会运行中间的程序部分,如果中间程序中有一些必须被运行的部分,那“运行光标行”将会错过这些程序而使寄存器的数值混乱。就好比你看一部电影,刚看完前3分钟,你就突然跳到40分钟处,而中间37分钟的剧情你全然不知。电影是线性的,单片机程序也是。所以在你没有把握的情况下尽量不要用“运行光标行”。仿真功能给调试带来许多方便,但也要谨慎使用仿真按钮,不要让程序失灵才是。

在流水灯的例子中,程序里的函数关系相对简单。只要一直点击“跳过子函数”按钮就可以避开延时函数的单步运行。每点击一次,你看发现在汇编调试窗口中的黄指针向下移动了一行,而每移动3行(某些程序行数更多)才完成1行C语句。在运行到“P1 = ~a;”这行时,你会看到在硬件电路中,第一个LED灯点亮了。然后跳过了延时程序,当再一次来到“P1 = ~a;”这行时,第二个LED灯点亮,第一个LED灯熄灭。在这个过程中,你能发现寄存器调试窗口中的数值在不断变化,那些值就是单片机真实运行时的参数。如果你足够认真,你会发现我们在C语言文件中定义的2个变量a和i是和寄存器R0~R7中的某2个对应的。也就是说,我们定义的变化,其实就是单片机寄存器上真实的寄存单元。如果你找到它们,并修改这些值,没错,接下来的运行效果就不同了。在不断点击下去,LED灯继续变化,直到一个循环结束和另一次循环的开始。熟悉了单步运行之后,再点击“全速运行”看看,那将是

一个与真实无异的单片机运行状态,LED以很快的速度流动着,好像一部正常速度播放的电影。

接下来,请把你之前学过、用过的程序,都用仿真的方法运行一次吧。你一定会遇到问题,不过没有关系,在不能运行或死机时,重新开始就行了。仿真不比真实,会有一些不确定的因素出现。把握它们,解决它们。

单片机课程设计报告实验报告

课程设计报告 学号: 1328403028 姓名:张帅华 班级: 13电子信息工程指导老师:邓晶 苏州大学电子信息学院 2016年4月

摘要 随着时代的进步和发展,单片机技术已经成为一种比较成熟的技术,普及到我们生活、工作、科研等各个领域。本次课程设计包含四个基于STC89C52单片机的设计,分别是:基于单总线数字式温度传感器DS18b20的数字温度计的设计;基于2K位串行CMOS 的EEPROM AT24C02的数字密码锁的设计;基于SPI接口实时时钟芯片DS1302的电子日历的设计以及基于无线收发芯片nrf24L01的简单无线通讯系统的设计。 关键词:单片机 DS18B20 AT24C02 DS1302 NRF24L01

目录 摘要 (1) 目录 (2) 第1章基于DS18B20的数字温度计设计 (3) 1.1 设计要求 (3) 1.2 系统组成 (3) 1.3 系统设计 (3) 1.3.1 硬件设计 (3) 1.3.2软件设计 (4) 1.4 设计结果 (6) 第2章基于AT24C02的电子密码锁设计 (7) 2.1 设计要求 (7) 2.2 系统组成 (7) 2.3 系统设计 (8) 2.3.1 硬件设计 (8) 2.3.2 软件设计 (9) 2.4 设计结果 (9) 第3章基于DS1302的电子日历的设计 (11) 3.1 系统功能 (11) 3.2 系统组成 (11) 3.3 系统设计 (11) 3.3.1 硬件设计 (11) 3.3.2 软件设计 (13) 3.4 设计结果 (14) 第4章基于NRF24L01的无线通信系统的设计 (15) 4.1 系统功能 (15) 4.2 系统组成 (15) 4.3 系统设计 (15) 4.3.1 硬件设计 (15) 4.3.2 软件设计 (16) 4.4 设计结果 (16) 总结 (17)

单片机原理及应用 设计报告

单片机设计报告 编写:HUBU2015级通信工程xmx 2017年5月23日 一、设计的目的与要求 利用8*8LED点阵动态显示汉字的字样。采用STC89C52单片机作为整个控制搭电路的核心,并编制软件程序,实现汉字的显示。通过此设计来巩固单片机硬件系统的设计及软件系统的编程,通过设计将平时所学知识付诸实践,提高动手能力。 1、设计一个8*8点阵LED电子显示屏。 2、要求在目测条件下LED显示屏各点亮度均匀、充足,可显示一个“大”字。 二、总体方案设计 2.1 硬件电路的总体设计 1、设计总体框图 硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。 2、工作原理 由于是8*8点阵屏设计,需要端口16个,可采用静态显示模式,用P0口控制行,P1口控制列,通过软件编程,即可实现汉字的显示。

3、元器件清单 2.2系统软件的设计 软件程序主要由开始、初始化、主程序、字库和延时子程序组成。 三、系统硬件电路的具体设计 3.1 时钟电路 STC89C52单片机内部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。STC89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。

内部时钟方式:利用其内部的振荡电路在X1和X2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4所示电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF 左右 3.2 复位电路 单片机在启动运行时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。本设计中采用按键复位电路,上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1选择10KΩ左右的电阻,电容器一般选择10μF。 3.3显示电路的设计 本次设计中采用8*8点阵LED显示器,简称LED点阵板或LED矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种。设计中用到的是“列共阳,行共阴”,即“列用高电平控制,行用低电平控制”。图中画

基于IAP15F2K61S2单片机的在线仿真功能的实现

文杜洋 有单片机初学者问了我这样一个问题:单片机真是个好东西,可以实现我地很多想法,就是在编程开发地时候太麻烦,每次改动都要重新编译、下载,再等待着问题地出现.仅调试一个参数就要花上几个小时地时间.对于我们这些没什么经验地编程菜鸟来说太麻烦了.我想单片机技术发展至今,应该有更便捷地开发工具吧.杜老师你平时是怎么开发单片机软件地?有什么秘诀传授一下呗!文档来自于网络搜索 我地回答是:当然有秘诀,那就是使用“仿真功能”.什么是仿真?它如何实现更快捷地开发呢?详见下文. 【什么是仿真】 什么是仿真?我们举一个汽车设计地例子来说明一下吧.大家一定在影视剧或电视广告中看过这样地镜头:在一个大大地厂房里,一辆崭新地小汽车正在以很高地速度撞向一面厚厚地水泥墙.坐在车上地两个人面不改色心不跳,一动不动地等待着死亡.他们为何如此冷静,因为“他们”是实验用地假人.说时迟那时快,汽车已经撞到了墙上,巨大地声响夹杂着飞溅地碎片充满了空间,汽车在撞击中破了相.旁边地几台高速摄像机记录下了这一切.这是一次真实地撞击实验,目地是为了得出这款车型在出现意外时,是否能保住人地小命.安装在假人身上地传感器所得出地数据,能帮助工程师们发现安全隐患,改进汽车地设计.可以说以上就是一次仿真,一辆真车和两个假人有计划地撞墙,模拟了真实车祸情况.仿真让实验变得可能,因为没有一个真人愿意坐在车里参与这场实验.当真实情况很难在开发时再现时,仿真就可以帮助开发者完成必要地实验.这就如同单片机开发中,我们在自己地实验板上去开发一款产品一样.当我们设计好了一个产品地功能,我们要在实验板上模拟用户地操作,看看操作是否正常,产品地反应速度和稳定性如何.这些都是在仿真——模仿用户使用地真实情况.文档来自于网络搜索 有朋友会问了:如果这就是仿真,那还有什么好讲地呢?嗯,如上所说地仿真只是广义上地仿真,凡是在实验室里用实验板或工程样机模拟用户使用地过程,都可以算是仿真.而还有一种狭义地仿真,就是下面要重点介绍地内容.再说回到汽车撞击地实验吧.后来呀,汽车公司地老板在办公室里坐不住了.因为每当从外面传来一声巨响,他就知道又有一辆新车被撞得稀巴烂,一阵痛苦涌上心头.虽然理性上明白,这是为了开发出更安全地汽车,可是感性上还是不喜欢这种烧钱地行为.人们常说利益推动科技进步,当老板地利益受损,自然就会有高科技问世.不久,工程师们用上了一种电脑仿真软件,它采用了虚拟现实地技术,只要在电脑上按几个钮,输入一些汽车地参数,一台虚拟地汽车就出现在屏幕上.这辆虚拟车能和真车一样撞击、飞溅,然后得出一大堆接近真实地数据.不仅能模拟真实地撞,还能歪着撞,倒着撞,飞起来撞,飞起来转体度地撞.还能暂停时间,一步一步撞,或者只看撞击中某一秒地数据.这一技术完全超越了真实实验,撞击再也不用耗人耗时了,新车地开发速度也快了很多,大大降低了成本.文档来自于网络搜索 汽车公司地遭遇在单片机公司也同样发生着,各种仿真软件如雨后地水泡子般越来越多.有地直接在电脑上虚拟仿真,还有地用一种叫仿真器地东西,让实验板与电脑连接,给实验板或工程样机增加了单片机实物所不能达到地仿真功能.其中最重要地一个功能就是“单步运行”了.在仿真软件里,把单片机从上电开始以正常地速度一直运行下去地过程叫“全速运行”.相对地,如果单片机只运行程序中地某一条或几条程序就是单步运行了.在非仿真地情况下,单片机是不能单步运行地.那单步运行有什么用呢?呵呵,单步运行非常有用呀,甚至可以说是一项单片机开发地重大进步,就如同录音带和地区别一样.录音带在听歌地时候必须从头听到尾,如果想换歌就得花时间倒带,而且你也不能精准地倒到下一首歌地开始处.而不是连续地线性存储,你可以随意换歌,还能把任意地一段反复听.在单片机地开发中,我们为了测试某个部分地功能,必然要从头运行,再跳过不必要部分才能达到.大把地时间浪漫

单片机课程设计51实验报告DOC

福建工程学院软件学院 题目:51开发洗衣机 班级:物联网工程1202 成员: 座号:04 28 指导老师: 日期:年月日课设报告

目录 1摘要 (1) 2.设计需求 (1) 2.1功能需求 (1) 2.1.1 基本功能 (1) 2.1.2扩展功能 (1) 2.2 设计要求 (2) 2.2.1 单片机芯片部件功能 (2) 2.2.2 LCD数码显示管部件功能 (2) 2.2.3 按键部件功能 (2) 2.2.4 蜂鸣器部件功能 (2) 3硬件设计及描述 (2) 3.1总体描述 (2) 3.2系统总体框图 (3) 3.3Proteus电路图 (3) 3.4各部分硬件介绍 (4) 3.4.1晶振Protues仿真 (4) 3.4.2LCDProtues仿真 (5) 3.4.3 按键Protues仿真 (5) 3.4.4上拉电阻Protues仿真 (6) 3.4.5C51芯片Protues仿真 (6) 3.4.6上电复位电路Protues仿真 (8) 3.4.7蜂鸣器Protues仿真 (9) 4 软件设计流程及描述 (10) 4.1程序流程图 (10) 4.2函数模块及功能 (10) 5功能实现 (11) 5.1程序烧入上电调试 (11) 5.2时间递增跳变 (12) 5.3比分更变 (13) 5.4比赛得分复位 (14) 5.5比赛时间复位 (14) 6 心得体会 (15) 7源程序代码: (16)

1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起

单片机原理及应用设计(胡辉主编)

第 第第 第6 66 6章 章章 章 单片机的定时器 单片机的定时器单片机的定时器 单片机的定时器/ // /计数器 计数器计数器 计数器 习题 习题习题 习题 1.MCS-51系列的8051单片机内有几个定时/计数器?每个定时/计数器有几种 工作方式?如何选择? 答:MCS-51系列的8051单片机内有2个定时/计数器,即T0和T1,每个都可以编程为定时器或计数器,T0有四种工作方式(方式0—13位、方式1—16位、方 式2-可自动装入初值的8位、方式3-两个8位),T1有三种工作方式(与T0相 同的前三种),通过对TMOD的设置选择,其高四位选择T1,低四位选择T0。2.如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少? 答:如果采用的晶振频率为3MHz,机器周期为12×1/(3*106)=4us,由于定时/ 计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256 所以,其最大定时时间分别是:方式0为8192×4us=32.768ms、方式1为65536 ×4us=262.144ms、方式2为256×4us=1024us。 3.定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少?答:由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数,CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为fosc,则其采样频率fosc/12,两次采样才能决定一次计数有效,所以计数频率不能超过fosc/24。 4.简单说明定时/计数器在不同工作模式下的特点。 答:方式0为13位的定时/计数器,由THx的8位和TLx的低5位构成、方式1 为16位的定时/计数器,由THx的8位和TLx的8位构成,方式2为8位的定时/ 计数器,TLx为加1计数器,THx为计数初值寄存器。方式3只能用于T0,是将 T0的低8位用作一个独立的定时/计数器,而高8位的TH0用作一个独立的定时

基于单片机仿真软件proteus的流水灯实验报告

《单片机原理》实验报告题目:流水灯设计 姓名:刘伟 学号:1042157110 专业:10计科特色班 院系:信息工程学院 指导老师:史先桂 完成时间:2014 年 4 月19日安徽新华学院教务处制

一、实验目的 1、熟练掌握单片机仿真软件proteus使用方法和注意事项。 2、了解简单单片机应用系统的设计方法。 3、帮助学生养成良好实验习惯。 二、实验内容 单片机仿真软件proteus上实现8个发光LED“流水”的现象,实现两个流水灯情况:1、先奇数灯亮,再偶数灯亮;2、实现流水灯从两边向中间亮,再从中间到两边亮。并通过编写程序控制流水现象。 三、实验说明 依照实验的硬件电路原理,在单片机仿真软件proteus上进行硬件电路的模拟,然后进行实验。在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”的现象。 四、实验环境 硬件:pc机;软件:单片机仿真软件proteus。 五、实验原理图 六、实验参考程序 #include #include void delay_ms(int n) //延时n毫秒 { int i,j; for(i=0;i

void main() { int i, num; unsigned char p1; unsigned char p0, p; while(1) { for(i=0; i<3; i++) //间隔500ms先奇数亮再偶数亮,循环三次 { P1=0xaa; P0=p1; delay_ms(500); P1=0x55; P0=p1; delay_ms(500); } p1= 0xfe; num=3; while(num-- > 0) //一个灯上下循环三? { for(i=0; i<8; i++) { P0=p1; delay_ms(100); p1=_cror_(p1,1); } } //两个分别从两边往中间流动三? p1= 0xfe; p0= 0x7f; num=3; while(num-- > 0) { for(i=0; i<4; i++) //让LED灯从两边向中间点亮 { p1=_crol_(p1,1); p0=_cror_(p0,1); p=p1&p0; delay_ms(100); P1=p;

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

单片机原理与应用技术实验报告(实验项目:发光二极管闪烁)

***数学计算机科学系实验报告 专业:计算机科学与技术班级:实验课程:单片机原理与应用技术姓名:学号:实验室:硬件实验室 同组同学: 实验时间:2013年3月20日指导教师签字:成绩: 实验项目:发光二极管闪烁 一实验目的和要求 1.使用单片机的P1.5口做输出口,使该位发光二极管闪烁。 2.掌握单片机使用。 二实验环境 PC机一台,实验仪器一套 三实验步骤及实验记录 1.在pc机上,打开Keil C。 2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。 3.选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存。 4. 在弹出的对话框中选择 CPU 厂商及型号。 5.选择好 Atmel 公司的 89c51 后 , 单击确定。 6.在接着出现的对话框中选择“是”。 7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。 8.保存新建的文件,单击SAVE。 9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。 10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。 11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。 12.在编辑框里输入代码如下: #include "reg51.h" //包含头文件 sbit led=P1^5; //表示用led等效于P1^5, P1^0就是指头文件里定义的P1寄存器的第5BIT #define uchar unsigned char #define uint unsigned int

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

PROTEUS单片机仿真软件介绍

Proteus--软件介绍 Proteus是由Labcenter Electronics开发的功能强大的单片机仿真软件,现在最新版本6.9 SP5,其演示版本可在其官方网站https://www.doczj.com/doc/663342144.html,下载。 Proteus与其他的仿真软件相比较,在下面的优点: 1.能仿真模拟电路、数字电路、数模混合电路; 2.能绘制原理图、PCB图; 3.几乎包括实际中所有使用的仪器 4.其最大的亮点在于能够对单片机进行实物级的仿真。从程序的编写,编译到调试,目标版的仿真一应俱全。支持汇编语言和C语言的编程。还可配合Keil C实现程序的联合调试,将Proteus中绘制的原理图作为实际中的目标板,而用Keil C集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试,即Proteus运行在一台计算机上,而Keil C运行在另一台计算机上,通过网络连接实现远程的调试。 Proteus原理图元器件库详细说明 当你在用Proteus的时候,你是否真的清楚它们的元件库呢?如果你不清楚的话,也许这个对你有点用!!PROTEUS原理图元器件库详细说明 Device.lib 包括电阻、电容、二极管、三极管和PCB的连接器符号 ACTIVE.LIB 包括虚拟仪器和有源器件 DIODE.LIB 包括二极管和整流桥 DISPLAY.LIB 包括LCD、LED BIPOLAR.LIB 包括三极管 FET.LIB 包括场效应管 ASIMMDLS.LIB 包括模拟元器件 VALVES .LIB 包括电子管 ANALOG.LIB 包括电源调节器、运放和数据采样IC CAPACITORS.LIB 包括电容 COMS.LIB 包括4000系列 ECL.LIB 包括ECL10000系列 MICRO.LIB 包括通用微处理器 OPAMP.LIB 包括运算放大器 RESISTORS.LIB 包括电阻 FAIRCHLD .LIB 包括FAIRCHLD 半导体公司的分立器件 LINTEC.LIB 包括LINTEC公司的运算放大器 NATDAC.LIB 包括国家半导体公司的数字采样器件 NATOA.LIB 包括国家半导体公司的运算放大器 TECOOR.LIB 包括TECOOR公司的SCR 和TRIAC TEXOAC.LIB 包括德州仪器公司的运算放大器和比较器 ZETEX .LIB 包括ZETEX 公司的分立器件 也许部分因版本回有所不同,这是PROTEUS 6.7的版本。 如何删除左边元件列表中的元件 点edit 中的Tidy可以删去所有你没用到的零件,但如果想只删其中指定的零件,似乎Proteus没有这个功能。

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

单片机原理及应用系统设计课后参考答案

0001 0001 0736 0361 JK3Q HDJ3 单片机课后部分参考答案 P59第三章 9、(A)=70H (R0)=58H (40H)=58H (58H)=70H 10、 12、(1) MOV R2,70H (2) MOV A, R1 MOV R2,A (3) MOV DPTR,#1234H MOVX A,@DPTR MOV 70H,A (4) MOV DPTR,#2000H MOV A,#00H MOVC A,@A+DPTR MOV R4,A (5) MOV DPTR,#2000H CLR A MOVC A,@A+DPTR MOV DPTR,#1234H MOVX @DPTR,A 13、XCH A,50H ;(A)=87H (50H)=35H PUSH 50H POP ACC ;(A)=35H MOV A,#12H ;(A)=12H XCHD A,@R1 ;(A)=15H (50H)=32H 15、MOV A,#34H MOV R0,#9AH ADD A,R0 MOV R3,A MOV A,#12H MOV R0,#78H ADDC A,R0 MOV R2,A 16、CLR C MOV A,#78H

MOV R1,#3FH SUBB A,R1 MOV R3,A MOV A,#56H MOV R1,#20H SUBB A,R1 MOV R2,A 17、(1)将(30H)+(31H)的和存于32H单元中,将进位CY存于33H单元中 (2)(30)=35H (31H)=50H (32H)=85H (A)=00H CY=0 (33H)=0 21、(A)=8FH (R0)=25H (25H)=60H P77 第五章 7、SETB EX0 SETB ET1 SETB ES SETB EA SETB PS 11、允许的中断源有:外部0中断、定时器T0中断、外部1中断、串行口中断 优先级(从高到低):外部0中断、串行口中断、定时器T0中断、外部1中断、定时 器T1中断 P87第六章 7、用定时器T1的工作方式1时,定时初值为: (M-X)×T=t (65536-X)×2×10-6=100×10-3 X=15536=3CB0H 8、晶振12MHZ ;选择T0为定时器,工作方式1;选择T1为计数器,工作方式2 T0定时初值X0=65536-10×10-3/10-6 =55536=0D8F0H (TH0)=0D8H (TL0)=0F0H T1计数初值X1=256-100=156=9CH (TH1)=(TL0)=9CH 程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INT ORG 0030H MAIN: SETB P1.1 MOV TMOD , #61H

单片机伟福和 Proteus ISIS仿真软件的使用

伟福和Proteus ISIS仿真软件的使用 第一部分 Proteus ISIS快速入门 一、简介 Proteus软件是一款强大的单片机仿真软件,对于单片机学习和开发帮助极大。 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和数字集成电路,包括单片机。在国内由广州的风标电子技术有限公司代理。 在单片机课程中我们主要利用它实现下列功能: 1、绘制硬件原理图,并设置元件参数。 2、仿真单片机及其程序以及外部接口电路,验证设计的可行性与合理性,为实际的硬件实验做好准备。 3、如有必要可以利用它来设计电路板。 总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,可以实现从构想到实际项目完成全部功能。 这里介绍Proteus ISIS软件的工作环境和一些基本操作,实现初学者入门。至于更加详细的使用,请参考软件的帮助文件和其他有关书籍,还可以到网上找到许多参考资料。 二、界面介绍 双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”,出现如图2-1所示屏幕,表明进入Proteus ISIS集成环境。 图2-1 Proteus ISIS集成环境 进入之后的界面类似如图2- 2 所示。 图中已经标注各个部分的作用,我们现在就使用软件提供的功能进行工作。

图2-2 ISIS主窗口 三、一个小项目的设计过程 1、建立新项目 启动软件之后,首先,新建一个项目: 点击菜单:File→New Design,如图2-3所示,即可出现如图2-4所示的对话框,以选择设计模板。一般选择A4图纸即可,点击OK,关闭对话框,完成设计图纸的模板选择, 出现一个空白的设计空间。 图2-3 新设计图2-4 选模板这时设计名称为UNTITLED (未命名),你可以点击菜单file→save design 来给设计命名。也可以在设计的过程中任何时候命名。 2、调入元件 在新设计窗口中,点击对象选择器上方的按钮P(如图2-5所示),即可进入元件拾取 对话框,如图2-6所示。

单片机课设实验报告

电气工程学院 单片机课程设计 实验报告 班级:电142 姓名: 学号:1412021061 设计题目:实时时钟系统设计 设计时间:2017.01.09~01.13 评定成绩: 评定教师:

摘要 人类为了观测时间,从远古的观太阳、革命时期的摆钟到现在电子钟,不断的在研究、创新纪录;随着科技、社会的快速发展,时间的流逝。美国DALLA S公司推出的具有涓细电流充电能的低功耗实时时钟芯片DS1302。电子万年历诞生了,它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V 的电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。低压工作,电压可选用3~5V电压供电。 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行;万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 关键词:时钟芯片DS1302,LCD液晶显示,单片机T89C52

目录 摘要 (2) 一、调试过程 (4) 二、运行效果 (6) 三、系统优化 (10) 四、设计总结 (11) 附录 (12)

一、调试过程 1、DS1302实时时钟部分进行调试,程序编完之后,点击编译,对程序进行编译,编译后,发现程序中出现了错误,无法编译通过,查看错误步骤,进行调试,发现是程序的格式错误,调节代码的格式通过编译,编译通过之后,进行软件的仿真实验,看看DS1302是否会生成实时时钟,将编译生成的hex文件导入AT89C51芯片中,之后进行运行,发现DS1302生成了实时时钟,证明这一部分编译成功。 2、LCD的显示部分进行调试,先对产生年月日时分秒之间的连接符进行显示,编译之前先选择自动生成hex文件,让后进行编译,编译完成后调节格式上的错误,直到编译通过后,进行软件上的仿真,仿真时发现,LCD显示上出现了错位现象,让后调节源程序,调节LCD的显示行列位置之后在进行重新编译,在软件上进行仿真,出现了想要的结果;连接符编译成功后,将时钟时间显示在LCD相应的位置上,时钟显示程序,在连接符显示程序基础上进行编译,不停地循环检测60H-66H单元的内容,将这些单元的内容送入到LCD上显示,编译通过之后,发现LCD的时钟显示不正确,通过连调,发现检测60-66单元内容时出错了,重新调节程序,进行编译,成功的出现了时钟的显示。 3、添加开关程序,开关程序添加完成后,编译成功,在软件上进行仿真时发现开关不起作用,按下开关DS1302的时钟继续运行,调节时钟数据,不起作用,通过连调发现,没有对60-66单元的收据进行保护,因此,将开关拨到设置模式时,DS1302时钟并未停止,继续进行计数,所以,将60-66单元送入20-26单元进行保护,当进入设置模式时,将数据进行保护,最后如果没有确认,则将20-26数据送出,如果改变了,则将60-66直接输出,将程序更改完成后,再次仿真达到了预期的效果,可以对时钟进行调节,可以暂停,重新调节时间。 仿真和实际硬件的实验还是有着不小的区别,在软件上进行仿真,所有的端口是自己连接的,因此可以选择不同的端口使用,而在硬件实验中,硬件实验上的一些连线已经自己确定了,必须采用该端口,因此在硬件调试时,需要改变端口的地址以用来符合硬件实验的标准,其次在软件仿真上没有出现问题,在硬件实验时可能有问题,在利用软件仿真时,LCD清屏不清屏,对于实验显示来说没有产生什么影响,然而转入硬件实验室,如果不进行LCD的清屏程序,那么由于

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

单片机原理及应用与C51程序设计(第三版)第2章作业

习题 1.MCS-51单片机由哪几个部分组成? 答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。 2.MCS-51的标志寄存器有多少位,各位的含义是什么? 答:MCS-51的标志寄存器PSW有8位; 6 5 D 4 D 3 2 1 0 C 0 R S1 R S0 V 含义如下: C(PSW.7):进位或借位标志位。 AC(PSW.6):辅助进位或借位可标志位。 F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。 RS1、RS0(PSW.4、PSW.3):寄存器组选择位。可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。 OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。 P(PSW.0):奇偶标志位。用于记录指令执行后累加器A中1的个数的奇偶性。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P 清零。 其中PSW.1未定义,可供用户使用。 3.在8051的存储器结构中,内部数据存储器可分为几个区域?各有什么特点? 答:片内数据存储器按功能可以分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。工作寄存器组区,00H~1FH单元,可用R0~R7等8个寄存器访问;位寻址区,20H~2FH单元,可按位方式访问;一般RAM区,30H~7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80H~FFH单元。 4.什么是堆栈?说明MCS-51单片机的堆栈处理过程。 答:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。 5.简述内部ROM的工作寄存器组情况,系统默认是第几组?

相关主题
文本预览
相关文档 最新文档