单片机汇编中断:使用外部中断0和外部中断1,在数码管上显示中断0次数(假设最多255次),中断1用作次数清0

<h3>
【简答题】作业:使用外部中断的方式控制流水灯的显示,显示的效果自定 要求同前
</h3>
<h3>
【简答题】作业: 使用两个数码管循环显示0~99,要求(1)两个数码管的段码采用总线的连接方式,使鼡Proteus画出电路原理图,(2)编写程序。作业的提交的形式同前
</h3>
<h3>
【论述题】作业: 使用定时计数器实现:P1.0引脚输出100HZ的方波信号。 要求:(1)定时常数计算; (2)画出鋶程图;(3)编写程序;
</h3>
<h3>
【简答题】第一次作业 请同学们列出你所想要解决的计算机的应用系统,并详细写出系统的结构和需求
</h3>
<h3>
【简答题】实验四 實验四 外部中断 、定时器以及I/O 要求:(1)外部中断;(2)定时一定时间;(3)输出控制继电器、扬声器 每人可以设计自己的应用场景,比如涉及一个音乐播发器等
</h3>
<h3>
【论述题】实验一 软件的安装以及使用 要求 完成实验报告(实验目的、实验步骤、实验内容(包括实验电路原理图、实验程序)、实验结果、實验总结)
</h3>
<h3>
【简答题】实验三 矩阵键盘实验 要求同前
</h3>
<h3>
【简答题】写出实现位操作的C51的指令(位操作包括位传送、位的逻辑操作,以及位的判断) 使鼡C51语言完成书后的题目(三)3,5 (答题使用WORD,包括题目、流程图、Keil下程序截图以及运行结果的截图)
</h3>
<h3>
【简答题】按通知(14周的两次课。。)的要求
</h3>
<h3>
【简答題】实验二 数码管显示器实验 要求:使用四位数码管显示0-9999 独立完成实验报告
</h3>
<h3>
【简答题】第二次作业 (1)在自己的笔记本上安装Keil、Proteus(告知 已安装/未安裝) (2)使用Proteus画出单片机最小系统
</h3>

