jianjun42 发表于 2014-10-28 11:24:55

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

搭建一个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都能顺利驱动蜂鸣器,为什么?

jianjun42 发表于 2014-10-28 11:30:02

我尝试在主循环中加入延时,老型号的M16仍然对key==?这样的按键执行语句没有反应,有遇到过这样的情况的朋友吗?

ahong2hao 发表于 2014-10-28 11:38:26

晶振上有区别吧.

Gallen.Zhang 发表于 2014-10-28 11:50:42

也可能熔丝位的设置有差别

Xiangxiang8 发表于 2014-10-28 12:06:54

是不是编译器的问题,感觉编译器的问题的可能性大

mcucow 发表于 2014-10-28 12:17:48

熔丝位, 编译环境的差异

jianjun42 发表于 2014-10-28 12:28:26

ahong2hao 发表于 2014-10-28 11:38
晶振上有区别吧.

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

jianjun42 发表于 2014-10-28 12:29:04

Gallen.Zhang 发表于 2014-10-28 11:50
也可能熔丝位的设置有差别

熔丝位设置相同。

jianjun42 发表于 2014-10-28 12:29:51

Xiangxiang8 发表于 2014-10-28 12:06
是不是编译器的问题,感觉编译器的问题的可能性大

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

richyhuang 发表于 2014-10-28 13:37:57

按键口有没有上拉电阻?是不是内部上拉电阻设计不一样?

jianjun42 发表于 2014-10-28 13:55:01

richyhuang 发表于 2014-10-28 13:37
按键口有没有上拉电阻?是不是内部上拉电阻设计不一样?

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

yuanbao502 发表于 2014-10-28 13:59:40

没注意过,你的蜂鸣器是直流还是交流?

skylly3 发表于 2014-10-28 14:10:58

本帖最后由 skylly3 于 2014-10-28 14:15 编辑

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

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

jianjun42 发表于 2014-10-28 14:54:00

yuanbao502 发表于 2014-10-28 13:59
没注意过,你的蜂鸣器是直流还是交流?

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

yuanbao502 发表于 2014-10-28 15:02:34

蜂鸣器交流和直流驱动方式不同

yuanbao502 发表于 2014-10-28 15:02:58

现在买回来的学习板上面有些是交流的。

fsclub 发表于 2014-10-28 15:05:22

用WINHEX看下HEX是否相同。或者写入同一个HEX文件试下。

jianjun42 发表于 2014-10-28 15:06:21

yuanbao502 发表于 2014-10-28 15:02
现在买回来的学习板上面有些是交流的。

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

jianjun42 发表于 2014-10-28 15:07:12

fsclub 发表于 2014-10-28 15:05
用WINHEX看下HEX是否相同。或者写入同一个HEX文件试下。

就是用同样的HEX文件。

Hhhhhhhh 发表于 2014-10-28 15:17:34

头文件改了没?M16和M16A

hutomy 发表于 2014-10-28 16:24:11

表示不明觉历
我用16L的工程编译,烧些到16A是没问题的.

richyhuang 发表于 2014-10-28 16:24:45

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

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

hutomy 发表于 2014-10-28 16:27:29

看芯片有没有运行? 用内部时钟试下

jianjun42 发表于 2014-10-28 16:34:18

hutomy 发表于 2014-10-28 16:27
看芯片有没有运行? 用内部时钟试下

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

hutomy 发表于 2014-10-28 23:20:51

jianjun42 发表于 2014-10-28 16:34
哎,能认真些看帖子吗?无语了。

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

pz91 发表于 2014-10-29 07:56:51

我也无语了

nazily215 发表于 2014-10-29 08:47:21

那看看它们的电气参数是不是一样的,估计IO的这方面不一样,如驱动力,是否带内置上拉之类的

jianjun42 发表于 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都能顺利驱动蜂鸣器。
这说的还不够明白?如果没有起震,能驱动蜂鸣器?
页: [1]
查看完整版本: M16新老型号有差异,运行一段简单的程序见分晓!