单片机at89c51 如何使之单口产生vdd 1/2vdd 0的输出?

作者&投稿:圭疮 (若有异议请与网页底部的电邮联系)
单片机AT89C51编汇报警信号:用P1.0输出1KHz和2KHz的音频信号驱动扬声器,作报警信。~

;用P1.0输出1KHz和500Hz的音频信号驱动扬声器, ;要求1KHz信号响100ms,500Hz信号响200ms,交替进行. ORG 0000H JMP MAIN ORG 0030H MAIN: CALL BP1K CALL BP500 SJMP MAIN ;------------------------- BP500: MOV R6, #200 BP50: CPL P1.0 CALL DL500US CALL DL500US DJNZ R6, BP50 RET ;------------------------- BP1K: MOV R6, #200 BP10: CPL P1.0 CALL DL500US DJNZ R6, BP10 RET ;------------------------- DL500US: MOV R7, #247 DJNZ R7, $ RET ;------------------------ END 上述程序经过实验,可以满足题目要求。

COUNT EQU 30H

ORG 0000H
SJMP START
ORG 000BH
INC COUNT
RETI

START:
MOV TMOD, #06H
MOV TH0, #156
MOV TL0, #156
SETB TR0
MOV IE, #82H

SJMP $

END

at89C51单片机的一个I/O位,只能输出高/低两种状态。若可以利用2个I/O引脚,配合搭建外部电路是可以实现题目要求的功能的。但如果使用的是采购的成品单片机模块,追加外部扩展电路会要增加一起工作。
如果是完全自己设计单片机电话,有一个简单可行的办法。现在一些厂家出产的51系列兼容单片机,在芯片内部中集成了DA转换器,利用DA转换器输出脚(一般都是与I/O引脚复用),可以方便地实现在一条引脚上输出不同的电压。只耍选择一款符合要求的单片机,就可以通过程序控制DA输出电压,实现题目要求。

