搜索
bottom↓
回复: 27

M16新老型号有差异,运行一段简单的程序见分晓!

[复制链接]

出0入8汤圆

发表于 2014-10-28 11:24:55 | 显示全部楼层 |阅读模式
搭建一个M16最小系统,在PD4\PD5\PD6\PD7端口分别接四只按键开关s1\s2\s3\s4。
程序很简单,就是状态机按键扫描处理,程序在这里,
接入M16A,运行程序,按s1和s4蜂鸣器报警。
接入M16或M16L按键无反应。
难道M16新老型号时序有区别?

将主循环中的语句改为:
if(Trg==16) buzzer(200);
if(Trg==32) buzzer(200);   
if(Trg==64) buzzer(200);
if(Trg==128) buzzer(200);
新老型号的M16都能顺利驱动蜂鸣器,为什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入8汤圆

 楼主| 发表于 2014-10-28 11:30:02 | 显示全部楼层
我尝试在主循环中加入延时,老型号的M16仍然对key==?这样的按键执行语句没有反应,有遇到过这样的情况的朋友吗?

出0入0汤圆

发表于 2014-10-28 11:38:26 | 显示全部楼层
晶振上有区别吧.

出0入0汤圆

发表于 2014-10-28 11:50:42 | 显示全部楼层
也可能熔丝位的设置有差别

出0入0汤圆

发表于 2014-10-28 12:06:54 | 显示全部楼层
是不是编译器的问题,感觉编译器的问题的可能性大

出0入0汤圆

发表于 2014-10-28 12:17:48 | 显示全部楼层
熔丝位, 编译环境的差异

出0入8汤圆

 楼主| 发表于 2014-10-28 12:28:26 | 显示全部楼层

没有,都是外置8M晶振。

出0入8汤圆

 楼主| 发表于 2014-10-28 12:29:04 | 显示全部楼层
Gallen.Zhang 发表于 2014-10-28 11:50
也可能熔丝位的设置有差别

熔丝位设置相同。

出0入8汤圆

 楼主| 发表于 2014-10-28 12:29:51 | 显示全部楼层
Xiangxiang8 发表于 2014-10-28 12:06
是不是编译器的问题,感觉编译器的问题的可能性大

采用相同的编译器,ICCAVR7.2

出0入0汤圆

发表于 2014-10-28 13:37:57 | 显示全部楼层
按键口有没有上拉电阻?是不是内部上拉电阻设计不一样?

出0入8汤圆

 楼主| 发表于 2014-10-28 13:55:01 | 显示全部楼层
richyhuang 发表于 2014-10-28 13:37
按键口有没有上拉电阻?是不是内部上拉电阻设计不一样?

请注意,我楼主位说的很清楚,相同的程序段,相同的电路,相同的编译器,相同的下载线,不同的就是芯片。

出0入0汤圆

发表于 2014-10-28 13:59:40 | 显示全部楼层
没注意过,你的蜂鸣器是直流还是交流?

出0入0汤圆

发表于 2014-10-28 14:10:58 | 显示全部楼层
本帖最后由 skylly3 于 2014-10-28 14:15 编辑

蜂鸣器是有源的还是无源的。

我的结论是KeyRead函数写的很糟糕。

出0入8汤圆

 楼主| 发表于 2014-10-28 14:54:00 | 显示全部楼层
yuanbao502 发表于 2014-10-28 13:59
没注意过,你的蜂鸣器是直流还是交流?

普通的5V有源蜂鸣器。通过8050驱动。这个有关系吗?用M16A就正常,用M16L或M16就不正常?

出0入0汤圆

发表于 2014-10-28 15:02:34 | 显示全部楼层
蜂鸣器交流和直流驱动方式不同

出0入0汤圆

发表于 2014-10-28 15:02:58 | 显示全部楼层
现在买回来的学习板上面有些是交流的。

出0入0汤圆

发表于 2014-10-28 15:05:22 | 显示全部楼层
用WINHEX看下HEX是否相同。或者写入同一个HEX文件试下。

出0入8汤圆

 楼主| 发表于 2014-10-28 15:06:21 | 显示全部楼层
yuanbao502 发表于 2014-10-28 15:02
现在买回来的学习板上面有些是交流的。

哎,难道我说的还不够清楚?我是相同的环境,相同的PCB和电路,不同的结果。

出0入8汤圆

 楼主| 发表于 2014-10-28 15:07:12 | 显示全部楼层
fsclub 发表于 2014-10-28 15:05
用WINHEX看下HEX是否相同。或者写入同一个HEX文件试下。

就是用同样的HEX文件。

出0入0汤圆

发表于 2014-10-28 15:17:34 | 显示全部楼层
头文件改了没?M16和M16A

出0入0汤圆

发表于 2014-10-28 16:24:11 | 显示全部楼层
表示不明觉历
我用16L的工程编译,烧些到16A是没问题的.

出0入0汤圆

发表于 2014-10-28 16:24:45 | 显示全部楼层
jianjun42 发表于 2014-10-28 13:55
请注意,我楼主位说的很清楚,相同的程序段,相同的电路,相同的编译器,相同的下载线,不同的就是芯片。 ...

就是单片机内部的结构不知道有没有改变.
A是改变工艺的品种,也就是新一代的产品。

出0入0汤圆

发表于 2014-10-28 16:27:29 | 显示全部楼层
看芯片有没有运行? 用内部时钟试下

出0入8汤圆

 楼主| 发表于 2014-10-28 16:34:18 | 显示全部楼层
hutomy 发表于 2014-10-28 16:27
看芯片有没有运行? 用内部时钟试下

哎,能认真些看帖子吗?无语了。

出0入0汤圆

发表于 2014-10-28 23:20:51 | 显示全部楼层
jianjun42 发表于 2014-10-28 16:34
哎,能认真些看帖子吗?无语了。

你帖子有说晶震起震了吗,你怎么保证芯片运行了呢?

出0入4汤圆

发表于 2014-10-29 07:56:51 来自手机 | 显示全部楼层
我也无语了

出0入0汤圆

发表于 2014-10-29 08:47:21 | 显示全部楼层
那看看它们的电气参数是不是一样的,估计IO的这方面不一样,如驱动力,是否带内置上拉之类的

出0入8汤圆

 楼主| 发表于 2014-10-29 12:55:36 | 显示全部楼层
hutomy 发表于 2014-10-28 23:20
你帖子有说晶震起震了吗,你怎么保证芯片运行了呢?

同样的环境,同样的代码,用M16A一切正常,换上M16或M16L按键无反应。
将主循环中的语句改为:
if(Trg==16) buzzer(200);
if(Trg==32) buzzer(200);   
if(Trg==64) buzzer(200);
if(Trg==128) buzzer(200);
新老型号的M16都能顺利驱动蜂鸣器。
这说的还不够明白?如果没有起震,能驱动蜂鸣器?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-4 02:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表