单片机外部中断1是如何控制外部电路的?

ht46f49e单片机外部电路和端口的体系结构讲解
> ht46f49e单片机外部电路和端口的体系结构讲解
ht46f49e单片机外部电路和端口的体系结构讲解
, 62, 62); font-family: Tahoma, Arial, sans- font-size: 14 text-align: ">单片机电路设计时,经常使用上拉电阻。所谓上拉电阻就是在某个输入端口上连接一个阻值较大的电阻至电源,而下拉电阻则是通过电阻与地连接。上拉电阻(或下拉电阻)可以实现输入信号置高(或低)以避免浮接状态(有些输入信号在外部器件没有工作时,对外呈现高阻状态,此时端口状态不确定)。盛群单片机内部每个i/o口都可以在芯片内部连接一个上拉电阻,避免外部上拉电阻的使用。(要使用内部上拉电阻,必须在芯片配置中说明,参考HT-ide3000的使用)本文引用地址:此外,必须注意的是,PFD、TMR、INT分别与PA3,PA4、PA5 共用引脚。PFD是Programmable Frequency Divider的字头,当该引脚设定为输出模式时,该引脚可以根据定时器的溢出产生一定频率的方波信号(实际为定时器溢出频率的一半)。该功能非常适合于产生音乐、音调信号。后面教程的电子钢琴和奏乐程序将重点介绍该功能。TMR是Timer/Event Count的字头,通过该功能单片机可以对外部的脉冲信号计数,这个功能在测控领域用处很大;INT则是Interrupt的缩写,就是外部中断功能。2.PB端口PB为8 位双向输入/输出口。功能可由软件设置为CMOS 输出、带或不带上拉电阻(由上拉电阻选项决定)的斯密特触发输入。注意四路A/D 输入与PB 口共用引脚(PB0~PB3)。一旦PB 作为 A/D输入(由软件设置),则相应输入/输出功能和上拉电阻会自动失效。3.PC端口5 位双向输入/输出口。可由软件设置为 CMOS 输出、带或不带上拉电阻(由上拉电阻选项决定)的斯密特触发输入。4.PD端口2 位双向输入/输出口。可由软件设置为 CMOS 输出、带或不带上拉电阻(由上拉电阻选项决定)的斯密特触发输入。PWM输出与PD0 或PD1 共用引脚(由PWM选项决定),PWM是英文pulse-width-modulation的缩写,即单片机可以从PD0或PD1输出占空比可以调节的方波信号,频率则由软件设定。
电路相关文章:
单片机相关文章:
单片机相关文章:
单片机相关文章:
晶振相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一上图单片机是如何显示时间的?它没有用到外部时钟电路,它怎么计时?下图用到了外部时钟电路可以计时_百度知道
上图单片机是如何显示时间的?它没有用到外部时钟电路,它怎么计时?下图用到了外部时钟电路可以计时
p><a href="http.baidu.baidu.jpg" esrc="http://g.baidu.hiphotos://c.com/zhidao/wh%3D600%2C800/sign=9de716fe1d30e924cff23e//zhidao/pic/item/95eef01f3a292df5b68ba6e3be315cff.hiphotos://g./zhidao/pic//zhidao/wh%3D450%2C600/sign=33ee72ce6c061d957d133f3c4ec426e7/dcc451da81cb39db2c126ca0d3071://c.hiphotos
提问者采纳
不用外部时钟芯片,当然也是可以设计时钟的,就是用单片机的定时器来做。
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
那个外部晶振是可有可无的,就算是画了。只是省略而已。下面的图是你自己画的吧,其实还可以省掉复位电路的。这些只是在proteus中,实际上也是不起作用的上图是你刚才的提问的吧,这种画法只限于在proteus 中画单片机的仿真图,不过是个装饰品,它可以省掉外部晶振的,有了,在实物上是不可以的
来自:求助得到的回答
上面的图是利用Proteus软件做的仿真,是默认的有外部时钟,可以不用额外添加。
时钟电路的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机及外围电路组成的四层楼电梯自动控制系统_单片机_毕业设计论文网
未找到您最近浏览过的网页历史浏览记录
热门搜索词: |
全部设计论文分类
本站所有出售的 资料均严格保密无重复,出售过后会做详细的记录避免重复,
QQ临时会话 可能会导致消息无法正常接收,咨询前请务必先加客服为好友.QQ:
本站提供的资料 都是已经做好的,现成的作品都是审核过的,保证质量和规范.
单片机及外围电路组成的四层楼电梯自动控制系统
以下是大纲或介绍,如需要完整的资料请购买.
本站资料均已反复审核通过,内容原创保密,标准格式,质量保证.
1.无需注册,点击在线购买后即可获取该完整资料
2.购买后提供下载链接或联系客服发送资料.
摘& 要:本论文主要介绍的是电梯自动控制模型,硬件部分我们使用的是及外围电路组成高度为四层楼的电梯控制系统。采用AT89C51,晶体振荡器选6MHz,C51、C52为30uF瓷片电容与晶体振荡器形成时钟电路。电容C53、电阻R51、R52和按键RESET构成上电复位和手动复位电路。软件部分采用了两种控制方案,简易控制方案只是简单的电梯上升下降,在各楼层短暂停留。而进一步控制方案则考虑各楼层的信号请求,以完成各楼层的升降控制。该系统具有工作稳定,操作简单等优点。(毕业设计网 )
〖资料来源:咨询QQ: 毕业设计(论文)网 〗
关键词:电梯, AT89C51单片机,共阴极数码管,CD4511译码器,发光二极管设计要求采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。电梯内电路由FS1、FS2、FS3和FS4四个发光二极管作为指示灯,电梯模型上电后,电梯的起始位置为一楼,等待控制台Start按键按下,数码管显示“1”。当Start按键按下后,电梯开始向上运动,控制台的上升指示灯UP亮。2s后到达二楼,数码管显示“2”并在二楼停留5s,然后继续上升。每层楼停留5s,直到四楼。在四楼停留5s后开始下降,控制台的指示灯DOWN亮。每层楼停5s,直到一楼。然后重复上述过程。如果在一个上下循环中按下过Stop键,电梯下降到一楼后停止工作。直到再次按下Start键后重新恢复工作设计方案电梯控制系统由各层楼的电梯间电路、电梯内电路和控制台电路三部分组成。电梯在各楼层的定位本应采用行程开关,考虑到模型的操作性,采用延时控制。相邻楼层间升降设定为2S。1)各楼层的电梯间电路二、三层的电路间均有“上升”和“下降”选择按键,一楼只有“上升”按键,四楼只有“下降”按键,每个按键配一只发光二极管,作为指示灯。2)电梯内部电路目标楼层1――4选择按键配又相应的指示灯。3)控制台电路 〖资料来源:毕业设计(论文)网 〗 (1)两个按键用于手动控制。控制电路的“开始运行”和“停止运行”(2)两个指示灯,分别指示电梯的升降情况。(3)一只数码管,用于显示电梯当前所在的楼层。4)控制方案(1)简单控制方案工作原理:控制台按下START键后,通过AT89C51单片机的控制使得电梯运行,该系统中电梯运行时不受各楼层的控制和影响往复运动,只有在控制台按下STOP键后,电梯降到一楼停止,等待控制台再次启动。该系统使用数码管显示当前楼层。(2)进一步控制方案工作原理:工作台启动电梯,单片机检测各楼层信号请求控制电梯运动,电梯动作完成后数码管显示所在楼层,同时单片机再次检测各楼层请求信号,使的电梯再次动作,直到控制台停止电梯,电梯降到一楼后停止,等待控制台再次启动电梯。单片机采用AT89C51单片机及外围电路组成高度为四层楼的电梯控制系统。AT89c51是一种低功耗高性能的8位单片机,片内带有一个4k字节的flash可编擦除只读存储器(perom),它采用了cmos工艺和atmel公司的高密度非易失性存储器(nuram)技术,而且其输出引脚和指令系统和mcu_51系列单片机兼容。片内的flash存储器允许在系统内可改编程序或用常规的非易失性的存储器编程器来编程。同时已具有三级程序存储器保密的性能。 〖资料来源:毕业设计(论文)网
咨询QQ:〗 第一章&引言 …………………………………………………………………………2第二章&设计要求 ……………………………………………………………………2第三章&设计方案 ……………………………………………………………………3第四章&硬件设计 ……………………………………………………………………54.1 单片机 …………………………………………………………………54.2 各楼层电梯间电路 ……………………………………………………9&&&&&& 4.3 电梯间电路&& …………………………………………………………12&&&&&& 4.4 控制台电路 ……………………………………………………………13&&&&&& 4.5 单片机电路 ……………………………………………………………16 〖资料来源:毕业设计(论文)网 〗 &&&&&& 4.6 电路PCB图 ……………………………………………………………17第五章 软件设计&& …………………………………………………………………19&&&&&& 5.1 简易控制方案 …………………………………………………………19&&&&&& 5.2 进一步控制方案 ………………………………………………………22&&&&&&&&&& 5.2.1 控制逻辑流程图 ………………………………………………22&&&&&&&&&& 5.2.2 说明 ……………………………………………………………25&&&&&&&&&& 5.2.3 参考程序 ………………………………………………………26(毕业设计网 ) 第六章 软硬件系统的调试&& ………………………………………………………31&&&&&& 6.1 软件调试 ………………………………………………………………31&&&&&& 6.2 硬件调试 ………………………………………………………………32 〖资料来源:咨询QQ: 毕业设计(论文)网 〗 第七章 结束语&& ……………………………………………………………………33毕业设计总结&&&&& …………………………………………………………………34参考文献&&&&& ………………………………………………………………………36 〖来源:毕业设计(论文)网
咨询QQ:〗
相关内容:
本站提供的资料属原创,内容严格把关,均审核通过的,保证质量和规范.
提供下载链接或发送至您的邮箱,资料可重复发送,确保您收到为止.
收到资料后若有任何疑难问题,均可通过本站客服提供帮助解决.
我们确保发送的资料完整无损,如核实为不合格资料,可以申请退换.
提示: QQ临时会话可能会导致消息无法正常接收,请咨询前务必先加客服为好友。
本站所列毕业设计(论文)资料均属于原创者所有,初衷是为大家在毕业设计(论文)过程中参考和学习交流之用,请勿做其他非法用途,转载必究,如有侵犯您的权利或有损您的利益,请联系本站,经查实我们会立即进行修正或删除相关内容!
Copyright &
苏ICP备号 |&&/&&&&/&&&&/&&
蜂鸣器从结构区分分为压电式蜂鸣器和电磁式蜂鸣器。压电式为压电陶瓷片发音,电流比较小一些,电磁式蜂鸣器为线圈通电震动发音,体积比较小。
按照驱动方式分为有源蜂鸣器和无源蜂鸣器。这里的有源和无源不是指电源,而是振荡源。有源蜂鸣器内部带了振荡源,如图 9-8 所示中,给了 BUZZ 引脚一个低电平,蜂鸣器就会直接响。而无源蜂鸣器内部是不带振荡源的,要让他响必须给 500Hz~4.5KHz 之间的脉冲频率信号来驱动它才会响。有源蜂鸣器往往比无源蜂鸣器贵一些,因为里边多了振荡电路,驱动发音也简单,靠电平就可以驱动,而无源蜂鸣器价格比较便宜,此外无源蜂鸣器声音频率可以控制,而音阶与频率又有确定的对应关系,因此就可以做出来&do re mi fa sol la si&的效果,可以用它制作出简单的音乐曲目,比如生日歌、两只老虎等等。
图 9-8& 蜂鸣器电路原理图
我们来看一下图 9-8 的电路,蜂鸣器电流依然相对较大,因此需要用三极管驱动,并且加了一个 100 欧的电阻作为限流电阻。此外还加了一个 D4 二极管,这个二极管叫做续流二极管。我们的蜂鸣器是感性器件,当三极管导通给蜂鸣器供电时,就会有导通电流流过蜂鸣器。而我们知道,电感的一个特点就是电流不能突变,导通时电流是逐渐加大的,这点没有问题,但当关断时,经&电源-三极管-蜂鸣器-地&这条回路就截断了,过不了任何电流了,那么储存的电流往哪儿去呢,就是经过这个 D4 和蜂鸣器自身的环路来消耗掉了,从而就避免了关断时由于电感电流造成的反向冲击。接续关断时的电流,这就是续流二极管名称的由来。
蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个 4KHZ 频率下的发声和 1KHZ 频率下的发声程序,同学们可以自己研究下程序,比较下实际效果。
#include &reg52.h&
sbit BUZZ = P1^6; //蜂鸣器控制引脚
unsigned char T0RH = 0; //T0 重载值的高字节
unsigned char T0RL = 0; //T0 重载值的低字节
void OpenBuzz(unsigned int frequ);
void StopBuzz();
void main(){
TMOD = 0x01; //配置 T0 工作在模式 1,但先不启动
while (1){ //使能全局中断
OpenBuzz(4000); //以 4KHz 的频率启动蜂鸣器
for (i=0; i&40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i&40000; i++);
OpenBuzz(1000); //以 1KHz 的频率启动蜂鸣器
for (i=0; i&40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i&40000; i++);
/* 蜂鸣器启动函数,frequ-工作频率 */
void OpenBuzz(unsigned int frequ){
//计算所需的定时器重载值
reload = 65536 - ()/(frequ*2); //由给定频率计算定时器重载值
T0RH = (unsigned char)(reload && 8); //16 位重载值分解为高低两个字节
T0RL = (unsigned char)
TH0 = 0xFF; //设定一个接近溢出的初值,以使定时器马上投入工作
TL0 = 0xFE;
ET0 = 1; //使能 T0 中断
TR0 = 1; //启动 T0
/* 蜂鸣器停止函数 */
void StopBuzz(){
ET0 = 0; //禁用 T0 中断
TR0 = 0; //停止 T0
/* T0 中断服务函数,用于控制蜂鸣器发声 */
void InterruptTimer0() interrupt 1{
TH0 = T0RH; //重新加载重载值
TL0 = T0RL;
BUZZ = ~BUZZ; //反转蜂鸣器控制电平
另外用蜂鸣器来输出音乐,仅仅是好玩而已,应用很少,里边包含了音阶、乐谱的相关内容,程序也有一点复杂,所以就不详细给大家去讲解了。仅提供一个可以播放《两只老虎》的程序,大家可以下载到板子上玩玩,满足一下好奇心。
#include &reg52.h&
sbit BUZZ = P1^6; //蜂鸣器控制引脚
unsigned int code NoteFrequ[] = { //中音 1-7 和高音 1-7 对应频率列表
523, 587, 659, 698, 784, 880, 988, //中音 1-7
, , , 1976 //高音 1-7
unsigned int code NoteReload[] = { //中音 1-7 和高音 1-7 对应的定时器重载值
65536 - () / (523*2), //中音 1
65536 - () / (587*2), //2
65536 - () / (659*2), //3
65536 - () / (698*2), //4
65536 - () / (784*2), //5
65536 - () / (880*2), //6
65536 - () / (988*2), //7
65536 - () / (1047*2), //高音 1
65536 - () / (1175*2), //2
65536 - () / (1319*2), //3
65536 - () / (1397*2), //4
65536 - () / (1568*2), //5
65536 - () / (1760*2), //6
65536 - () / (1976*2), //7
bit enable = 1; //蜂鸣器发声使能标志
bit tmrflag = 0; //定时器中断完成标志
unsigned char T0RH = 0xFF; //T0 重载值的高字节
unsigned char T0RL = 0x00; //T0 重载值的低字节
void PlayTwoTiger();
void main(){
EA = 1; //使能全局中断
TMOD = 0x01; //配置 T0 工作在模式 1
TH0 = T0RH;
TL0 = T0RL;
ET0 = 1; //使能 T0 中断
TR0 = 1; //启动 T0
while (1){
PlayTwoTiger(); //播放乐曲--两支老虎
for (i=0; i&40000; i++); //停止一段时间
/* 两支老虎乐曲播放函数 */
void PlayTwoTiger(){
//当前节拍索引
//当前节拍对应的音符
unsigned int time = 0; //当前节拍计时
unsigned int beatTime = 0; //当前节拍总时间
unsigned int soundTime = 0; //当前节拍需发声时间
//两只老虎音符表
unsigned char code TwoTigerNote[] = {
5,6, 5,4, 3, 1,
5,6, 5,4, 3, 1,
//两只老虎节拍表,4 表示一拍,1 就是 1/4 拍,8 就是 2 拍
unsigned char code TwoTigerBeat[] = {
3,1, 3,1, 4, 4,
3,1, 3,1, 4, 4,
//用节拍索引作为循环变量
for (beat=0; beat&sizeof(TwoTigerNote); ){
while (!tmrflag); //每次定时器中断完成后,检测并处理节拍
tmrflag = 0;
if (time == 0){ //当前节拍播完则启动一个新节拍
note = TwoTigerNote[beat] - 1;
T0RH = NoteReload[note] && 8;
T0RL = NoteReload[note];
//计算节拍总时间,右移 2 位相当于除 4,移位代替除法可以加快执行速度
beatTime = (TwoTigerBeat[beat] * NoteFrequ[note]) && 2;
//计算发声时间,为总时间的 0.75,移位原理同上
soundTime = beatTime - (beatTime && 2);
enable = 1; //指示蜂鸣器开始发声
}else{ //当前节拍未播完则处理当前节拍
//当前持续时间到达节拍总时间时归零,
//并递增节拍索引,以准备启动新节拍
if (time &= beatTime){
}else{ //当前持续时间未达到总时间时,
time++; //累加时间计数
//到达发声时间后,指示关闭蜂鸣器,
//插入 0.25*总时间的静音间隔,
if (time == soundTime){
enable = 0; //用以区分连续的两个节拍
/* T0 中断服务函数,用于控制蜂鸣器发声 */
void InterruptTimer0() interrupt 1{
TH0 = T0RH; //重新加载重载值
TL0 = T0RL;
tmrflag = 1;
if (enable){ //使能时反转蜂鸣器控制电平
BUZZ = ~BUZZ;
}else{ //未使能时关闭蜂鸣器工具类服务
编辑部专用服务
作者专用服务
基于单片机的外部扩展电路控制
  为了扩展单片机的存储资源及串口,采用基于单片机(AT89S52-24PI)外部存储器的扩展及基于单片机控制的多通道串口扩展电路设计及具体实现方法。并以双端口存储器IDT70V261S25PFI和串行通讯控制器TL16C754BPN及以C51系列单片机软件开发环境KeilμVision4为例实现单片机的外部电路控制。实验结果表明,该方案接口简单、使用方便、稳定可靠。
Abstract:
In order to storage resources and serial port expansion chip,based on MCU (AT89S52-24PI) external memory expansion and based on multi-channel serial MCU control circuit design and realization method of expansion.And with the dual port memory IDT70V261S25PFI and serial communication control er TL16C754BPN and C51 series single-chip microcomputer software development environment KeilμVision4 for example the realization of the external circuit of the single chip control.The experimental results show that, this scheme has simple interface, easy to use,stable and reliable.
XU Jie-jing
作者单位:
陕西黄河集团有限公司,陕西,西安,710043
年,卷(期):
Keywords:
机标分类号:
在线出版日期:
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社

我要回帖

更多关于 单片机外部中断1 的文章

 

随机推荐