单片机IO口要产生1/2VDD(或者用ⅠO口驱动液晶屏),需要单片机IO口具有高阻态(开路)设置功能(STC系列单片机就可以做到ⅠO口输出1/2VDD,不过ⅠO口需要加上下拉电阻),一般驱动液晶屏需要用四个ⅠO口加上下拉电阻(用8个100K电阻做过液晶驱动),需要配合软件对IO口的设置(就是定时对IO口进行 开漏与推挽输出的转换设置,就可以完成对液晶屏的驱动。

显然这是一个比较有挑战性且看似不可能实现的问题,但是我想如果对输出波形的质量要求不高,可以尝试用时间换空间的方法实现,即采用PWM方式实现,思路有了实现就很简单了,只要用50%占空比的方波输出去实现1/2Vdd,其它就不是问题了。

单片机IO只能两态输出,你这个要求三态变化了,一个普通IO是实现不了的。可以外接DA(如果时序周期过短,无法用此法实现)或用两个IO推挽外部硬件实现。

老铁没什么要求的话,用单片机控制三极管开关电路,可以钳压,电阻分压,可参考ttl电路


单片机的种类是AT89C51单片机?
AT89C51具有片内E2PROM,是真正的单片机,由于不需要外接EPROM,所以应用非常普遍。8031、8051片内没有EPROM,但它价格很低,软硬件系统开发成熟,所以应用也非常广泛。目前51系列的产品大多是8031、8051和AT89C51等。除了Intel公司,还有Atmel、Winbond、Philips、TEMIC、ISSI和LG等公司都生产兼容80C51的产品。...

STC89C51与AT89C51的区别?
1、STC89C51在AT89C51的基础上加入了AD数模转换,集成程度更高;AT89C51是老式的255位单片机 2、STC89C51是宏晶公司生产;AT89C51是Atmel公司生产。3、STC89C51可以在线编程,即有ISP功能;而AT89C51必须通过编程器编程。4、STC89C51具有6T模式,速度更快;AT89C51是12T模式,速度较慢。5、STC89C51集成了512或...

AT89C51与AT89S51的区别
它们之间主要区别在于以下几点:1.引脚功能 引脚几乎相同,改变是,在AT89S51 P1.5中,P1.6,P1.7具有第二功能,即这三个引脚的第二功能构成一个串行ISP编程接口。2.编程功能 AT89C51仅支持并行编程,而AT89S51不仅支持并行编程,还支持ISP在线编程。在编程电压方面,AT89C51除5V外还需要12V Vpp才能...

我想学习单片机at89c51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片...

AT89S52单片机片内硬件组成结构,与一般单片机和微机组成结构比较,显著...
以下内容讲诉了AT89S51\/52单片机与AT89C51单片机的区别,资源来自网络转帖于此,请核实后采用。它们之间主要区别在于以下几点:1.引脚功能:管脚几乎相同,变化的有,在AT89S51中P1.5,P1.6,P1.7具有第二功能,即这3个引脚的第二功能组成了串行ISP编程的接口。2.编程功能:AT89C51仅支持并行编程,而AT89S51...

如何显示proteus中at89c51的接地和电源引脚?
1、点击下图中箭头所指的图标。2、在跳开的界面中需要点击“P”字按钮。3、可以看到界面中的数字,输入“AT89C51”就会出现各种51单片专机。4、接下来是一系列的数子,用鼠标双击。5、然后快捷小窗就会出现选好的单片机,选中放置到编辑区即可。单片机就显示接地和电源管脚。

AT89C51单片机IO的最大允许输入电压
AT89C51电源电压VCC和封装有很大关系,大封装VCC=5V,小封装VCC=3.3V.输入低电压(VIL)Input low voltage指IO口通过软件设置低电平时,输入电压范围。由芯片手册得知:VIL=–0.5 V到0.2 VCC–0.1V,当VCC=5V 输入电压-0.5V到0.9V,如图所示,此时场管V2导通,输入电压过低会导致V2寄生二极管...

当AT89C51单片机外接晶振为6MHz时,其震荡周期、状态时钟周期、机器周期...
振荡周期:也称时钟周期,是指为单片机提供时钟信号的振荡源的周期(也叫时钟周期),当采用6MHz晶振时,一个振荡周期是1\/6M秒。状态周期:每个状态周期为时钟周期的2倍,一个状态周期为,2\/6M秒。机器周期:一个机器周期包含6个状态周期,也就是12个时钟周期,一个状态周期为12\/6M秒。指令周期:它...

AT89C51与STC89C52有什么差别
STC89C88 RMB8元多,8K flash,串口可以直接烧程序, 前面8个会便宜些,大概8元,烧程序就不方便.如果你学习用的话,可以买SST系列的,不到81,可以和Keil直连.你买一片不会很考虑价格吧

如何实现PC机与单片机AT89C51的串行通信
首先要看PC机有没有串口,即是电脑上的COM口,这是RS232口,有的话,就很方便。单片机的RXD,TXD两个脚就是串行通信的引脚,用一片MAX232,或MAX202,把RXD,TXD两脚接到MAX232上,组成一个RS232接口电路,MAX232的RXD,TXD接到DB9头上,再用一条串口线,连接单片机的DB9头和电脑上的串口,也是一...

盐津县13537594357: 如何使单片机AT89C51的p1口作为输入端,p0口作为输出端?
宋翔活血: 作为输出,P0口为0C,需用上拉电阻, 作为输入,P1口需置成高电平,

盐津县13537594357: 单片机AT89C51,想实现六个端口输入都是开关量,两个端口输出, -
宋翔活血: 图出来了哟,,算了,虽然你问问题的方式让我蛋疼菊紧,但我还是根据我的理解写了个47;* 假设用P0口,低6位输入,高2位输出 输入输出均为低电平有效 */ #include <reg51.h> #define eff 0 #define inv 1sbit lightIn1 = P0^0; //灯输入 sbit ...

盐津县13537594357: 怎样让at89c51芯片的P4管脚输出高低电平? -
宋翔活血: AT89C51是没有P4口的,STC单片机才有的,要是问STC单片机,那就与让其他口输出高低电平的方法是一样的.如汇编:MOV P4,#0FH,或C语言:P4=0x0f;

盐津县13537594357: AT89C51单片机怎么用汇编语言让4个数码管同时显示1234? -
宋翔活血: 1、首先我们先打开keil. 2、接着,我们要定义好库函数,void main(){while(1)//不断循环显示{dispaly();}}void dispaly(){P0=smg[1];//选择显示数字几,P1=0x7f;//控制是否点亮数码管. 3、接着,我们加上一条循环语句.delay(5);//显示5...

盐津县13537594357: 如何使用单片机at89c51驱动4位8段数码管,如果用到芯片来驱动的,电路图如何连接? -
宋翔活血: 看你将四位数码管接在单片机的哪一组输出口 例如51单片机一般都是四组八位输i/o口P0,P1,P2,P3口 一般P0口是三态i/o是要接上拉电阻的.其他接口是不用接上拉电阻的.上拉电阻一般选用1k~4k7都可以保证各管脚输出的电流小于500mA就可...

盐津县13537594357: AT89C51单片机中电机应该怎样接 -
宋翔活血: 首先一点,单片机肯定是不能直接控制电机的.再看电机的功率有多大,是交流,还是直流.交流电机要用交流接触器控制,单片机通过交流光耦MOC3083控制交流接触器的线圈.直流电机,可以用继电器.如果电机的功率比较大,电压也高,就得用一个大电流的继电器控制电机,单片机控制一个低压的继电器再去控制大功率的继电器.

盐津县13537594357: 关于AT89C51 IO口电流的问题. -
宋翔活血: 51系列单片机的低电平驱动能力较强,就单个IO口而言,一般30mA是安全可靠的,50mA可采用两个并联,同步控制,这样可以有效的简化电路.多个IO口一起使用时,若总电流过大,单片机功耗增...

盐津县13537594357: AT89C51单片机的I/O端口编址采用的是哪种方式? -
宋翔活血: AT89C51单片机使用的是I/O端口和外部数据存储器RAM统一编址的方式.

盐津县13537594357: AT89C51单片机 -
宋翔活血: AT89S51使用方法与AT89C51完全一样,可直接替换.另外,台湾的W77E58,也可以直接替换它,不过W77E58,片内还集成有1K字节的RAM,直接替换有点浪费了.

盐津县13537594357: 怎么用74ls273和74ls244来扩展单片机(at89c51)并行口 -
宋翔活血: 用74ls273和74ls244来扩展单片机(at89c51)并行口:用IO口高位地址(P2.7,P2.6, P2.5)连接两个芯片的使能端, 得到两个芯片的端口地址,然后像访问内部存储器一样访问. 单片机(Microcontrollers)是一种集成电路芯片,是采用超大...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网