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

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

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

文杜洋

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

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

【什么是仿真】

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

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

汽车公司地遭遇在单片机公司也同样发生着,各种仿真软件如雨后地水泡子般越来越多.有地直接在电脑上虚拟仿真,还有地用一种叫仿真器地东西,让实验板与电脑连接,给实验板或工程样机增加了单片机实物所不能达到地仿真功能.其中最重要地一个功能就是“单步运行”了.在仿真软件里,把单片机从上电开始以正常地速度一直运行下去地过程叫“全速运行”.相对地,如果单片机只运行程序中地某一条或几条程序就是单步运行了.在非仿真地情况下,单片机是不能单步运行地.那单步运行有什么用呢?呵呵,单步运行非常有用呀,甚至可以说是一项单片机开发地重大进步,就如同录音带和地区别一样.录音带在听歌地时候必须从头听到尾,如果想换歌就得花时间倒带,而且你也不能精准地倒到下一首歌地开始处.而不是连续地线性存储,你可以随意换歌,还能把任意地一段反复听.在单片机地开发中,我们为了测试某个部分地功能,必然要从头运行,再跳过不必要部分才能达到.大把地时间浪漫

在多余地劳动上面了,现在有了单步运行,你想到哪就到哪,你想反复运行某段程序也没问题.期间你还能修改大部分参数,不仅能模拟真实地运行,还能歪着运行,倒着运行,飞起来运行,飞起来转体度地运行.好玩吧!?文档来自于网络搜索

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

带有仿真功能地单片机

【仿真电路连接】

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

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

可仿真单片机

下载仿真电路原理图

【新建仿真环境】

硬件电路连接完毕后,下面开始步骤较多地软件设置,请大家一定按我地步骤仔细进行. 第步:下载到软件,目前只有及以上版本支持仿真功能.

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

第步:接着点击“添加型号到中”.这个操作效果是把芯片地仿真程序与软件绑定在一起,这样软件中地仿真功能才能操作单片机硬件.文档来自于网络搜索

第步:在弹出地“浏览文件夹”窗口中找到软件地安装目录,并点击“确定”.(默认是在:\中)文档来自于网络搜索

第步:点击“将设置为版仿真芯片”,在此处可以仿真地芯片有两款:和,前一款是表示电源电压地芯片,后一款是表示电源电压地芯片.我们以芯片为例.文档来自于网络搜索

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

第步:打开,打开你想要仿真地项目,我打开一个接口流水灯地程序,一会我们也以此为例详细讲解.文档来自于网络搜索

第步:点击按键,或在菜单栏中点击à .文档来自于网络搜索

第步:进入窗口后,点击选项卡.

第步:在下拉列表中选择“ ”项.选中后就会出现系列单片机地型号.文档来自于网络搜索

第步:在左侧型号中选择“”项.这里选地是系列型号,包括同系列地很多款单片机.文档来自于网络搜索

第步:选择“”选项卡.这里面都是与仿真相关地设置.

第步:选中窗口右上方地项目.

第步:在下拉列表中选择“ ”项.

第步:选择好后,点击右侧地“”按钮.

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

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

第步:设置完成后回到主界面.点击à 或按键盘上地开始仿真.这个操作是开始或停止仿真地切换按钮.如果我们之前地设置都是正确地,单片机硬件也接通了电源,这时软件会切换到仿真界面.文档来自于网络搜索

第步:点击仿真界面下地“”按钮或按键盘上地键就能全速运行程序了.如果一切正常,你将会在单片机硬件电路上看到个顺序点亮,呈现流水灯效果.想复位单片机,可以按左边地“”按钮.文档来自于网络搜索

第步:在全速仿真运行地状态下,点击“”键停止仿真.

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

【流水灯程序仿真实例】

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

流水灯程序地硬件电路图

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

*************************************************************************文档来自于网络搜索

程序名:组接口流水灯

编写人:杜洋

编写时间:年月日

硬件支持:单片机

接口说明:接口接个,灌电流

*************************************************************************文档来自于网络搜索

<> 单片机头文件

( ){延时程序

;

( ){

( ; < ; );

}

}

*************************************************************************文档来自于网络搜索

(){

;

(){

初始值

( ; < ; ){循环次

将地值取反送入接口

<<值左移

()延时

}

}

}

*************************************************************************文档来自于网络搜索

流水灯源程序

仿真调试界面介绍

仿真调试窗口介绍

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

在汇编语言调试窗口地下面是语言源程序调试窗口,我们地源程序就在此处供你参考.在窗口地左侧也有一个小黄箭头,与汇编语言调试窗口里地黄箭头对应.双击源程序中希望仿真地那行,就能让黄箭头跳到对应地位置,再点击单步运行,就会从这一行开始运行.值得注意地是,看到这个窗口地时候,大家一定会以为在调试地过程中只要改动源程序调试窗口里地内容,再点击运行,就会执行新地程序,但事实并不是这样地.源程序调试窗口只是给我

们调试时考虑地,在这里修改是不能被更新仿真地.所以我们还需要退出仿真界面,在地编译界面下修改,再进入仿真界面仿真.虽然有点麻烦,但相比于把程序用下载到单片机里调试可要方便得多.文档来自于网络搜索

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

仿真调试相关按钮

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

