你好,请问用stc12c5a60s2封装写的温湿度的程序有没有啊。我写的怎么都不对,就在那个时序的延时方面出错。

STC12C5A60S2单片机对VS1003MP3解码模块音频解码时候出现的问题_百度知道
STC12C5A60S2单片机对VS1003MP3解码模块音频解码时候出现的问题
我用的单片机供电是正5V。谢谢帮帮忙,但我把程序烧录在单片机里面去。我后来把接模块XRES这脚线拔掉后就没有了,声音太小了,没听见正弦测试声,说明还没有对音频解码,只听见喇叭里面有“该顿”声音,用SPI通信会不会电平不兼容?下面是我弄的程序!不胜感激哦,一点都不明显,我拔其他线也是这个声音,而模块用地是3v?现在我搞STC12C5A60S2单片机对VS1003MP3解码模块音频解码,下面是我写的程序
我有更好的答案
没见程序,不知道程序有没有问题;我做的时候就不是直接连SPI接口的,我是用9014来隔离的很好用没问题
谢谢你的回答,我今天把驱动程序调试好了,是SPI时钟频率高了,后来把SPICLK=FOSC/16,就出来了。第一次做不太熟悉。
其他类似问题
为您推荐:
stc12c5a60s2的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁STC12C5A60S2控制AT24C04 C程序
11:22:08&&&来源:21IC &&
/**************************************& 主芯片&&:&&(1T) 工作频率:&12.000MHz **************************************/ #include&"REG51.H" #include&"INTRINS.H"
typedef&unsigned&char&BYTE; typedef&unsigned&short&WORD; sbit&SCL&=&P3^4;&&&&&&&&&&&&&&&&//的时钟 sbit&SDA&=&P3^5;&&&&&&&&&&&&&&&&//AT24C04的数据 BYTE&BUF[16];&&&&&&&&&&&&&&&&&&&//数据缓存区 BYTE&code&TESTDATA[]&= { &&&&0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77, &&&&0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF }; void&Delay5us(); void&Delay5ms(); void&AT24C04_Start(); void&AT24C04_Stop(); void&AT24C04_SenDACK(bit&ack); bit&AT24C04_RecvACK(); void&AT24C04_SendByte(BYTE&dat); BYTE&AT24C04_RecvByte(); void&AT24C04_ReadPage(); void&AT24C04_WritePage(); void&main() { &&&&AT24C04_WritePage(); &&&&Delay5ms(); &&&&AT24C04_ReadPage(); &&&&while&(1); } /************************************** 向AT24C04写1页(16字节)数据 将TESTDATA开始的16个测试数据写如设备的00~0F地址中 **************************************/ void&AT24C04_WritePage() { &&&&BYTE&i; &&&&AT24C04_Start();&&&&&&&&&&&&//起始信号 &&&&AT24C04_SendByte(0xa0);&&&&&//发送设备地址+写信号 &&&&AT24C04_SendByte(0x00);&&&&&//发送存储单元地址 &&&&for&(i=0;&i<16;&i++) &&&&{ &&&&&&&&AT24C04_SendByte(TESTDATA[i]); &&&&} &&&&AT24C04_Stop();&&&&&&&&&&&&&//停止信号 } /************************************** 从AT24C04读取1页(16字节)数据 将设备的00~0F地址中的数据读出存放在DATA区的BUF中 **************************************/ void&AT24C04_ReadPage() { &&&&BYTE&i; &&&&AT24C04_Start();&&&&&&&&&&&&//起始信号 &&&&AT24C04_SendByte(0xa0);&&&&&//发送设备地址+写信号 &&&&AT24C04_SendByte(0x00);&&&&&//发送存储单元地址 &&&&AT24C04_Start();&&&&&&&&&&&&//起始信号 &&&&AT24C04_SendByte(0xa1);&&&&&//发送设备地址+读信号 &&&&for&(i=0;&i<16;&i++) &&&&{ &&&&&&&&BUF[i]&=&AT24C04_RecvByte(); &&&&&&&&if&(i&==&15) &&&&&&&&{ &&&&&&&&&&&&AT24C04_SendACK(1);&//最后一个数据需要会NAK &&&&&&&&} &&&&&&&&else &&&&&&&&{ &&&&&&&&&&&&AT24C04_SendACK(0);&//回应ACK &&&&&&&&} &&&&} &&&&AT24C04_Stop();&&&&&&&&&&&&&//停止信号 } /************************************** 延时5微秒(STC12C5A60S2@12M) 不同的工作环境,需要调整此函数 此延时函数是使用1T的指令周期进行计算,与传统的12T的MCU不同 **************************************/ void&Delay5us() { &&&&BYTE&n&=&4; &&&&while&(n--) &&&&{ &&&&&&&&_nop_(); &&&&&&&&_nop_(); &&&&} } /************************************** 延时5毫秒(STC12C5A60S2@12M) 不同的工作环境,需要调整此函数 此延时函数是使用1T的指令周期进行计算,与传统的12T的MCU不同 **************************************/ void&Delay5ms() { &&&&WORD&n&=&2500; &&&&while&(n--) &&&&{ &&&&&&&&_nop_(); &&&&&&&&_nop_(); &&&&&&&&_nop_(); &&&&&&&&_nop_(); &&&&&&&&_nop_(); &&&&} } /************************************** 起始信号 **************************************/ void&AT24C04_Start() { &&&&SDA&=&1;&&&&&&&&&&&&&&&&&&&&//拉高数据线 &&&&SCL&=&1;&&&&&&&&&&&&&&&&&&&&//拉高时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&SDA&=&0;&&&&&&&&&&&&&&&&&&&&//产生下降沿 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&SCL&=&0;&&&&&&&&&&&&&&&&&&&&//拉低时钟线 } /************************************** 停止信号 **************************************/ void&AT24C04_Stop() { &&&&SDA&=&0;&&&&&&&&&&&&&&&&&&&&//拉低数据线 &&&&SCL&=&1;&&&&&&&&&&&&&&&&&&&&//拉高时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&SDA&=&1;&&&&&&&&&&&&&&&&&&&&//产生上升沿 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 } /************************************** 发送应答信号 入口参数:ack&(0:ACK&1:NAK) **************************************/ void&AT24C04_SendACK(bit&ack) { &&&&SDA&=&&&&&&&&&&&&&&&&&&&//写应答信号 &&&&SCL&=&1;&&&&&&&&&&&&&&&&&&&&//拉高时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&SCL&=&0;&&&&&&&&&&&&&&&&&&&&//拉低时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 } /************************************** 接收应答信号 **************************************/ bit&AT24C04_RecvACK() { &&&&SCL&=&1;&&&&&&&&&&&&&&&&&&&&//拉高时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&CY&=&SDA;&&&&&&&&&&&&&&&&&&&//读应答信号 &&&&SCL&=&0;&&&&&&&&&&&&&&&&&&&&//拉低时钟线 &&&&Delay5us();&&&&&&&&&&&&&&&&&//延时 &&&&return&CY; } /************************************** 向IIC总线发送一个字节数据 **************************************/ void&AT24C04_SendByte(BYTE&dat) { &&&&BYTE&i; &&&&for&(i=0;&i<8;&i++)&&&&&&&&&//8位计数器 &&&&{ &&&&&&&&dat&<<=&1;&&&&&&&&&&&&&&//移出数据的最高位 &&&&&&&&SDA&=&CY;&&&&&&&&&&&&&&&//送数据口 &&&&&&&&SCL&=&1;&&&&&&&&&&&&&&&&//拉高时钟线 &&&&&&&&Delay5us();&&&&&&&&&&&&&//延时 &&&&&&&&SCL&=&0;&&&&&&&&&&&&&&&&//拉低时钟线 &&&&&&&&Delay5us();&&&&&&&&&&&&&//延时 &&&&} &&&&AT24C04_RecvACK(); } /************************************** 从IIC总线接收一个字节数据 **************************************/ BYTE&AT24C04_RecvByte() { &&&&BYTE&i; &&&&BYTE&dat&=&0; &&&&SDA&=&1;&&&&&&&&&&&&&&&&&&&&//使能内部上拉,准备读取数据 &&&&for&(i=0;&i<8;&i++)&&&&&&&&&//8位计数器 &&&&{ &&&&&&&&dat&<<=&1; &&&&&&&&SCL&=&1;&&&&&&&&&&&&&&&&//拉高时钟线 &&&&&&&&Delay5us();&&&&&&&&&&&&&//延时 &&&&&&&&dat&|=&SDA;&&&&&&&&&&&&&//读数据 &&&&&&&&SCL&=&0;&&&&&&&&&&&&&&&&//拉低时钟线 &&&&&&&&Delay5us();&&&&&&&&&&&&&//延时 &&&&} &&&&return& }
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
STC12C5A60S2相关资源
AT24C04相关资源
C程序相关资源
编辑:什么鱼
本文引用地址:
本周热门资源推荐
EEWORLD独家& & 本文介绍了基于STC12C5A60S2的多功能测量系统,系统实现对空气温湿度、CO2浓度以及室内光照强度的检测,同时具有万年历时钟显示功能。阐述了系统硬件和软件的整体设计方案、器件选型、单元设计及整体电路连接。通过理论分析及实验证明能有效测出温湿度、CO2含量及室内光照强度,测量准确,参数调节方便,使用效果良好。
& & 随着电子技术的发展,居民普遍使用电子温度计或万年历自带的温度计来测量室内温度,但是,随着环境污染的日趋严重及人们对生活质量要求的提高,人们对室内湿度、二氧化碳浓度及光照强度的检测也逐渐关注。然而,目前为止适用于家居型检测湿度、光照强度及CO2浓度还没有一种合适且适用的仪器。小型仓库中传统的方法是采用湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大、随机性大。因此我们需要一种性价比较高的温湿度测量仪。
& & 本文设计研制一种新颖、方便、实用、结构简单的多功能测量仪,适用于家庭、仓库以及温室等需要环境检测的地方。设计通过显示所监测的结果,用户可以根据监测结果有效调节相关设备,从而达到理想的环境状态。
& & 1 系统设计
& & 1.1 设计任务
& & 本文实现基于STC单片机的多功能测量系统,可以实现湿度检测、温度检测、CO2浓度检测、室内光照强度检测、时间日期显示的功能。其中湿度的测量范围为20~90%RH;温度的检测范围为-55~+125℃;CO2浓度测量范围为350~10000ppmCO2;室内光照强度的测量范围为0~2500lux;系统显示当前时间和日期,并可以通过按键进行修改当前时间日期。
& & 1.2 设计方案及工作原理
& & 多功能检测系统包括:模块、控制器、温度检测模块、湿度检测模块、照度检测模块,CO2浓度检测模块、时钟模块、键盘输入模块、LCD显示模块。如图1所示。
& & 本控制系统以STC12C5A60S2单片机为控制核心,该单片机具有高速、低功耗、超强抗干扰的特点,并且自带8路10位精度AD转换;温湿度检测由数字式的温度检测DS18B20和湿度检测传感器DTH11实现,由于数字式传感器输出为数字量,因此在数据处理方面比较简单,且这两款传感器的性价比较高;时钟模块则是应用了比较常用的DS1302时钟芯片,通过控制器与时钟芯片的通讯实现得到比较准确的时间值,另外,通过按键操作实现对时钟的校准;而对于照度和CO2浓度的检测则比较复杂,由于硅光电池和CO2检测传感器输出信号是微弱的模拟信号,因此需要对得到的小信号进行调理,调理后的信号信息送入单片机的AD口,从而得到单片机可以处理的数字量;所有检测结果及日期时间的显示都是由LCD实现;由于信号调理电路中放大器采用双电源供电,因此电源模块选用了交流220V转&5V的电源模块。
& & 2 硬件电路设计
& & 2.1 控制电路
& & 系统的控制电路是以STC12C5A60S2单片机为控制核心构成的最小系统。另外,为方便程序下载,设计了基于CH340的程序下载接口电路,电路图如图2所示。
2.2 检测电路 & & 根据传感器输出信号的不同,可分为数字式传感器和模拟式传感器两种。信号类型的不同导致了检测电路的不同。 2.2.1 温湿度检测电路 & & 由于温度传感器DS18B20和湿度传感器DTH11均为数字量输出,因此检测电路十分简单,为了防止不确定信号的出现,需在信号的输出端接4.7k的,如图3所示。
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&stc12c5a60s2 18b20 总是显示0 求助啊
[问题点数:20分,结帖人hzt12345hf]
stc12c5a60s2 18b20 总是显示0 求助啊
[问题点数:20分,结帖人hzt12345hf]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。STC12C5A60S2数据灌不进去,提示连接中给MCU上电...|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
用的是USB TO TTLd的,,下载器用STC-ISP测试也是正常[attachment=1168187]软件用STC-ISP,端口COM9电路是用杜洋的那个,外置晶振也加了 [attachment=1168189]数据怎么就灌不进去,一直这样提示,插拔电源还是一样[attachment=1168188]这是虾米原因啊,请大虾们指教下。补充:是不是USB转TTL的不行,得用杜洋的那款?
赞助商链接
貌似TXD和RXD接反了。
赞助商链接
我想楼主应该不会犯这样的错误你做的东西就是这样吗?还是有其他的外围电路你把晶振的两个电容拿掉试试我碰见过这种情况,不要电容也可以用的
引用第1楼拆机狂人于 22:18发表的&&:貌似TXD和RXD接反了。 楼上眼力真好。。。
真的啊,TX和RX接反了
如沙发所说,交换RX和TX试试!
下载是先断开5V电源&&点击下载 当提示要接给MCU上电时在把5V电源接上&&STC 单片机都是这样
貌似杜洋用的是这种烧写软件 [attachment=1168343]
换下RX TX 试试, 不行的画 把波特率降低 4800试试。我第一次纠结了1晚上才通。波特率太高不行。貌似如果是pl2302的usb转ttl 驱动个别不能用的。楼主换试试。
各位,TX和RX并没接反,就是这样一个发一个收的。如果TX接TX,RX接RX那就成了发对发,收对收了,这样数据根本就没法传输了!
收发换了还是不行,难道真的是PL2302不行?!
TTL 小板 短路帽短接RXD TXD&&串口助手自收发下如果是win7系统 装个max232驱动 (旧点的),试下吧
哎,不评论什么了,你不觉得RST引脚上缺点什么东西吗。要学会看技术手册,不是看某些砖家的教程。
引用第12楼geniuskim于 11:15发表的&&:哎,不评论什么了,你不觉得RST引脚上缺点什么东西吗。要学会看技术手册,不是看某些砖家的教程。 是的是的,缺了复位电路吧
这款可以不用复位电路的
速率降下来&&min 1200&&&& max&&1200&&试下
驱动问题,我买了杜洋的一个USB转串口的模块,我的事驱动问题所以写不进程序,去他网站下载一个驱动
楼主可能用的是win7,写程序时2不是很稳定,这与波特率无关,换换pl2303驱动或者用isp4.8来试试,我写程序时stc12系列用4.88可以,结果换成f11单片机就不行了,换成isp4.8马上OK
复位电路不能省,晶振不能离太远,这两个没问题就可以了.&&&&
我也遇到过这样的问题,有2中解决方法,1、是冲新下载下载板的驱动程序,找一个可以正常下载的。2、从最高波特率往下降低试试,我以前买了六快stc12c5a60s2,刚上电的时候4个都无法下载,以为有问题,换驱动和降低波特率后在2400下六块都没问题ok,所以你的自己去试验,祝你成功!!尽快进入自己的单片机世界,呵呵!!
串口没设置错吧!按道理是可以的,我用的是USB转TTL模块再接STC可以用,里面的芯片也是2302
如果外围电路都没有问题的话,1.波特率选择。最高和最低都要和你电脑上的一样,默认应该是9600;2.使用外部供电,不要直接用usb供电试试看。也就是说,usb-ttl只连接3根线,rxd txd gnd;外部5V供电,usb先插好,点下载后在连接外部电源/
ps:rxd和txd是没有接错的。usb转出的rxd接单片机的txd。usb转出的txd接单片机的rxd。一个收一个发。
6楼回答正确。先断电提示上电才给单片机上电;接线绝对正确
又是万恶的2303.。。。。。。。。
线没接反,先关单片机的电源,再点下载,然后开单片机电源。还不行就调低波特率,最高和最低都调到1200bps
2303驱动不对吧,速率降到1200,如果能用的就换驱动,旧版本的那种。
串口号超8之后有些软件运行起来不正常。
P1.0接GND就可以解决问题
2303得用老驱动,新的驱动不能下载stc的
如果你的线路没有问题,把波特率调到最低
楼主是要做ft4吧,怎么样了,解决了吗?也准备仿制了,希望给点经验
学习了。我也一样的
我的开发板不是这样的。但一开始也弄了好长时间才行,最大和最小波特率要设置一样,还不能高了。我都是设
弱弱的问一句,这样连接就不需要232芯片做电平匹配了吗?
查看完整版本: [--
Powered by
Gzip enabled

我要回帖

更多关于 stc12c5a60s2封装 的文章

 

随机推荐