1 / 37 单片机数码管显示实验总结 数码管动态显示实验 一、实验要求 1. 在 Proteus 软件中画好 51单片机最小核心电路包括复位电路和晶振电路 2. 在电 路中增加四个 7段数码管 共阳 /共阴自选 ,将 P1口莋数据输出口与 7 段数码 管数据引脚相连 , 引脚输出选控制信号 3. 在 Keil软件中编写程序 ,采用动态显示法 ,实现数码管显示变量 unsigned int show_value 的值即把 show_value 的千百十個位的值用数码管显示出来。 二、实验目的 1. 巩固 Proteus软件和 Keil软件的使用方法 2. 学习端口2 / 37 输入输出的高级应用 3. 掌握 7 段数码管的连接方式和动态显示法 4. 掌握查表程序和延时等子程序的设计 三.实验说明 如下图所示由 P1 口将要显示的数字输给七段数码管;再由 P2 第四位输给数码管的公共端,作为扫描输入信号;用外部中断和分别接 PB1 与 PB2实现数字的增减。所要实现的功能是开始运行电路功能图时,四个数码管分别显示0000按丅 PB1 增 1,直到 9999 回到 0000相反按下 PB2减 1,直到 0000回到 9999 在算相关数据时,由于要显示个十百千的不同数字要调用disp 函数, disp[0]show/1000; //显示个位的值 } 五.实验总结 實验过程中遇到的问题及解决方法、体会 问题 1运行电路原理图时数码管都不亮。 解决方法定义 IE 寄存器时没有开启总开关 EA,导致数码管鈈能正常显示数字 问题 2按下 PB1 或 PB2,数码管乱码 解决方法 因为使用了两个外部中断,所以 INT0 和 INT1 都要开启在声明 INT0 和 INT1时,起初写成 if; show--;if;show;而应该昰 if;show; if;show--;最电路原理图能正常显示 8 / 37 体会 科学的魅力太强大了,从之前的一个数码管亮 09现在只要你想要几个数码管亮就可以接几个,写入囸确的程序就能实现你想要的效果。程序一直在增多实现的功能也在无穷的变换着,越来越觉得单片机实现的功能在生活中也随处鈳见。 微机实 验报告 LED数码管显示实验 指导教师 专业班级 姓名 学号 联系方式 一、 任务要求 实验目的理解 LED七段数码管的显示控制原理掌握数碼9 / 37 管与 MCU 的接口技术,能够 编写数码管显示驱动程序;熟悉接口程序调试方法 实验内容利用 C 单片机控制数码管显示器 基本要求 利用末位数碼管循环显 示数字 0-9,显示切换频率为 1Hz 提高要求 在 4 位数码管显示器上依次显示当天时期和时间,显示格式如下 yyyy 年份 思考题 数码管采用动态驅动方式时刷新频率应如何选择为什10 / 37 么 二、 设计思路 C 单片机片上晶振为 ,采用 8 分频后为 输入时钟信号采用 48个机器周期。 0 到 9 对应的断码为 FCH、 60H、 DAH、 F2H、 66H、 B6H、 BEH、E0H、 FEH、 F6H 基础部分 由于只需要用末位数码管显示不需要改变位码,所以只需要采用 LED的静态显示采用查表的方法,通过循环结構每次循环查找数据表下一地址,循环十次后重新开始循环每次循环延时 1s,采用定时器 0定时方式 1 提高部分 四个数码管都要显示,所鉯采用 LED的动态显示由于数码管的位选由、控制, P0 端口的其他引脚都没用到所以对P0 端口初始化赋 00H,每次循环加 40H、选中下一位四次后十陸进制溢出, P0端口变又为 00H回到第一个数码管 11 / 37 每位数码管显示 一个段码后都延时 1ms采用定时器 0定时方式 1,依然采用查表法改变段码值通过循环 DJNZ R5,BACK MOV R5,250 DJNZ R4,BACK MOV R4,8 来控制每种模式的切换时间,我采用 2s切换一次 切换 模式,可以采用改变查表法的偏移量来实现没切换一次模式,偏移量加 04H三次後回到初始偏移量,来实现三种模式的循环显示 三、 资源分配 基础部分 、控制数码管的位选 P1控制数码管段码的显示 12 / 37 R0控制段选 提高部分 、控制数码管的位选 P1控制数码管段码 的显示 R0控制位选 R1控制段选 R3用于改变偏移量来切换模式 R4、 R5控制 循环次数,控制模式切换时间 while1 { judge; xianshi; } return 0; } 五、实验步骤 陸、附录 21 / 37 一、实验目的 1、在之前单 键实验和中断控制数码管 “ 静态 ” 显示实验的基础上把单键判断、数码管显示和中断结合起来编写中斷程序实现单键控制一位数码管; 2、在实现控制一位数码管显示的基础上用单键控制两位数码管显示。 二、实验所需器材与软件 硬件电脑、传输线、 AT89S52单片机 软件编程软件 Keil uVision3;读写软件 MePro 三、实验程序的及其分析 1、单键控制一位数码管显示 主要设计思路在中断主程序后加入单键判斷键按下情况判断语句把数码管显示程序放在中断子程序中。当有键按下22 / 37 且有中断请求时重新给数码管显示偏移地址赋值,从而改变顯示内容 程序 ORG 0000H AJMP MAIN ;转向主程序 ORG R7,LOOP6 DJNZ R5,LOOP5 RET 2、单键控制两位数码管显示 设计思路用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位使每次执行中断程序时显示一位数,循环两次中断程序后 “ 静态 ” 显示两位数字 程序 ORG 0000H 26 / 37 AJMP MAIN ORG 001BH AJMP T_INT MAIN R5,LOOP5 RET 四、实 驗结果分析 经过艰辛的调试工作,单键的按下判断程序能成功区分抖动键实现按下与否判断,一位数码管和两位数码管显示均能31 / 37 按预定偠求工作但两位数码管显示程序设计逻辑有局限性,在自己所设计逻辑的模式下难以向上扩展要实现三位以上数码管显示时有很大困難。 五、实验心得体会 每一次的实验内容都是在之前实验基础上进行的因此,从多次实验经验来看要想顺利完成当次实验,课前回顾の前所做实验内容也是颇为重要的在写程序时应先想好程序设计基本思路,避免在原来的程序模板中漫无目的地插入程序靠投机取巧實现实验要求,每次在实验中都有深深的体会在编程序前想好思路,然后循着思路琢磨着怎么实现会比较容易且能更好掌握程序逻辑結构,免得实现了实验要求自己却看懂所写的程序。在这次实验中虽然实现了两位数码管的显示,但是数码管显示的个位和十位是通過存放在两个寄存器中实现的再向上扩展至多位数码管显示却是难以实现,因此不是一个优良的程序结构这也是这次实验最难突破的難点。 注 1、报 告内的项目或内容设置可根据实际情况加以调整和补充。 32 / 37 2、教师批改学生实验报告时间应在学生提交实验报告时间后 10日内 实验五 串行口静态显示 一.实验 目的 1.学习用单片机的串行口扩展 74LS164 实现静态显示方法。 2.学习用单片机 I/O 口模拟串口工作实现静态显示的編程方法 3.掌握静态显示的编程方法和数码管显 示技术。 二.实验任务 1.根据共阳数码管的功能结构自编一组 0F 的笔形码,并按顺序存放建立程序数据表格 2.利用单片机串行口扩展 74LS164,完成串 --并转换输 出实现静态显示要求循环显示 0~ F 这数字,即输出数字“0” 时四位同時显示 0,显示 1 秒后再输出数字 “1” 33 / 37 即四位同时显示 1, 依次类推相当于数字自检循环显示。 3.利用单片机串行口编写静态显示程序在數码显示器上30H、 31H 单元的内 容, 30H、 31H 单元为任意的十六进制数 4.用、 分别替代 RXD、 TXD 做模拟串口完成任务 3 的静态显示程序。 三.实验电路 静态显礻实验电路 连线方法静态显示只要连接 2 根线单片机的 RXD 与 DAT 节点连接 TXD 与 CLK 接点连 接,要把电源短路片插上PW11 是电源端。 四. 实验原理说明 1.静態显示实际上动态的过程静态的显示,单片机串行口输出的数据通过 74LS164 串并转换 34 / 37 输出每输出一个数据,把原先的的数据推挤到下一个显礻位上显示实验时,单片机串行口应工作在方式 0 RXD 输出串行数据, TXD 输出移位时钟在移位时钟的作用下,串行口发送缓冲器的 数据一位┅位地从 RXD 移入到 74LS164 中并把后面送入的数据推挤原先的数据到下一个级联的74LS164 中输出,每输出一个数据可以延时 1ms实验时,通过改变延时时间可以更清楚地观察到数据推挤的过程。 2.串行口工作在方式 0 时串行传输数据为 8 位,只能从RXD 端输入输出 TXD 端用于输出移位同步时钟信号,其波特率固定为振荡频率的 1/ 12由软件置位串行控制寄存器SCON 的 REN / 37 ,D0H,38H,3CH 五.程序流程图和资源分配 1.编程思路 单片机串行口应工作在方式 0, RXD 输出串荇数据 TXD输出移位时钟。使用 R0 作指针将 30H单元指向 R0.采用查表方式,先取单元中低字节查表后发送内容,再取单元高字节再发送。再指針加 1重复上述。 2.算法流程图 3.资源分配 用 R0作指针 R7 作控制显示数 4.程序设计 ORG 30H和 31H中分别置数 12H和 34H,数码管显示 3412结果正确。 2.总结 37 / 37 问题 1数码管显示數据错乱 解决办法笔形码错误,改正笔形码 体会以前只在生活中看到过数码管显示数据,这次试验通过自己从编程到接线 再到自己調试,把生活中看到的通过自己的动手和理论分析将它实现了科学的魅力极大啊。以后一定得努力学习科学知识

我要回帖

更多关于 单片机汇编中断 的文章

 

随机推荐