用8051单片机定时器产生乐谱的各种频率方波

用8051单片机定时器产生乐谱的各种频率方波
用8051单片机定时器产生乐谱的各种频率方波

电子科技大学微机单片机接口

指导老师:

学生:

学号:

电子科技大学机电工程学院2009年5月

单片机最小应用系统设计报告

一、设计题目 (1)

二、设计目的 (1)

三、系统硬件图 (2)

3.1 电路设计原理图 (2)

3.2 电路设计PCB图 (4)

四、程序流程图 (6)

五、系统说明与分析 (9)

5.1设计思路及设计过程 (9)

5.2系统结构及各部分说明 (9)

5.3系统连线说明 (16)

5.4系统参数分析 (17)

六、源程序 (17)

七、总结 (25)

八、参考文献 (26)

一、设计题目

用8051单片机定时器产生乐谱的各种频率方波,要求信号经过放大后由喇叭发出声音。可选取某段音乐令单片机连续播放。

二、设计目的

1、通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。

2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。

3、熟悉基本硬件电路的设计与制作。

4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。

5、学习UVISION对单片机的编程和调试方法。

6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。

7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

三、系统硬件图

3.1 电路设计原理图

整个设计主要包括单片机基本的晶振电路,按键复位电路。具体的电路图如下图所示:

对于不同的电路模块进行了分别画图:

下图是最小系统模块。

功放模块:

四乘四键盘模块:

图1 电路原理图

3.2 电路设计PCB图

本次小系统的设计要求设计的电路板实单面板,因为设计中电路板较小,二元器件的数目较多,尤其是矩阵按键部分需要的连线较多,所以本次设计的PCB 板中夹杂着几根跳线。PCB的生成,主要是在绘制好电路原理图之后,定义各个元器件的封装形式,生成网络表之后,在新建的PCB中导入网络表,即可一自动生成PCB。根据元器件之间的飞线,设置各个参数之后手动布线。本次设计的PCB图如图2所示。

图2 电路PCB图

四、程序流程图

键盘扫描程序:4X4行列式键盘识别;

音乐产生的方法;

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同

的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示

音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)

低1 DO 262 63628 # 4 FA# 740 64860

#1 DO# 277 63731 中 5 SO 784 64898

低2 RE 294 63835 # 5 SO# 831 64934

#2 RE# 311 63928 中 6 LA 880 64968

低 3 M 330 64021 # 6 932 64994

低 4 FA 349 64103 中 7 SI 988 65030

# 4 FA# 370 64185 高 1 DO 1046 65058

低 5 SO 392 64260 # 1 DO# 1109 65085

# 5 SO# 415 64331 高 2 RE 1175 65110

低 6 LA 440 64400 # 2 RE# 1245 65134

# 6 466 64463 高 3 M 1318 65157

低 7 SI 494 64524 高 4 FA 1397 65178

中 1 DO 523 64580 # 4 FA# 1480 65198

# 1 DO# 554 64633 高 5 SO 1568 65217

中 2 RE 587 64684 # 5 SO# 1661 65235

# 2 RE# 622 64732 高 6 LA 1760 65252

中 3 M 659 64777 # 6 1865 65268

中 4 FA 698 64820 高 7 SI 1967 65283

下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间

TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0

DW 0,63731,63928,0,64185,64331,64463,0,0,0

DW 0,64580,64684,64777,64820,64898,64968,65030,0,0

DW 0,64633,64732,0,64860,64934,64994,0,0,0

DW 0,65058,65110,65157,65178,65217,65252,65283,0,0

DW 0,65085,65134,0,65198,65235,65268,0,0,0

DW 0

2、音乐的音拍,一个节拍为单位(C调)

曲调值DELAY 曲调值DELAY

调4/4 125ms 调4/4 62ms

调3/4 187ms 调3/4 94ms

调2/4 250ms 调2/4 125ms 对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。

在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。

图3 程序流程图

五、系统说明与分析

5.1设计思路及设计过程

设计的主要思想:

矩阵式按键识别系统,为了节省单片机的I/O口,我们采用了一种“行扫描法”。单片机的P3口用作键盘I/O口,键盘的列线接到P3口的低4位,键盘的行线接到P3口的高4位。列线P3.0-P3.3分别接有4个上拉电阻到正电源+5V,并把列线P3.0-P3.3设置为输入线,行线P3.4-P3.7设置为输出线。4根行线和4根列线形成16个相交点。按不同位置的按键的时候,在数码管上显示相应的键值。显示部分使用数码管显示键值,单片机的P0口作为数码管的驱动口。还包括单片机的基本外围电路,晶振电路和按键复位电路。系统机构如图4所示。

图4系统结构图

软件设计主要是通过UVISION软件使用C 语言进行编程。

设计过程:

1、设计相应的电路原理图,编写C语言程序;

2、在实验箱上进行程序调试;

3、程序通过调试后,使用绘图软件PROTEL99,绘制相应的原理图,进行元器件封

装后,生成相应的PCB 图,对其进行布局整理和单面板布线;

4、打印PCB图,印制在电路板上,放入氯化铁溶液中进行腐蚀;