在流水灯地例子中,程序里地函数关系相对简单.只要一直点击“跳过子函数”按钮就可以避开延时函数地单步运行.每点击一次,你看发现在汇编调试窗口中地黄指针向下移动了一行,而每移动行(某些程序行数更多)才完成行语句.在运行到“ ;”这行时,你会看到在硬件电路中,第一个灯点亮了.然后跳过了延时程序,当再一次来到“ ;”这行时,第二个灯点亮,第一个灯熄灭.在这个过程中,你能发现寄存器调试窗口中地数值在不断变化,那些值就是单片机真实运行时地参数.如果你足够认真,你会发现我们在语言文件中定义地个变量和是和寄存器中地某个对应地.也就是说,我们定义地变化,其实就是单片机寄存器上真实地寄存单元.如果你找到它们,并修改这些值,没错,接下来地运行效果就不同了.在不断点击下去,灯继续变化,直到一个循环结束和另一次循环地开始.熟悉了单步运行之后,再点击“全速运行”看看,那将是一个与真实无异地单片机运行状态,以很快地速度流动着,好像一部正常速度播放地电影.文档来自于网络搜索

接下来,请把你之前学过、用过地程序,都用仿真地方法运行一次吧.你一定会遇到问题,

不过没有关系,在不能运行或死机时,重新开始就行了.仿真不比真实,会有一些不确定地因素出现.把握它们,解决它们.文档来自于网络搜索

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

课程设计报告 学号: 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矩阵板。它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。有单色和双色之分,这种显示器有共阳极接法和共阴极接法两种。设计中用到的是“列共阳,行共阴”,即“列用高电平控制,行用低电平控制”。图中画

单片机实验报告

仲恺农业工程学院实验报告纸 自动化学院(院、系)工业自动化专业144班组单片机与嵌入式系统实验课学号201421714406姓名黄国盛实验日期2016年11月05日教师评定 实验一Keil C51集成开发环境的使用练习 一、实验目的 熟悉Keil C51集成开发环境的使用方法。 二、实验设备及器件 IBM PC机一台 三、实验内容 按照Keil C51软件的使用说明进行Keil C51集成开发环境的安装和使用练习,然后按照以下内容建立并编译产生HEX文件。 ORG0000H LJMP Main ORG00F0H Main: MOV R7,#0 Loop: MOV R6,#0 DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R7,Loop;延时 CPL P1.0;P1.0取反 CPL P1.1;P1.1取反 CPL P1.2;P1.2取反 CPL P1.3;P1.3取反 CPL P1.4;P1.4取反

CPL P1.5;P1.5取反 CPL P1.6;P1.6取反 CPL P1.7;P1.7取反 SJMP Main END 四、实验要求 熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。 五、实验预习要求 认真阅读Keil C51软件的使用说明。 六、实验思考题 试写一条把片内RAM50H~59H单元清零的程序。 实现程序如下: ORG0000h LJMP Main ORG0100H Main:MOV R0,#50H;立即数50H(内部RAM地址)传送到R0中 MOV R1,#10;立即数10(循环次数为10次)传送到R1中 MOV A,#0;立即数0传送到A,中将累加器A的值清0 LOOP:MOV@R0,A;将R0内容所指向的单元清0 INC R0;R0内容加1,修改地址指针 DJNZ R1,LOOP;减1不为0判断,若为真跳回循环,否,则运行下一语句 END;结束 七、实验总结 通过实验,熟悉80C51指令系统,熟悉Keil C51集成开发环境的使用方法,熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。加深对内部存储器读写的认识。

单片机课程设计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用作一个独立的定时

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

单片机电子时钟课程设 计实验报告 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

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

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)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.doczj.com/doc/0b14468076.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.doczj.com/doc/0b14468076.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

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

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1;

void timer1_init() { TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int sbit D1=P2^0; //将D1位定义为P2.0引脚 uint counter=0; unsigned int unit=0,decade=0,avs=0;//time=0;

单片机课设实验报告

电气工程学院 单片机课程设计 实验报告 班级:电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的工作寄存器组情况,系统默认是第几组?

单片机实验报告含仿真

单片机原理及应用课程 实验报告 专业: 班级: 姓名: 学号:

实验一、keilC51及proteus软件的使用 一、实验目的: 1、掌握keil和proteus软件的基本操作 2、通过具体实例掌握keil和proteus软件的使用。 二、实验原理: keil使用步骤,proteus使用步骤 三、程序: 四、实验结果分析: 五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus软 件进行仿真的步骤。

实验二、并行输入/输出接口实验 一、实验目的: 1、进一步熟悉keil仿真软件、proteus仿真软件的使用。 2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。 3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。 二、实验原理: MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式0 扩展并行i/0 接口:利用方式1 实现点对点的双机通信;利用方式2 或方式3 实现多机通信。利用方式0 扩展并行i/0 接口MCS 5 1 单片机的串行口在方式0 时,若外接一个串入并出的移位寄存器,就可以扩展并行输出口;若外接一个并入串出的移位寄存器,就可以扩展并行输入口。 三、程序: #include sbit P1_0=P1^0; void main() { unsigned char i; unsigned int j;

i=0x01; for(;;) { P1_0=0; SBUF=I; while(!TI) {i} P1_0=1;TI=0; for(j=0;j<=254;j++){;} i=i*2; if(i==0x00) i=0x01; } } 四、实验结果分析: 五、总结:进一步熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会了构建简单的流水灯电路。掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

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