51单片机数码管静态显示及定时器和中断应用
《单片机原理及应用》考试大纲
《单片机原理及应用》考试大纲I、考试的性质与目的本科插班生考试是由专科毕业生参加的选拔性考试。
《单片机原理及应用》是电气工程及其自动化(本科)的一门专业基础课程,考试主要检查考生对单片机技术的基本知识的掌握程度,考察内容主要包括:单片机的组成、工作原理、编程及外围电路设计等基础知识;单片机的编程方法、编程规则及外围电路设计技巧,着重考察编程能力,分析问题、解决问题的能力。
通过考察保证后续课程的学习。
II、考试的内容一、考试基本要求1.基本理论知识1)掌握单片机并行I/O(也就是个P口)口的其内部结构、它们的用途和在使用过程中需要注意的问题。
2)掌握数码管的内部结构(共阴极、共阳极)和驱动方法(动态驱动方法和静态驱动方法)3)掌握独立键盘和矩阵键盘的扫描原理4)掌握外部中断的原理,使用方法和设置方法,重点注意外部中断在TCON、IE、IP寄存器的设置方法。
5)掌握定时器中断的原理,使用方法和设置方法,重点注意定时器中断在TCON、、TMOD、IE、IP寄存器的设置方法。
掌握定时器的4种工作方式。
6)掌握串口的原理,使用方法和设置方法,重点注意串口中断在TCON、、TMOD、IE、IP寄存器的设置方法。
掌握串口232A的电压规范及物理连接方法、掌握波特率的概念,各种工作模式下数据帧的格式。
7)掌握IIC总线的通信格式(什么是起始信号、结束信号和数据信号),通信协议(重点注意通信的过程中发送信号的顺序和对地址信号的定义)8)了解液晶1602的使用方法2.基本技能1)了解51单片机的架构和资源,能够读懂单片机组成简单系统;2)能够利用单片机以及其他元器件设计简单的监控电路3)能够阅读基础C语言编写的程序,能够利用C语言编写单片机程序,并具有编译、下载和调试单片机系统的能力。
4)能够利用一些常用的集成电路芯片组成单片机系统二、考核知识点及考核要求1. 基础必备知识1.1 考核知识点:1)单片机概述:了解什么是单片机、单片机标号信息及封装类型、单片机能做什么、如何开始学习单片机、单片机外部引脚介绍、电平特性等;2)单片机常用的数制与码制,包括:二进制、十六进制、二进制与十进制的相互转换;3)二进制的逻辑运算包括:与、或、非、同或、异或等4)单片机的C51基础知识包括:了解利用C语言开发单片机的优点、C51中的基本数据类型、C51数据类型扩充定义、C51中常用的头文件、C51中的运算符、C51中的基础语句1.2 考核要求:1)识记:单片机的资源和特点2)理解:单片机使用的数制和逻辑运算3)应用:读懂并利用C语言编写程序2. Keil软件使用及流水灯设计2.1 考核知识点:熟悉和使用Keil编写简单的单片机C51程序,内容包括:1)Keil工程建立及常用按钮的使用2)能灵活使用C语言循环控制语句3)掌握延时程序的写法和延时时间的计算方法4)掌握函数的使用方法5)使用简单的C51库函数2.2 考核要求:识记:简单的C51库函数;理解:C51的基础语法;应用:使用Keil编写单片机程序,形成可下载的HEX文件,并下载到单片机(或者仿真软件protues)进行仿真和调试。
第4章51单片机内部功能模块及其应用----单片机
第 4 章 51系列单片机的功能模块及其应用本章介绍51内部接口的应用。
51系列单片机内部集成了:●CPU──111条指令●ROM──0K~4K/8K(可扩为64KB)●内RAM──128/256 B(可扩外部64KB)●定时/计数器接口──2个/3个16位定时/计数器T0、T1、T2●全双工异步串行通信接口──●并行接口──提供4个8位并行端口●中断控制器──可以管理5个/6个中断源接口电路(Interface)──简称“接口”,是连接CPU总线和外设的桥梁。
接口卡=适配器(Adapter)──复杂接口电路,仅仅一片IC还不够,需要以某种核心IC芯片搭配外围元器件构造成一个电路板。
比如:网卡、声卡、显卡、数据采集卡、图像采集卡等。
端口(Port)──简称“口”,是指接口电路中的寄存器,硬件连线决定了每个寄存器的I/O地址,对接口电路的编程实质是对接口寄存器的编程。
CPU控制外设的实质就是控制接口电路,控制接口电路的实质就是控制接口寄存器。
4.0 中断系统──(教材第2章第5节)4.0.1 中断概念中断是针对“条件I/O”的外设而设置的一种I/O工作方式(另一种方式是查询)。
与查询方式相比,中断方式减少了CPU的负担,是计算机系统中重要概念和必不可少的内容。
举例:把人看成CPU,手表和电话看成是外设,访问这两个外设就是两种I/O类型:手表──无条件I/O的典型,随时可以访问,自然也不涉及查询和中断方式的选择。
电话──条件I/O的典型,可以设计成查询方式,也可以设计成中断方式。
显然,查询方式用在这里很“愚蠢”!而采用中断方式就很自如。
实现中断工作方式的几个条件:●外设能够产生中断申请信号;●CPU支持中断工作方式──CPU能够接受外设的中断申请并做出响应;●有一个独立于CPU的中断控制电路──能够区分多路中断源,进行中断允许和优先权设置。
正确使用中断需要搞清:中断屏蔽、优先权、响应过程、激活方法、中服调用和返回等。
51单片机数码管编程题
51单片机数码管编程题一、概述51单片机是一种广泛应用于嵌入式系统的微控制器,它具有丰富的I/O端口和定时器资源,可以方便地与数码管等显示器件连接,实现数字和字符的显示。
数码管编程是51单片机应用开发中一项重要的技能,需要掌握基本的数字电路知识和单片机编程技巧。
二、编程要求本次编程任务是实现一个简单的数码管显示程序,要求能够控制数码管依次显示数字0-9,并且能够在数码管熄灭时进行清零操作。
同时,需要考虑到数码管的显示亮度、闪烁等问题,可以通过调整LED 的亮灭时间来实现。
三、编程思路1. 硬件连接:首先需要将数码管与单片机的I/O端口进行连接,可以使用7段数码管译码器芯片(如74LS379)来实现译码和驱动。
同时,需要为数码管和译码器芯片加上适当的电压和地线。
2. 程序设计:根据要求,程序需要包括显示数字、清零和调整亮度的功能。
可以使用定时器中断的方式来实现定时控制数码管的显示和熄灭。
具体来说,可以定义一个数组来存储数字的编码,然后在中断服务程序中依次取出数组中的数字编码,通过I/O端口输出到数码管上。
同时,可以使用另一个数组来存储清零和调整亮度的控制信号,通过I/O端口输出到数码管驱动芯片上。
3. 调试与优化:在程序编写完成后,需要进行调试和优化,确保数码管的显示效果和亮度达到要求。
可以使用调试器将程序下载到单片机中进行测试,也可以使用示波器和万用表等工具来测量数码管驱动芯片的输出信号和电压是否正常。
四、代码实现以下是一个简单的51单片机数码管显示程序示例:```c#include <reg52.h> //包含51单片机寄存器定义的头文件//定义数码管数字编码数组unsigned char code dongsu[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};void delay(unsigned int time) //延时函数{unsigned int i, j;for(i = 0; i < time; i++)for(j = 0; j < 1275; j++);}void display(unsigned char num) //数码管显示函数{P2 = dongsu[num]; //将数字编码输出到数码管上EA = 1; //开启全局中断ET0 = 1; //开启定时器0中断TF0 = 0; //清除定时器0溢出标志位while(!TF0); //等待定时器中断触发EA = 0; //关闭全局中断}void main() //主函数{while(1) //循环显示数字{display(0); //显示数字0delay(100); //延时一段时间display(1); //显示数字1delay(100); //延时一段时间display(2); //显示数字2delay(100); //延时一段时间display(3); //显示数字3delay(50); //短时间延时后熄灭数码管并清零P2 = 0xff; //清零操作,将所有I/O端口设置为高电平 while(P2 != 0xff); //等待I/O端口电平变化完成}}```以上代码实现了基本的数码管显示功能,可以根据实际需求进行修改和优化。
数码管静态显示实训报告
一、实训目的通过本次实训,掌握数码管静态显示的原理和方法,熟悉51单片机的编程技巧,以及如何利用单片机控制数码管显示特定的数字和字符。
同时,了解数码管在电子显示中的应用及其驱动电路的设计。
二、实训器材1. 51单片机开发板2. 数码管(共阴极或共阳极)3. 电阻4. 译码器(如74HC138)5. 驱动器(如74HC245)6. 连接线7. 编程软件(如Keil)8. 仿真软件(如Proteus)三、实训原理数码管静态显示是指每个数码管的每个段都由单片机的I/O口直接驱动。
当某个段需要显示时,相应的I/O口输出高电平或低电平,控制该段LED的亮灭。
共阴极数码管的段码共用一个电源的负极,高电平点亮;共阳极数码管的段码共用一个电源的正极,低电平点亮。
在本次实训中,我们使用51单片机的P0口输出段码数据,P2口输出位选信号,通过译码器和驱动器实现对数码管的驱动。
四、实训步骤1. 硬件连接(1)将数码管按照共阴极或共阳极的接法连接到单片机的P0口。
(2)将译码器的输入端连接到单片机的P2口。
(3)将驱动器的输入端连接到译码器的输出端。
(4)将驱动器的输出端连接到数码管的位选端。
2. 软件编写(1)定义数码管的字形码数组,存储0~9数字的字形码。
(2)编写主函数,通过循环遍历字形码数组,控制数码管显示相应的数字。
(3)编写延时函数,实现数字显示的间隔。
3. 仿真测试(1)使用Proteus软件搭建仿真电路。
(2)编写Keil软件中的程序,并编译生成HEX文件。
(3)将HEX文件下载到51单片机中。
(4)运行仿真程序,观察数码管显示的数字是否正确。
五、实训结果经过实训,我们成功实现了数码管静态显示功能。
数码管能够按照程序设置的方式,依次循环显示0~9十个数字。
六、实训心得1. 通过本次实训,我们了解了数码管静态显示的原理和实现方法,掌握了51单片机的编程技巧。
2. 在实训过程中,我们学会了如何使用译码器和驱动器扩展单片机的I/O口功能。
基于51单片机实现LED数码管静态与动态显示的设计浅析
33第2卷 第22期产业科技创新 2020,2(22):33~34Industrial Technology Innovation 基于51单片机实现LED数码管静态与动态显示的设计浅析龙 志(广州大学松田学院,广州 增城 511370)摘要:随着社会的发展,在我们日常的生活中,数码管的应用随处可见,尤其是在电子应用设计显示等方面常常发挥着非常重要的作用,因此研究数码管的显示有非常重要的现实意义。
数码管我们可以分为静态显示和动态显示,这两种显示有着本质的区别,静态显示的特点是占用CPU 时间少,显示便于监测和控制,显示字形稳定,而动态数码管的显示,效果相对静态显示亮度差少许,但成本较低。
本设计主要是基于51单片机,先通过结合集成芯片74HC573对LED 数码管静态显示的硬件电路设计与分析,进一步拓展到采用芯片74HC138与LED 数码管动态显示的硬件电路设计与分析,最终实现两种不同的电路设计显示的方法。
关键词:LED 数码管;静态显示;动态显示;51单片机中图分类号:TP368.12 文献标识码:A 文章编号:2096-6164(2020)22-0033-02随着电子应用技术的不断发展,显示电路在电子设计应用方面更加广泛,尤其是LED 数码管显示在各行各业中的应用更加重要,如红绿交通灯显示,电子时钟显示,家电产品功能显示等方面都需要用到LED 数码管作为显示。
因此,对LED 数码管的显示控制有着非常重要的现实意义。
因此我们要实现LED 数码管的熟练显示控制,我们必须要根据数码管的特点来进行分析和设计,数码管有静态显示和动态显示的两种方法,接下对这两种电路作详细的分析与设计,最终实现对LED 数码管静态与动态的两种不同显示设计方法。
1 数码管静态显示电路设计数码管静态显示设计是利用MCS-51单片机结合两片集成芯片74HC573,实现对4个LED 数码管的显示控制。
具体设计如图1所示:图1 数码管静态显示设计电路图本电路设计主要是利用单片机的P0口来实现对数码管的位选控制与段选的控制,P0口之所以能够正确的对数码管进行位选与段选的控制,关键是在于设计中使用了芯片74HC573。
51单片机-数码管显示
} void delay(int x) {
int i,j; for(i=0;i<x;i++)
for(j=1;j<120;j++); }
LED字型显示代码表
段符号
十六进制代码
显示 dp
g
f
e
d
c
b
a 共阴极 共阳极
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
A0
b
0
C0
d
0
E0
F
0
H0
P0
0
1
1
1
1
1
1
3FH
C0H
0
0
0
0
1
1
0
06H
F9H
1
0
1
1
0
1
1
5BH
A4H
1
0
0
1
1
1
1
4FH
B0H
1
1
0
0
1
Hale Waihona Puke 1066H
99H
1
1
0
1
1
0
1
6DH 92H
1
1
1
1
1
0
1
7DH
1. 静态显示的特点
静态显示就是单片机将所要显示的数据送出去后,数码管始终显示 该数据(不变),到下一次显示时,再传送一次新的显示数据。
51单片机实验报告
51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。
本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。
通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。
四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。
本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。
通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。
五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。
本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。
通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。
六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。
本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。
通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。
七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。
本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。
通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。
八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。
单片机定时器计数器应用
为了获得1秒时间,T0中断需要发生200次。程序包含主函
数,T0的初始化函数和T0中断服务函数,显示语句放在中
断服务函数内,程序如下:
/******************************************************************/ #include<reg51.h> code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char cp,i; //声明全局变量 void timer0_isr(void) interrupt 1 // timer0中断服务函数 { TR0 = 0; //停止计数 TL0 = 0x78; // TL0重新预置 TH0 = 0xec; // TH0重新预置 TR0 = 0; //开始计数 cp++; // timer0中断1次,变量cp加1 if(cp == 200) //中断200次,时间刚好为1秒 { cp = 0; i ++; }
项目5 单片机定时器/计数器应用
5.1任务说明
任务:利用单片机内部定时器/计数器中断实现一个数码管 的秒记数,重点学习定时器/计数器的工作方式以及
其控制寄存器TMOD、TCON的功能,在程序实现
过程中掌握定时器/计数器中断的一般步骤。
5.2 单片机的定时/计数器结构
51单片机内部含有两个定时器/计数器,分别是T0和 T1,在增强型51系列单片机中,如STC89C51RC,内部出了 含有T0和T1外,还有T2定时器/计数器。定时器/计数器主 要由于精确的定时,也可用于对外部脉冲进行计数以及为
MCS-51单片机应用实验教程课程设计
MCS-51单片机应用实验教程课程设计1. 简介MCS-51单片机是一种高性能、低功耗单片机,广泛应用于各个领域。
本文主要介绍MCS-51单片机应用实验教程课程设计内容,以帮助初学者了解MCS-51单片机的应用。
2. 实验环境•Keil C51编译器•STC89C52RC单片机•电路板和外围器件•PC3. 实验内容3.1 实验1:LED流水灯LED流水灯是MCS-51单片机入门实验,可以让学生熟悉MCS-51单片机基本指令和寄存器的使用,以及加深对位运算的理解。
实现方法:通过MCS-51单片机的IO口和位运算实现8个LED灯的流水效果。
3.2 实验2:数码管显示数码管是一种常见的数字显示器件,通过数码管的显示,可以实现对数字的显示和闪烁等效果。
该实验可以让学生了解MCS-51单片机的定时器和中断服务程序的使用,以及对数码管的控制。
实现方法:通过MCS-51单片机的定时器,按照一定的时间间隔对数码管进行显示和闪烁。
3.3 实验3:按键控制LED灯按键开关是电子产品常用的一种输入方式,通过按键的不同状态可以控制LED等输出设备的开关。
该实验可以让学生了解MCS-51单片机的IO口的输入状态读取和控制。
实现方法:通过MCS-51单片机的IO口读取按键输入状态,通过位运算控制LED灯的开关。
3.4 实验4:外部中断实现按钮控制LED灯外部中断是MCS-51单片机的一种重要功能,通过外部中断可以实现对按钮的响应,进而实现对LED等设备的控制。
该实验可以让学生进一步了解MCS-51单片机的外部中断服务程序的使用和IO口管理。
实现方法:通过MCS-51单片机的外部中断输入,响应按键状态,并通过位运算控制LED灯的开关。
3.5 实验5:定时器PWM控制LED灯亮度通过调节LED灯的亮度,可以达到调节电子产品亮度的效果。
该实验可以让学生了解MCS-51单片机的定时器的PWM输出功能,以及通过PWM实现对LED等设备的亮度调节。
单片机指示灯和数码管的中断控制实验报告.doc
单片机指示灯和数码管的中断控制实验报告.doc本次实验是对单片机指示灯和数码管的中断控制的探索与实验。
本次实验采用的控制芯片是C8051F020,并使用了Keil uVision 5软件进行编程,通过搭建的硬件电路实现指示灯和数码管的控制。
一、实验目的1.了解中断的基本概念和中断的处理过程;2.学习如何设置中断优先级和使用中断嵌套;4.进一步巩固单片机的编程基础。
二、实验内容1.实现定时器中断控制指示灯,每隔一定时间改变指示灯的亮灭状态2.实现外部中断控制数码管,当外部引脚有电平变化时,更新数码管的显示内容三、实验原理中断是单片机系统中常用的一种处理机制。
引发中断的事件可以是定时器计数器溢出,外部I/O口电平跳变、串口数据到达等多种情况。
在中断响应后,单片机会暂停当前的程序执行,先转到相应的中断服务程序中执行,待中断处理完成后再从原来暂停的位置继续执行。
本次实验中,通过使用单片机的定时器和外部中断控制指示灯和数码管。
定时器中断每隔一定时间改变指示灯的状态,外部中断控制数码管显示内容的改变。
在编程时,需要设置中断的优先级和中断嵌套的情况。
四、实验步骤1.硬件连接将指示灯连接到P0.0引脚,将数码管连接到P2口对应的引脚,在数码管的位选接口处接入一个按键(用于模拟外部中断)。
2.编写定时器中断代码在Keil uVision中打开一个新的工程,编写定时器中断的代码,具体代码如下://包含头文件和全局变量定义#include<reg51.h>unsigned char ledStatus = 0;//定时器中断服务程序void tmr0_isr(void) interrupt 1{TMOD &= 0xf0;TH0 = (65536-50000)/256;}//定时器初始化ET0 = 1;unsigned char code num_c[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};//LED灯控制函数control_led();//外部中断初始化//数码管更新函数P0 = num_c[num];P2 = ~(0x01<<num);4.实验结果将编写好的程序下载到单片机控制芯片上,按下数码管的位选按键,就可以看到数码管上的数字不断改变,同时指示灯每隔一定时间改变一次状态。
51单片机数码管动态显示分析
51单片机数码管动态显示分析51单片机数码管动态显示是一种常见的数字显示方式,其主要通过控制不同位数的数码管,使其依次显示数字,从而实现数字动态显示的效果。
以下将从原理和实现两个方面对51单片机数码管动态显示进行分析。
一、原理分析51单片机数码管动态显示的原理主要分为两部分,分别为定时器控制和位选控制。
定时器控制:在51单片机中使用定时器是为了保证数字动态显示的稳定性。
通过定时器中断的方式来控制数码管的显示时间,使得每个数字都有足够的时间显示,并且切换速度平稳。
位选控制:在数码管动态显示过程中,需要依次控制不同位数的数码管显示数字。
这是通过位选控制器实现的,它会依次选中各位数码管,并显示出要显示的数字。
这个过程会不停地重复,从而实现数字的动态显示。
二、实现分析51单片机数码管动态显示的实现需要以下几个步骤:1. 确定使用的数码管数量及其接口:需要确定使用几个数码管以及它们的引脚分别对应的单片机IO口。
2. 编写显示函数:编写一个函数来控制数码管的动态显示,其中需要实现定时器中断以及位选控制的功能。
3. 循环调用显示函数:将编写好的显示函数放到主函数中进行调用,并不断地循环执行,从而实现数字的动态显示。
需要注意的是,在编写显示函数的过程中,需要确定定时器中断的时间间隔、位选控制的顺序以及每个数码管对应的IO口。
这些因素会直接影响到数字的显示效果,因此需要仔细调试以达到最佳的显示效果。
在实现过程中,还需要考虑到如何读取用户输入并将其显示在数码管上。
一种常见的方式是通过外部按键来读取用户输入,然后通过数码管动态显示的方式,将输入的数字依次显示出来。
总之,51单片机数码管动态显示是一种常见的数字显示方式,其实现原理和步骤相对比较简单。
需要注意的是,在实际应用中还需要结合实际需求进行相应的调整,以达到最佳的显示效果。
单片机原理及应用简答题的考试要点
简答题(1)51单片机内部结构由哪些基本部件组成各有什么功能1、cpu主芯片(内部通过总线连接扩展的设备)2、时钟电路(为单片机提供震荡脉冲)3、电源电路(为单片机提供电源)4、内部数据存储器RAM(包括通用数据寄存器和专用寄存器SFR,主要是数据存储区。
)5、程序存储器ROM(主要是存储程序,51系列有4K内部程序ROM,可以外扩64K。
)6、并行端口4*8位(P0,P1,P2,P3主要是数据交换接口。
)7、串行口(TXD,RXD用于串口通信。
)8、中断系统(外中断0,定时计数T0,外中断1,定时计数T1,串口中断。
)9、定时/计数器(16位用于外部的计数和定时功能。
)(2)单片机的程序状态字寄存器PSW中各位的定义分别是什么(3)51单片机引脚按功能可分为哪几类各类中包含的引脚名称是什么(5)计算机存储器地址空间有哪几种结构形式51单片机属于哪种结构形式?P23(8)80C51片内低128B RAM区按功能可分为哪几个组成部分各部分的主要特点是什么提示(1)工作寄存器组(00H——1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。
它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。
(2)可位寻址RAM区(20H——2FH)16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。
主要用于位寻址。
(3)通用的RAM区(30H——7FH)用于设置堆栈、存储数据(9)什么是复位单片机复位方式有哪几种复位条件是什么单片机在开机和死机时需要复位,以便使各功能部件处于一个确定的初始状态开始工作。
复位可以由两种方式产生,即上电复位方式和按键复位方式。
复位的条件是,在RST引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间(一般不小于10ms)(12)80C51中哪个并行I/O口存在漏极开路问题此时没有外接上拉电阻会有何问题P33\34 P0口(13)简述利用Proteus进行汇编程序的仿真开发过程。
数码管动态扫描显示实验综述
实验三定时器和中断实验一、实验目的1、学习51单片机内部定时器的使用方法。
2、掌握中断处理程序的方法。
3、掌握数码管与单片机的连接方法和简单显示编程方法。
4、学习和理解数码管动态扫描的工作原理。
二、实验内容1、使用定时器T0,定时1秒,控制P1口发光管循环点亮。
2、使用定时器T0,定时1秒,控制1个数码管循环显示数字0~9,每秒钟数字加一。
3、使用软件定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。
4、使用定时器T0,定时1秒,控制2个数码管循环显示秒数0~59,每秒钟数字加一。
三、实验电路图四、实验说明1、数码管的基本概念(1)段码数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。
本次实验使用的是共阴数码管,公共端是1、6,公共端置0,则某段选线置1相应的段就亮。
公共端1控制左面的数码管;公共端6控制右面的数码管。
正面看数码管的引脚、段选线和数据线的对应关系为:图1 数码管封装图图2 数据线与数码管管脚连接关系段码是指在数码管显示某一数字或字符时,在数码管各段所对应的引脚上所加的高低电平按顺序排列所组成的一个数字,它与数码管的类型(共阴、共阳)(2)位码位码也叫位选,用于选中某一位数码管。
在实验图中要使第一个数码管显示数据,应在公共端1上加低电平,即使P2.7口为0,而公共端6上加高电平,即使P2.6口为1。
位码与段码一样和硬件连接有关。
(3)拉电流与灌电流单片机的I/O 口与其他电路连接时,I/O 电流的流向有两种情况:一种是当该I/O 口为高电平时,电流从单片机往外流,称作拉电流;另一种是该I/O 口为低电平时,电流往单片机内流,称为灌电流。
一般I/O 的灌电流负载能力远大于拉电流负载能力,对于一般的51 单片机而言,拉电流最大4mA,灌电流为20mA。
一般在数码管显示电路中采用灌电流方式(用共阳数码管),可以得到更高的亮度。
本实验电路中采用拉电流方式(用共阴数码管)。
51单片机数码管时钟电路的设计
另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms,用以消除机械抖动。
MOV A, cmode
INC A
CJNE A, #07H, enmode
MOV A, #00H
enmode:
MOV cmode, A
ANL A, #04H
JZ notalapage
MOV npage, #02H
ACALL preala;时钟调整页准备
notalapage:
MOV A, cmode
MOVC A, @A + DPTR
MOV m, #00H
MOV A, h ;h
INC A
DA A
MOV h, A
CJNE A, #24H, incn
MOV h, #00H
incn:
SETB bPalse
JNB bAlaOn, alarmoff
ACALL checkala ;check alarm when alarm is ON
alarmoff:
CJNE A, #60H, notset
MOV s, #00H
SJMP notset
setae:
CPL bAlaOn ;闹钟开关
SJMP notseta
setah:
MOV A, ah ;闹钟时设置
INC A
DA A
MOV ah, A
CJNE A, #24H, notseta
关于51单片机数码管消影
关于51单⽚机数码管消影⾃学单⽚机学到中断部分,⽤数码管动态显⽰刷新频率⾼的时候会有重影,为了消除重影我查找了⽹上很多资料,好多错的。
看看原理图:百度百科:-----------------------------------------------------------------------------------------------------------74HC573是拥有⼋路输出的透明,输出为三态门,是⼀种⾼性能硅栅器件。
SL74HC573跟LS/AL573的管脚⼀样。
器件的输⼊是和标准输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
-----------------------------------------------------------------------------------------------------------数码管动态显⽰接⼝是将所有数码管的8个显⽰笔划"a,b,c,d,e,f,g,dp"的同名端连在⼀起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各⾃独⽴的I/O线控制,当单⽚机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显⽰出字形,取决于单⽚机对位选通COM端电路的控制,所以我们只要将需要显⽰的数码管的选通控制打开,该位就显⽰出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显⽰,这就是动态驱动。
在轮流显⽰过程中,每位数码管的点亮时间为1~2ms,由于⼈的视觉暂留现象及发光⼆极管的,尽管实际上各位数码管并⾮同时点亮,但只要扫描的速度⾜够快,给⼈的印象就是⼀组稳定的显⽰数据,不会有闪烁感,动态显⽰的效果和静态显⽰是⼀样的,能够节省⼤量的I/O端⼝,⽽且功耗更低。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------由上⾯可以知道,数码管要显⽰得位码和段码都分别赋值(赋值前选通控制打开,赋值后选通关闭)才⾏,位码或段码赋值完成数值⽴即被锁存,只要不重新给位码或段码赋值则锁存的值不变。
基于51单片机的电子时钟设计
时钟的基本原理分析利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
三,时钟设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。
第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。
第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。
单片机数码管静态显示及定时器和中断应用
例 利用定时/计数器T1的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。 解:1、计算计数初值X: 由于晶振为12 MHz,所以机器周期Tcy为1 s。 所以: N=t/ Tcy =10000/1=10000 X=65536-10000=55536=D8F0H 即应将D8H送入TH0中,F0H送入TL0中 2、求T1的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。 :定时/计数模式选择位。 =0为定时模式; =1为计数模式。 M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。
TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。
TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。
RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。
使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。
51单片机动态数码管实验报告
51单片机动态数码管实验报告
本文介绍了51单片机动态数码管实验的步骤和结果。
动态数码管是一种常用的数字显示器件,它可以显示数字、字母和一
些图形。
在51单片机中,为了控制动态数码管的显示,我们需要使用定
时器和中断。
作为一个经典的单片机实验,动态数码管实验是初学者熟悉51单片机开发的重要步骤之一。
本次实验使用的是常见的4位共阳极动态数码管。
电路图如下:
在电路中使用了四个PNP三极管作为驱动器,共阳极接Vcc(5V),
母线接0V,通过控制每个数码管对应的位选引脚(EN1、EN2、EN3、EN4)来实现选定要显示的数码管,再由程序向选定的数码管的a、b、c、d、e、f、g引脚发送对应的信号,以实现数字显示的功能。
程序上,我们需要使用定时器和中断来驱动动态数码管的显示。
具体
步骤如下:
1.定义计数器和数组,数组定义每位数码管显示的数字,计数器控制
当前轮到哪个数码管显示。
2.初始化定时器和中断,并启动定时器。
3.在中断函数中,将数码管的位选引脚依次拉高并依次向数码管a、
b、c、d、e、f、g中发送数据信号。
4.在每个数码管的对应位选时间内,通过对控制数组的操作,改变数
码管显示的数字。
5.循环执行第3~4步,显示不同的数字。
最后,我们通过改变控制数组的值,实现了动态数码管显示不同数字和字母的功能。
总之,通过动态数码管实验,我们进一步熟悉了51单片机的定时器和中断,了解了动态数码管的驱动原理和程序设计方法,为后续更复杂的单片机实验和应用打下了基础。
MCS-51定时计数器的应用
4
TMOD——方式控制字 方式控制字 由于LED的亮 灭是持续不断的 所以可以将 的亮/灭是持续不断的 所以可以将T1 由于 的亮 灭是持续不断的,所以可以将 计数器设成方式2,自动装入初值 重复进行计数 计数器设成方式 自动装入初值,重复进行计数, 自动装入初值 重复进行计数, T0计数器设成定时方式 、按这种方案考虑: 计数器设成定时方式1 按这种方案考虑: 计数器设成定时方式 TMOD的初值应该是 61H 的初值应该是: 的初值应该是 0 1 1 0 0 0 0 1
第四章 MCS-51定时/计数器的应用 定时/计数器是单片机应用中的重要部件, 其工作方式的灵活应用对提高编程技巧, 减轻CPU的负担和简化外围电路有很大益 处。本章通过两个实验说明定时/计数器的 基本用法,通过应用实例,使读者掌握定 时/计数器的软件设计技巧。
1
一、定时/计数器的基本用法 定时 计数器的基本用法
11
T1的定时初值应按下式计算(方式0为13位计数器) 的定时初值应按下式计算(方式0 13位计数器) 位计数器 10ms (213-X)·2μs=10ms 2μs=10 ∴X=3192=0110001111000B ∴X=3192=0110001111000B 3192 由于TL1 只装5 其余8 位装入TH 因此0 78H TH1 由于 TL1 只装 5 位 , 其余 8 位装入 TH1, 因此 0C78H TL 装入TH 时应特别小心。 装入TH1和TL1时应特别小心。 11000B 01100011 11000B I-TH1—-I I-TL1-I 实际装入情况是:63H装入TH 18H 实际装入情况是:63H装入TH1,18H 入TL1。 软件计数200= 软件计数200=0C8H 200
12
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
件A被中断的地方继续处理事件A(中断返 回),这一过程称为中断 。
MCS-51单片机的中断系统结构
主程序
中断响应
中断请求
执行主 程序
断点
继续执行 主程序
执行 中断 处理 程序
中断返回
主程序A
断点
响应 中断服务程序B
返回
……
RETI
自
低
0
然
级
优
先
级 中断入口
中断源
TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
ES 1
TI
≥1
PX0 1
0 PT0 1
0 PX1 1
0 PT1 1
0 PS 1
0
自
高
然
TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
ES 1
TI
≥1
PX0 1
0 PT0 1
0 PX1 1
0 PT1 1
0 PS 1
0
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
SCON
1、(P3.2)可由IT0(TCON.0)选择其为低电平 有效还是下降沿有效。当CPU检测到P3.2引脚上 出现有效的中断信号时,中断标志IE0(TCON.1) 置1,向CPU申请中断。
TCON
IE
IP
硬件查询
INT0 IT0 1
01
1 2 3 4 5 6 7 8
P10 P11 P12 P13 P14 P15 P16 P17
P00 P01 P02 P03 P04 P05 P06 P07
39 38 37 36 35 34 33 32
K0
P10
K4
P11
0 K1 4 K5
1 K2 5 K6
2 K3 6 K7
3 7
13 12
INT1 INT0
16 15 14 13 12 11 10
5V
9
P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8
INT1 1 3 INT0 1 2
T1 1 5 T0 1 4
31
19 18
9
RD 17 WR 16
U1
P10
P00
P11
P01
P12
P02
P13
P03
P14
P04
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
ES 1
TI
≥1
PX0 1
0 PT0 1
0 PX1 1
0 PT1 1
0 PS 1
0
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
SCON
2、(P3.3)可由IT1(TCON.2)选择其为低电平 有效还是下降沿有效。当CPU检测到P3.3引脚上 出现有效的中断信号时,中断标志IE1(TCON.3) 置1,向CPU申请中断。
而80C52单片机有四个中断优先级,即可实现四级 中断服务嵌套。每个中断源的中断优先级由中断优 先级寄存器IP和IPH中的相应位的状态来规定的 。
PX0(IPH.0),外部中断0优先级设定位; PT0(IPH.1),定时/计数器T0优先级设定位; PX1(IPH.2),外部中断1优先级设定位; PT1(IPH.3),定时/计数器T1优先级设定位; PS (IPH.4),串行口优先级设定位; PT2 (IPH.5) ,定时/计数器T2优先级设定位。
第三讲
数码管是如何显示出字符的 数码管静态显示与动态显示原理 中断概念 单片机的定时器应用
显示器及其接口
单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode)显示器、
液晶LCD(Liquid Crystal Display)显示器、CRT显示器 等。LED、LCD显示器有两种显示结构:段显示(7 段、米字型等)和点阵显示(5×8、8×8点阵等)。
然
级
优
先
级 中断入口
中断源
SCON
3、TF0(TCON.5),片内定时/计数器T0 溢出中断请求标志。当定时/计数器T0发生 溢出时,置位TF0,并向CPU申请中断。
TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
P02 P03 P04 P05 P06
1 1 P01
P00
7 4 2 11 0
3
a b c d e f g dp
DPY
a
a
a
a
f g bf g bf g bf g b
e
ce
ce
ce
c
d
d
d
d
dp
dp
dp
dp
C3
C2
C0
DPY 4 -LED
12 C4
P23 9
P22 8
P21 6
P20
LED
U1
P10 P11 P12 P13 P14 P15 P16 P17
LED数码显示方式及电路
静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示 方式。静态显示的特点是每个数码管的段选必须接一个8位 数据线来保持显示的字形码。当送入一次字形码后,显示字 形可一直保持,直到送入新字形码为止。这种方法的优点是 占用CPU时间少,显示便于监测和控制。缺点是硬件电路比 较复杂,成本较高。
引起CPU中断的根源,称为中断源。中断源向CPU提出 的中断请求。CPU暂时中断原来的事务A,转去处理事件B。 对事件B处理完毕后,再回到原来被中断的地方(即断点), 称为中断返回。实现上述中断功能的部件称为中断系统(中 断机构)。
随着计算机技术的应用,人们发现中断技 术不仅解决了快速主机与慢速I/O设备的数据 传送问题,而且还具有如下优点:
g f GNDa b a
a
b
c
f
b
g
d
e
c
e
d ·dp
f g
dp
e d GND c dp
(a)
共阴极
+5V
a
b c
d e
f g dp
(b)
共阳极
使用LED显示器时,要注意区分这两种不同的接法。为了显
示数字或字符,必须对数字或字符进行编码。七段数码管加上一
个小数点,共计8段。因此为LED显示器提供的编码正好是一个字
TCON
IE
IP
硬件查询
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
ES 1
TI
≥1
PX0 1
0 PT0 1
0 PX1 1
0 PT1 1
0 PS 1
0
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
SCON
5、RI(SCON.0)或TI(SCON.1),串行口 中断请求标志。当串行口接收完一帧串行数 据时置位RI或当串行口发送完一帧串行数据 时置位TI,向CPU申请中断。
二、中断请求标志
1、TCON的中断标志
IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
2 1 P20 2 2 P21 2 3 P22 2 4 P23 2 5 P24 2 6 P25 2 7 P26 2 8 P27
40 20 10 RXD 1 1 TXD 3 0 ALE 2 9 PSEN
R 1K
8
1 2 3 4 5 6 7
P01 P02 P03 P04 P05 P06 P07
P00
5 P07
2、SCON的中断标志
RI(SCON.0),串行口接收中断标志位。当允 许串行口接收数据时,每接收完一个串行帧,由 硬件置位RI。注意,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当 CPU将一个发送数据写入串行口发送缓冲器时, 就启动了发送过程。每发送完一个串行帧,由硬 件置位TI。CPU响应中断时,不能自动清除TI, TI必须由软件清除。