5、腐蚀电路板之后进行元器件的焊接工作,焊接相应的电源线;

6、通过试验箱和下载软件,将程序烧如到单片机中;

7、进行最终的软、硬件的调试,直至完成相应的功能。

5.2系统结构及各部分说明

本次设计的单片机最小系统包括:单片机AT89S51部分,矩阵按键识别部分,数码

管显示部分以及软件设计部分。下面就针对个法儿部分的特点进行简要的说明。

1、单片机部分

(1)AT89S51介绍

AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL 公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

图5 A T89S51引脚图

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S51有两种节电运行模式:空闲模式和掉电模式。

①空闲模式

在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。空闲模式可由软件设置进入(设IDL=1)。在这种模式下,片内RAM和SFR中的内容保持不变。

空闲模式可通过任何一个允许中断或硬件复位退出。

若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。片内硬件禁止访问内部RAM,但不禁止访问端口。为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令(即设IDL=1)的后面,不能是写端口或外部RAM的指令。

②掉电模式

引起掉电模式的指令是执行程序中的最后一条指令(使PD=1的指令)。在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR 中的内容保留不变,直到掉电模式结束。

退出掉电模式可用硬件复位或任何一个有效的外部中断INT0和INT1。复位可重新设置SFR中的内容,但不改变片内RAM中的内容。在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。

(2)晶振电路

图6 系统晶振电路

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路(如图6所示)。AT89S单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

(3)按键复位电路

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复

位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图7所示的复位电路可以实现上述基本功能。但解决不了电源毛刺(A 点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效 右边为低电平Sm 为手动复位开关,Ch 可避免高频谐波对电路的干扰。

图7 按键复位电路

2、矩阵按键识别部分

(1)矩阵式键盘的结构与工作原理

在键盘中按键数量较多时,为了减少I/O 口的占用,通常将按键排列成矩阵形式,如图8所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

图8 矩阵按键结构图

X3X2X1X0

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。

(2)矩阵式键盘的按键识别方法

矩阵式键盘识别按键的方法有两种: 一是行扫描法, 二是线反转法。这里只说明一下我们使用的方法“行扫描法”。

行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。

①判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

②判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

(3)按键去抖

当用手按下一个键时,如图9所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。

用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。

图9 键抖动信号波形

(4)键编码及键值

①用键盘连接的I/O线的二进制组合表示键码。例如用4行、4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4位口线的二进制数的组合表示16个键的编码,如图所示。各键相应的键值为88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。

②顺序排列键编码。如图所示。这种方法,键值的形成要根据I/O线的状态作相应处理。键码可按下式形成:键码=行首键码+列号。编码相互转换可通过计算或查表的方法实现。

3、显示电路

显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示器有:发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如右图。七段数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点。

图10 数码管

LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用静态方法进行显示,其硬件连接方式如系统原理图。

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

①静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式

之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

数码管使用条件:

①段及小数点上加限流电阻;

②使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定;

③使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA 峰值电流100mA。

4、软件设计部分

(1)键盘扫描程序的设计:

假定图中列2行1键被按下,则判定键位置的扫描过程如下:

首先是判定有没有键被按下。先使P3口输出0EH(1110),然后输入行线状态,测试行线中是否有低电平的,如果没有低电平,再使输出口输出0DH(1101),再测试行线状态。到输出口输出0BH(1011)时,行线中有状态为低电平者(行1),则闭合键找到,通过此次扫描的列线值和行线值就可以知道闭合键的位置。

当经扫描表明有键被按下之后,紧接着应进行去抖动处理。采用软件延时的方法,一般为10~20 ms,待行线上状态稳定之后,再次判断按键状态。

按键确定之后,下一步是计算闭合键的键码,我们以键的排列顺序安排键号,键码既可以根据行号列号以查表求得,也可以通过计算得到。键码的计算公式为:键码=行首号+列号。

计算键码之后,延时等待键释放,目的是为了保证键的一次闭合仅进行一次处理。

在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转相应的键处理子程序,进行字符、数据的输入或命令的处理。这样就可以实现该键所设定的功能。

总结上述内容,键处理的流程如图所示。

(2)显示程序设计

静态显示是将段码输送到相应的驱动口P0口。根据所给定的高低电平,点亮不同的段,从而显示不同的数值。

5.3系统连线说明

1、AT89S51单片机的P3口用作键盘I/O口,键盘的列线接到P3口的低4位,键盘的行线接到P1口的高4位。列线P3.0-P3.3分别接有4个上拉电阻到正电源+5V,并把列线P3.0-P3.3设置为输入线,行线P3.4-P3.7设置为输出线。4根行线和4根列线形成16个相交点。

(1)检测当前是否有键被按下。检测的方法是P3.4-P3.7输出全“0”,读取P3.0-P3.3的状态,若P3.0-P3.3为全“1”,则无键闭合,否则有键闭合。

(2)去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。

(3)若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P3.4-P3.7按下述4种组合依次输出:

P3.7 1 1 1 0

P3.6 1 1 0 1

P3.5 1 0 1 1

P3.4 0 1 1 1

在每组行输出时读取P3.0-P3.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值

(4)为了保证键每闭合一次CPU仅作一次处理,必须却除键释放时的抖动。

2、 AT89S51单片机的P1口的P1.0-P1.7端口用8芯排线连接到静态数码显示模块中的任一个a-h端口上;要求:P1.0对应着a,P1.1对应着b,……,P1.7对应着h。

根据数码(0,1,2,3,4,5,6,7,8,9)来决定七段中的某一段或某几段进行绘制,例如如果数码为0,则显示0、1、2、3、4、5段;数码为1,则显示1、2段,依次类推。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。所以数码管的类型不同设置的段码就不同。

3、AT89S51单片机的18、19脚连接系统的晶振电路。

4、AT89S51单片机的9脚节系统的按键复位电路。

5、AT89S51单片机的31脚、EA接VCC,使单片机读内部程序。

5.4系统参数分析

1、复位电路一般R取10K,C取10UF,教科书上R肯定是8.2K,都可以的,RC 越大,充电时间越长,单片机上电复位过程越长,其实RC取值不是需要特别严格。还有种说法,R=1K,C=22UF,抗干扰性更好。复位电路的电阻和电容要根据复位脉冲的宽度要求计算得到:比如如果单片机的复位脉冲要求至少20ms,高电平是5V,最大低电平为0.8V,则应按RC电路的放电(或充电)方程计算,使从5V放电到0.8V(或相反)所用的时间不小于20ms。

2、两晶振电路的小电容一般取15-30PF即可。影响不大的。理论上是用的晶体越高,应该用更小的电容。比如说12M晶体,用20PF,1M晶体,用30PF,其实日常应用,根本是没有差别的,用20、30PF都一样。

3、I/O口上拉电阻是用来提高它的带载能力的,编程后让某个I/O口置高电平,不带载应该电位就是5V,因为它的带载能力很弱,尤其这种输出为高电平带载,稍微带点负载(输出电流哪怕不到毫安级),这点电位用万用表量的话,要下降很大,接一电阻并到这个I/O口跟VCC,可以提高它的带载能力,这个电阻就叫上拉电阻。一般这个电阻取值都是1K到10K左右,注意这个电阻也不能太小啊,虽然越小上拉能力越强,但是I/O承受的灌电流越大,太大要烧I/O口的。

4、显示电路中数码管的驱动要家限流电阻,但那是限流电阻不能加的太答,一般在200欧就可以使数码管很亮,如果加的电阻太大的话数码管就会很暗。

5、矩阵按键系统最好也加上一排上拉电阻以保证气稳定性,一般选取1K 就可以。

六、源程序

/*说明

************************************************************************** 曲谱存贮格式 unsigned char code MusicName{音高,音长,音高,音长...., 0,0}; 末尾:0,0 表示结束(Important)

音高由三位数字组成:

个位是表示 1~7 这七个音符

十位是表示音符所在的音区:1-低音,2-中音,3-高音;

百位表示这个音符是否要升半音: 0-不升,1-升半音。

音长最多由三位数字组成:

个位表示音符的时值,其对应关系是:

|数值(n): |0 |1 |2 |3 | 4 | 5 | 6

STC89C52单片机定时器2的使用

STC89C52单片机定时器2的使用 实现定时和计数的方法一般有:软件定时、专用电路和可编程定时器/计数器三种方法。软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但会增加CPU 开销。专用硬件电路定时:可以实现请精确 的定时和计数,但参数调节不方波。可编程定时器/计数器:不占用CPU 时间,能与CPU 并行工作,实现精确的定时和计数,又可以通过变成设置其工作方 式和其他参数,使用方便。以下说明仅试用宏晶的STC89C52!!定时器 2:T2MOD,T2CON,TH2,TL2,RC2H,RC2L.T2MOD:0C9H(不可位寻址) 000000T2OEDCENT2OE:定时器输出使能位DECN:向上/向下计数使能位。定时器2 可配制成向上/向下计数器。0:向上计数(模式状态) 1:向下计数(尽量不使用)T2CON:0XC8H(可位寻址) TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2TF2:7 上/下溢出标志位,定时器2 溢出时置位,必须有用软件清零!当RCLK 或TCLK=1 时,TF2 将不会 置位。EXF2:6 定时器2 外部标志,当EXEN2=1 且T2EX 的负跳变产生捕获或重装时,EXF2 置位。定时器2 中断使能时,EXF2=1 将使CPU 从中断向量处执行定时器2 中断子程序。EXF2 位必须用软件清零。在递增/递减计数器 模式(DCEN=1)中,EXF2 位不会引起中断。RCLK:5 接收时钟标志。RCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的接收时钟。RCLK=0 时,将定时器1 的溢出脉冲作为串口模式1 和模式3 的接收时钟。TCLK:4 发送时钟标志位。TCLK 置位时,定时器2 的溢出脉冲作为串口模式1 和模式3 的发送时钟。TCLK=0 时,将定时器1 的溢出脉冲作为串口模 式1 和模式3 发送时钟。EXEN2:3 定时器2 外部使能标志。当其置位且定时器2 未作为串口时钟时,允许T2EX 的负跳变产生捕获或重装。

模拟电子技术课程设计产生正弦波,方波,三角波,且占空比可调,频率可调,幅度可调

模拟电子技术课程设计任务书 一、设计题目:波形发生器的设计(二) 方波/三角波/正弦波/锯齿波函数发生器 二、设计目的 1、研究正弦波等振荡电路的振荡条件。 2、学习波形产生、变换电路的应用及设计方法以及主要技术指标的测试方法。 三、设计要求及主要技术指标 设计要求:设计并仿真能产生方波、三角波及正弦波等多种波形信号输出的波形发生器。 1、方案论证,确定总体电路原理方框图。 2、单元电路设计,元器件选择。 3、仿真调试及测量结果。 主要技术指标 1、正弦波信号源:信号频率范围20Hz~20kHz 连续可调;频率稳定度较高。信号幅度可以 在一定范围内连续可调; 2、各种输出波形幅值均连续可调,方波占空比可调; 3、设计完成后可以利用示波器测量出其输出频率的上限和下限,还可以进一步测出其输出 电压的范围。 四、仿真需要的主要电子元器件 1、运算放大电路 2、滑线变阻器 3、电阻器、电容器等 五、设计报告总结(要求自己独立完成,不允许抄袭)。 1、对所测结果(如:输出频率的上限和下限,输出电压的范围等)进行全面分析,总结振荡电路的振荡条件、波形稳定等的条件。 2、分析讨论仿真测试中出现的故障及其排除方法。 3、给出完整的电路仿真图。 4、体会与收获。

1.正弦波输出电路 ,方波输出电路

,在正弦波的基础上通过LM339AD比较器稳定输出方波,可通过R15小幅调节占空比,但方波幅值不可调。R15调节范围0/100~~2/100,占空比约为0/100~~50/100之间,通过正弦波发生器中的R13可大幅度调节占空比。

3.三角波和锯齿波发生器 通过LM741CN运放,且由R18和C3组成积分电路,在方波基础上输出三角波,通过调节方波占空比可以产生锯齿波,当方波占空比为50/100时,输出三波。 4.三种波形的综合输出 一.正弦波输出波形

单片机课程设计 秒表计时器(DOC)

课程设计名称:单片机原理及接口技术 题目:基于单片机的秒表计时器设计 学期:2014-2015学年第一学期 专业:电气技术 班级: 姓名: 学号: 指导教师:

辽宁工程技术大学 课程设计成绩评定表

课程设计任务书 一、设计题目 秒表计时器 二、设计任务 本课题以单片机为核心,设计和制作一个秒表计时器。 三、设计计划 课程设计一周 第1天:查找资料,方案论证。 第2天:各部分方案设计。 第3天:各部分方案设计。 第4天:撰写设计说明书。 第5天:校订修改,上交说明书。 四、设计要求 1、绘制软件流程图并利用汇编语言编写软件程序; 2、绘制系统硬件原理图; 3、形成设计报告。 指导教师: 教研室主任: 2014年5月26 日

本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。设计任务包括控制系统硬件设计和应用程序设计。 关键词:51单片机;74HC573;LED数码管

综述 (1) 1 程序方案 (2) 1.1方案论证 (2) 1.2总体方案 (2) 2部分设计 (3) 2.1 89C51单片机 (3) 2.2晶体振荡电路 (4) 2.3硬件复位电路 (5) 2.4显示电路 (6) 2.5整体电路图 (7) 3程序设计 (8) 3.1程序流程框图 (8) 3.2显示程序流程图 (9) 3.3汇编源程序 (10) 4调试说明 (13) 4.1概述 (13) 4.2电路原理图 (13) 心得体会 (15) 参考文献 (16)

单片机方波发生器

单片机方波发生器 组成:单片机最小系统+显示屏+矩阵键盘 1. 数字输入键盘(0-9和小数点)-------11个按键 输入 2. 调整参数光标移动键(上下)----------2个按键 上下移动到需要调整的参数上 3. 参数确认键-------------------------------------1个按键 参数生效 4. 参数取消键-------------------------------------1个按键 参数更改(可无) 5. 脉冲触发输出键-------------------------------1个按键 脉冲输出 6. 信号发生器性能: 显示屏可调的参数有(同时显示三行,价格尽量低一些): 输出脉冲个数:xxxx 1-9999次(可商议) 输出脉冲宽度:xxxx.x us,步进0.05us . 最大值尽可能大 多脉冲间隔时间: xxxx.x us,步进0.05us (可以放宽到 0.1us ) 当输出单脉冲时候,间隔时间依然有效(按下触发等待时间1-5S ) 串口通讯:可以通过串口发送特定命令来输入上述信息和触发动作---本功能另外付50元,本次有没有都可以。没有付150元+硬件。 原材参考(淘宝有卖,接包方自购,买家承担100%费用):单片机最小系+显示屏(尽量不用1602) +16键矩阵键盘 期望输出波形图如下: 围0.05us---max 步进0.05us 围0.05us---max ,步 进0.05us

验收标准: 1. 接包方视频展示功能正确 2. 需求方收到实物,实际验证功能/输出正确 其他要求: 接包方自行购买所需硬件(最小系统+显示屏+按键键盘),软件内代码需做必要注释(尤其功能/参数调整部分),最终把全部功能硬件+软件源代码/执行文件一起寄送给需求方(硬件/邮费需求方支付)。 纯粹自己玩和学习,非毕业设计/成品(任意信号源成品已经很成熟且价格足够低),所 以只需要功能实现即可,对硬件没有要求。 单片机选型尽量低端的,毕竟需要另外买。

4实验四 单片机定时器的使用

姓名:学号:日期: 实验四单片机定时器的使用 一、实验名称:单片机定时器的使用 二、实验目的 1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法; 2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法; 3.掌握在Proteus环境下建立文件原理图的方法; 4.实现Proteus与Keil联调软件仿真。 三、使用仪器设备编号、部件及备件 1.实验室电脑; 2.单片机实验箱。 四、实验过程及数据、现象记录 1.在Proteus环境下建立如下仿真原理图,并保存为文件; 原理图中常用库元件的名称: 无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51 晶体振荡器:CRYSTAL 电阻:RES 按键:BUTTON 发光二极管:红色LED-RED 绿色LED-GREEN 蓝色LED-BLUE 黄色LED-YELLOW 2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件; 参考程序如下: ORG 0000H LJMP MAIN ORG H ;定时器T0的入口地址 LJMP TIMER0 MAIN: MOV TMOD,#01H

MOV R0,#05H MOV TH0,# H ;定时器的初值 MOV TL0,# H SETB ;开定时器T0的中断 SETB ;开CPU的中断 SETB ;启动定时器T0 MOV A,#01H LOOP: MOV P1,A RL A CJNE R0,#0,$ MOV R0,#05H SJMP LOOP TIMER0: DEC R0 MOV TH0,# H ;重装初值 MOV TL0,# H ;重装初值 RETI END 将以上程序补充完整,流水时间间隔为250ms。 3.将.HEX文件导入仿真图,运行并观察结果; 4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。 五、实验数据分析、误差分析、现象分析 现象:实现流水灯,时间间隔250ms,由定时器实现定时250ms。 六、回答思考题 1.定时器由几种工作模式,各种模式的最大定时时间是多少? 2.各种模式下初值怎么计算?

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态。 汇编程序: ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } } 开始 TMOD初始化 计数初值初始化 中断初始化 启动定时器 计数溢出 清计数溢出标志 Y N P1.0口线取反

频率可调的方波信号发生器设计

频率可调的方波信号发生器设计 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz, 频率误差比小于0.5%。要求用增加、减小2 个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2 秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。开机 默认输出频率为5Hz。3.5.1 模块1:系统设计(1)分析任务要求,写出系统整体设计思路任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O 管脚的状态取反。由于频率范围最高为200Hz,即每 个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8 位自动装载的工作模式。涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。问题的难点在按键连续按下超过2S 的计时问题,如何实现计时功能。系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后 在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中断程序 负责方波的产生、按键连续按下超过2S 后频率值以10Hz/s 递增(递减)。(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51 系列单片机At89S51 作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。数码管驱动采用2 个四联共阴极 数码管显示,由于单片机驱动能力有限,采用74HC244 作为数码管的驱动。在74HC244 的7 段码输出线上串联100 欧姆电阻起限流作用。独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500 欧 姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

推荐-单片机课程设计多功能定时器 精品 精品

单片机课程设计 多功能定时器 一、设计目的: 1、在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具 有综合功能的小系统目标板的设计与编程应用; 2、能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识, 在软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高; 3、使学生增进对单片机的感性认识,加深对单片机理论方面的理解。使学生掌 握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通信等; 4、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后 设计和实现单片机应用系统打下良好基础。 二、设计功能说明 数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,本设计可实现如下功能: 1、使用实时时钟芯片写入及读取时间 2、用LCD显示,可显示年、月、日、时、分、秒、星期、农历日期、节日 3、选择蜂鸣器电路,实现两个闹钟设置和事件提示功能 4、实现时钟校正功能,12小时/24小时切换功能 5、显示当前时间为上午时间或下午时间 6、整点报时功能 按键功能如下: 1、对显示时间的设置 按键0:进入设置模式,实现秒(S)、分(M)、时(H)、年(Y)、月(m)、日(D)、星期(W)设置的切换,并在LCD右下角显示所设置的项目,当各项目设置完毕后,再按下按键0则返回主界面正常显示时间; 按键1:每按一次按键1,对所设置的时间加1,当设置的时间超过它的最大值时,该项自动为0,例如:当设置秒为59时,秒自动清零; 按键2:每按一次按键:2,对所设置的时间减1,当设置的时间小于0时,该项自动为它的最大值; 按键3:设置完成后的确认键并可按此键中途退出设置,时间按用户设置值正常计时;

产生方波程序

ORG 0000H LJMP MAIN ORG 0003H LJMP KG MAIN: SETB EA ; SETB EX0 ; SETB IT0 ; CLR ET0 ; CLR TR0 ; MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH LOOP: JBC TF0, LOOP1 ;查询方式 AJMP LOOP; LOOP1:CPL P1.0 MOV TH0 ,#0FBH MOV TL0 ,#0AH LOOP3: JBC TF0, LOOP2 ; 查询方式 AJMP LOOP3 LOOP2: CPL P1.0 MOV TH0 ,#0FCH MOV TL0 ,#1CH AJMP LOOP; KG : CPL TR0; RETI END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 ORG 001BH LJMP PIOT1 MAIN: SETB EA ; SETB EX0 ; SETB ET0 SETB ET1 SETB IT0 SETB IT1

CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE :SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; RETI PIOT1:CPL P1.0; MOV TH0 ,#0FCH MOV TL0 ,#1CH RETI KG : CPL TR0 CPL TR1 END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 MAIN: SETB EA ; SETB EX0 ; SETB ET0 CLR ET1 SETB IT0 CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE:JBC TF1,LOOP SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; CLR TR0 SETB TR1 RETI

基于MCS-51单片机的频率可调的方波发生器设计

基于MC51单片机的频率可调的方波信号发生器 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。要求用“增加”、“减小”2 个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2 秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。开机默认输出频率为5Hz。 1:系统设计 (1)分析任务要求,写出系统整体设计思路 任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O 管脚的状态取反。由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8 位自动装载的工作模式。涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。 问题的难点在按键连续按下超过2S 的计时问题,如何实现计时功能。 系统的整体思路: 主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中断程序负责方波的产生、按键连续按下超过2S 后频率值以10Hz/s 递增(递减)。 (2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用MCS51 系列单片机At89S51 作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。数码管驱动采用2 个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244 作为数码管的驱动。在74HC244 的7 段码输出线上串联100 欧姆电阻起限流作用。独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。 图1 方波信号发生器的硬件电路原理图 (3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图 软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动态显示。 程序设计思路:根据定时器溢出的时间,将频率值换算为定时器溢出的次数(T1_over_num)。使用变量(T1_cnt)暂存定时器T1 的溢出次数,当达到规定的次数(T1_over_num)时,将输出管脚的状态取反达到方波的产生。主程序采用查询的方式实现按键的扫描和数码管的显示,中断服务程序实现方波的产生和连续按键的计时功能。单片机内部资源分配:定时器T1 用来实现方波的产生和连续按键的计时功能,内部变量的定义: hz_shu:设定的频率数;

单片机课程设计定时器控制4只LED滚动闪烁系统解析

目录

1设计目的 1.1设计目的 1、通过单片机课程设计,熟练掌握单片机C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。 2、通过定时器控制两个LED显示器显示10秒秒表系统的设计,掌握定时/计数器和LED显示器的使用方法,同时掌握简单程序的编写,最终提高我们的逻辑抽象能力。 1.2设计内容和要求 内容:设计一个能够控制两个LED显示器显示10秒秒表的模拟系统。 要求:利用单片机的定时器定时,控制LED显示器显示。 1.3 设计思路 1.先熟悉实验原理,了解4只LED滚动闪烁系统灯的工作过程,组成滚动闪烁系统需要的组件。 2.了解各个硬件的工作原理, 3.绘制电路原理图,编写程序,并进行仿真,基本实现LED滚动闪烁系统灯的功能。

2设计原理分析 2.1十秒秒表的系统设计 通过编写程序,实现对发光二极管的控制,来4只LED 滚动闪烁灯的管理。每延时一段时间,灯的显示情况都会按LED 灯的显示规律进行状态转换。采用单片机内部的I/O 口上的P0口中的4个引脚即可来控制4个LED 灯。 2.2十秒秒表的功能要求 本设计能模拟基本的LED 滚动闪烁系统,是用中断的方式定时控制LED 定的闪烁及滚动。 2.2.1计时显示 定时/计数器工作方式寄存器,定时器采用T0定时器0工作于模式2 位数:8位计数范围:0-255 具有自动加载功能 2.2.2中断设置 每累计若干次定时器中断才执行一次闪烁。 2.3定时器控制4只LED 滚动闪烁制系统的基本构成及原理 单片机设LED 灯闪烁系统,可用单片机直接控制信号灯的状态变化可以广泛的应用到商业和工业的流程控制测电路当中。 图2.1 系统的总体框图 据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图如上所示。因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1 的溢出率和SMOD 的值(PCON.7------双倍速波特率)决定:

C51单片机定时计数器应用编程归纳总结

C51 T and C ● 80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1。 ● 对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。 ● 计数器由二个8位计数器组成。 ● 定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。 ● 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚Tx(P3.4、P3.5)输入。且外部脉冲的最高频率不能超过时钟频率的1/24 一、定时/计数器的结构 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 二、定时/计数器的工作原理 加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON 中TF0或TF1置1,向CPU 发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N 乘以机器周期Tcy 就是定时时间t 。 设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz 时,最高计数频率不超过1/2MHz ,即计数脉冲的周期要大于2 s 。

LM358做可调方波发生器

如何用LM358做可调方波发生器 阅读: 10260 | 回复: 5 六 2008/11/17 22:16:29 1 ywshgyw LV1 士兵 因为需要,想用LM358做一个28-400Hz 可调的,占空比为50%的方波发生器,网上找了点资料,搭了一下最后只调出一个50Hz 的方波 (是不是市电干扰 的缘故),想请教大家一下这个电路用LM358可行吗?有没有更好的办法?(原理图上是用双电源,我用单电源可行吗?) 另外有刚刚找了两张图,还没实验过,不知道可行否

先谢大家了! 标签LM 回复1帖 复制地址 收藏该帖 五2008/11/18 18:36:26 2 ywshgyw LV1 士兵

试过可以了回复2帖 四2008/12/02 20:40:14 3 xuetu LV2 班长 用图一好些 回复3帖 三2011/09/01 13:47:47 4 ouyjangxi LV2 班长 请教该电路计算公式望推荐 回复4帖 二2012/04/19 20:20:29 5 jzyhappy LV2 班长

500) {this.resized=true; this.width=500; this.alt=这是一张缩略图,点击可放大。 \n 按住CTRL ,滚动鼠标滚轮可自由缩放;this.style.cursor=hand}" height=169 jQuery1334838395859="19"> 这一款的频率 应该怎么计算呢? 或是: 正比于 输入电压信号(V+) ? 谢谢! 回复5帖 一2013/10/23 15:31:46 6 火云鞋刷 LV1 士兵 偶而看到这个帖子,试了一下,频率和电容成反比 回复6帖

单片机的课程设计_30秒定时器

目录 一、篮球计时器作用 (1) 二、设计的具体实现 (1) 1.系统概述 (1) 1.1总体设计思路及方案 (1) 1.2流程图 (3) 1.3计数原理 (3) 1.4定时器工作方式 (4) 2.单元电路设计 (6) 2.1 8051单片机 (6) 2.2两个基本电路 (8) 2.3八段数码管的驱动方式.......................错误!未定义书签。 3.软件程序设计 (9)

单片机的定时器设计 一、篮球计时器的作用 在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就视为犯规。本课程设计的“篮球竞赛24秒定时器”,可用于篮球比赛中对球员持球时间作24秒时间限制。一旦球员的持球时间超过了24秒,它自动报警,从而判定此球员犯规。 二、设计的具体实现 1.系统概述 1.1总体设计思路及方案 图1.1.1 总设计图

流程图:

最小系统,就是最简单的输出/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。单片机的最小系统包括晶振电路复位电路和电源,这时最小系统基本组成当然还可以添加矩阵键盘数码管等。 此实验的原理是,利用单片机的最小系统,通过锁存器74HC573控制数码管,来实现30秒定时器的功能。 图1.1.2最小系统 1.2计数原理 80C51单片机部设有两个16位的可编程定时器/计数器。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 1.2.1定时器/计数器的结构 16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过部总线和控制逻辑电路

基于MCS-51单片机的可调频率方波发生器课程设计报告[1]

单片机课程设计报告 设计题目:频率可调方波发生器 专业班级:生物医学工程09班 组长:李建华 组员:梁国锋,赖水兵,郭万劲,李建华2010 年 06 月 16日

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

单片机定时器2的使用

/*----------------------------------------------- 名称:定时器2 内容:通过定时让LED灯闪烁,数据口为:P0口 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sfr T2MOD=0xC9; //定时器2模式控制寄存器地址;可以在头文件中定义 /*------------------------------------------------ 定时器初始化子程序 ------------------------------------------------*/ void T2_init(void) { T2CON=0; //配置定时器2控制寄存器,这里其实不用配置,T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置 T2MOD=0; //配置定时器2工作模式寄存器,这里其实不用配置,T2MOD 上电默认就是0,这里赋值只是为了演示这个寄存器的配置 RCAP2H = (65536-60000)/256;//晶振12M 60ms 16bit 自动重载 RCAP2L = (65536-6000)%256; ET2=1; //打开定时器中断 EA=1; //打开总中断 TR2=1; //打开定时器开关 } /*------------------------------------------------ 主程序 ------------------------------------------------*/ main() { T2_init(); while(1); } /*------------------------------------------------ 定时器中断子程序 ------------------------------------------------*/ void T2_ISR(void) interrupt 5 using 1//定时器2中断 { //自动重装,无需再次赋初值! TF2=0;//!!!注意!!! 定时器2必须由软件对溢出标志位清零,硬件不能清零,这里与定时器0和定时器1不同!!! P0=~P0; }

单片机课程设计音乐闹钟定时器

目录: 0、任务书 (2) 1、系统总体设计方案规划与选定 (2) 2、硬件设计 (5) 3、软件设计 (6) 4、调试 (8) 5、新增功能及实现方法 (8) 6、小结与体会 (9) 7、参考文献 (9) 8、附录 (10)

0.任务书 基于51单片机设计一个电子数字钟,显示时、分、秒,且具有闹钟功能。用8255接口实现4*8键盘及8位LED显示。 32个键:0~9共10个键,调时(设置当前时间)键;设定闹钟(定时)键;走时键;光标左右移动各一个键。 要求键复位后,应该最后面的LED上显示H(待命状态)。 1. 系统总体设计方案规划与选定 1.1主控制芯片选择 方案一:采用ARM微处理,做主控芯片,计算速度快,缺点;成本高,控制较复杂,不容易焊接。 方案二:采用80C51单片机做主控制器,由单片机来完成采集和信号处理等底层的核心计算,做主控芯片,成本低,易控制,易实现。 经过以上两个方案比较,在此题方案二明显优于方案一,故采用80C51单片机做主控制器。 1.2定时模块选择 方案一:采用时钟芯片DS1302。 DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录,且较单片机计时简单节约硬件资源,但存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。 方案二:采用单片机内部的定时系统,外接晶振进行分频脉冲计数。

此系统采用12MHz晶振。 由于方案二使用简单,比方案一更适用该系统设计,所以选择方案二。 1.3 LED显示及计时模块选择 方案一:74LS192计数器——74LS47七点显示译码器 74LS192芯片是一块可预置数可逆计数芯片,功能强大。将74LS192芯片CPU引脚接高电平可实现减法计数,以倒计时显示。可通过74LS47与LED共阳极数字显示器配合使用。 方案二:使用移位寄存器74HC595与译码器相连 74HC595具有8位移位寄存器和一个存储器,使用时可直接与数字显示器相连。 方案三:使用8255扩展LED显示计时模块 8255是一个可编程并行接口芯片,有一个控制口和三个8位数据口,外设通过数据口与单片机进行数据通信,各数据口的工作方式和数据传送方向是通过用户对控制口写控制字控制的。我们用到了A与B口分别进行对数码显示管的片选和段选,且B口同时作为键盘扫描模块的输入口,与数码显示模块分时复用。故采用方案三 1.4蜂鸣器的选择 方案一:电磁式蜂鸣器 电磁式蜂鸣器主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。对于不同提示音且考虑实际,此种较好。 方案二: 压电式蜂鸣器

STC89C52单片机定时器2的使用

52单片机有3个定时器,T2是一个16位自动重载的,像T0和T1的方式2一样,只不过它是16位重载,如果作为计数器或定时用,中断用的是5,就是interrupt 5,T2的引脚是P1.0口。P1.0作为I/O 口用了以后T2计数是不行了,不过定时或是作为串口时钟还是可以的。 T2CON(T2的控制寄存器),字节地址0C8H: 0CFH 0CEH 0CDH 0CCH 0CBH 0CAH 0C9H 0C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RT2 各位的定义如下: TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。 EXF2:当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。EXF2也是只能通过软件来清除的。RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器 TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器 EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外部 时钟触发T2,当T2EX引脚输入一个负跳变的时候,将引起T2的捕获 或重装,并置位EXF2,申请中断。 TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2 C/T2:T2的定时方式或计数方式选择位。只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发。CP/RT2:捕获/重装载标志,只能通过软件的置位或清除。CP/RT2=0时,选择重装载方式,这时若T2溢出(EXEN2=0时)或者T2EX引脚(P1.0)出现负跳变

课程设计-单片机定时器的设计

摘要 单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU 随机存储器RAM、只读存储器ROM、多种I/O 口和间断系统、定时器/计时器等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完竣的计较机系统。单片机具有特点具有良好的性能价格比;低电压、低功耗;集成度高、体积小、可靠性高;控制成果强等优点。 计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。中断需要解决两个主要问题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程序。 关键词:单片机,中断,延时

目录 1.设计目的 (1) 2.设计任务的内容和要求 (1) 3.设计原理 (1) 4.程序说明 (3) 5.心得体会 (6)

定时器试验 1.设计目的 (1)熟练运用汇编语言编程,并且掌握键盘查表来运行相应的功能 (2)熟悉启东硬件仿真系统,熟练应用该系统调试软件 (3)熟悉单片机应用系统的组成,并能运用程序控制外部流水灯 2.设计任务的内容和要求 (1)初始化定时器,使之采用定时器0,方式2,定时100us时间 (2)通过设置中断,产生总时间为1秒 (3)1秒时间到,控制发光二极管点亮 3.设计原理 在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。 MCS-51单片机由两个可编程定时/计数器(以下简称T/C)。T0,T1 T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。T0,T1是2 个16位寄存器。加1到满溢出产生中断 T0(TH0,TL0);8CH,8AH地址不连续 T1(TH1,TL1);8DH,8BH 都具有定时或者计数功能。 图一 图一有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。C/T=0表示定时,C/T=1表示计数。 当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。 如果主频12M,机器周期为1us,每1us定时寄存器完成1次加1操作。一旦振荡周期确定,机

单片机输出方波及显示宽度

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华 学生:冯焕焕 学号:1000150301

前言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新.在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善. 单片机是指在一个芯片上集成了中央处理器、存储器和各种I/O接口的微型计算机,它主要面向控制性应用领域,因此又称为嵌入式微控制器。单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域。 本次课程设计目的主要是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 本课程设计实在学完单片机原理及课程之后综合利用所学单片机只是完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理和应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获的初步的应用经验,为以后从事生产和科研工作打下一定的基础。 摘要

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。利用定时器T0定时T1计数来测量由P3.5口输入的脉冲信号的频率。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示时采用动态扫描的方式将将各位数的BCD码依序输入到LED中,并连续扫描2秒钟。通过采用STC89C52RC 单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。 关键词: 门控信号GATE;脉冲宽度;扩展测量范围;脉冲频率 ABSTRACT

相关文档
最新文档