0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机编程中四种常见问题汇总

电子工程师 作者:工程师a 2018-05-26 03:44 次阅读

1、指向code区数组的指针也要加 code 关键字声明。

比如 unsigned char code arr[30]; 数组,要用指针指向它,要把指针也声明成 unsigned charcode*p;

后来使用发现其它很多地方使用是不需要这样声明的,只要 unsigned char *p;就行了,但是清楚地记得那次确实是要加 code 关键字声明才可以的。

2、在51里面,位变量貌似是有限的。

如果要用一个布尔型作为标识变量,为了节省控件可以用 bit 型变量,但是在DRS1000项目中遇到过一次用 bit 型变量出错,改为 unsigned char 型就OK了,那时定义的变量已经很多了,可能是把可以用bit寻址的存储区都用光了吧。

3、用机械开关触发INT中断时:

由于机械开关会震动,产生的电压会有毛刺,这些毛刺会多次触发中断。会造成多次触发的因素有两点:

(1 )开关按下时的震动。第一次低电平到来时会进入中断处理程序,之后就算这些震动在中断处理程序执行的过程中产生,即使进入中断处理程序后关掉了总中断,这些毛刺仍然会使中断标志位置位,会在结束中断处理程序结束后再次马上触发中断处理程序。

(2 )开关释放时的震动。在第一次高电平到来时会退出中断处理程序,之后的毛刺会再次进入中断处理程序。

解决办法:

在中断处理程序的最后加一段低电平等待代码,等待低电平结束再延时5ms(为了消除开关释放时毛刺的干扰),5ms延时结束后再清除中断标志位(在中断处理程序执行的过程中可能已经再次触发了中断标志位)。代码如下:

void int0() interrupt 0

{

/*Do something*/

while(rollRA==0);//等待低电平结束

delay5(1);//等待按键释放的毛刺结束

IE0=0; //清除中断标志位,以防再次进入中断

}

4、对于15系列单片机,在使用串口时必须要指定AUXR寄存器的值,否则程序无法正常运行。

这个情况遇到过很多次,15系列单片机只要使用到串口就一定要知名AUXR寄存器的值,不像12系列那样可以把这个寄存器忽略。

在使用15系列单片机时养成了一个习惯:main 函数的第一句让 AUXR=0; ,后面串口在根据需要对其进行初始化。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43982

    浏览量

    620916
  • 单片机编程
    +关注

    关注

    10

    文章

    49

    浏览量

    20000
收藏 人收藏

    评论

    相关推荐

    单片机C语言编程

    51单片机编程常见问题
    发表于 04-26 19:53

    dsp,单片机,pcld,fpja,这四种集成电路的各种应用

    dsp,单片机,pcld,fpja,这四种集成电路的各种应用,那些是可以一起使用的,哪些是不能一起使用问什么?
    发表于 11-25 11:56

    PC电源常见问题汇总

    PC电源常见问题汇总,分享!
    发表于 04-29 16:03

    单片机开发过程常见问题

    单片机在组装与开发过程总是会出现一些问题,导致过程不是那么顺利的完成。今日分享一些单片机常见问题的解决办法1.单片机EN8F609兼容PI
    发表于 09-11 16:33

    四种单片机系统按键方案,带你从菜鸟变老司机

    单片机系统里,按键是常见的输入设备,在本文将介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案:一是 GPIO 口直接检测单个按键,如图 1.1 所示;二是按键较多则使用矩阵
    发表于 12-10 11:46

    单片机四种按键硬件、软件设计方式优缺点大盘点

    单片机系统里,按键是常见的输入设备,在本文将介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案。一是 GPIO 口直接检测单个按键,如图 1.1 所示;二是按键较多
    发表于 08-12 00:00

    51单片机四种串行口工作模式怎么设置

    51单片机定时计数器溢出率计算和串口的波特率之间的关系51单片机四种串行口工作模式设置
    发表于 03-01 06:46

    单片机四种烧写方式是什么

    JTAG/SWD/ISP/SWIM详解单片机四种烧写方式单片机是一编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,
    发表于 07-01 06:40

    单片机学习常见问题(持续更新) 精选资料分享

    单片机学习常见问题记录
    发表于 07-16 06:14

    单片机面试常见问题及答案

    单片机面试常见问题及答案,单片机IO口开漏输出和推挽输出有什么区别?推挽输出:既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。导通损耗小、效率高、既提高电路的负载能力,又提高开关
    发表于 07-19 06:48

    单片机四种输入模式

    单片机四种输入模式 MCU输入模式有浮空、上拉、下拉、模拟输入这四种模式,如果采用上拉或者下拉模式输入,岂不是把真实的信号强行变成电源VCC或者GND了?这四种模式分别在什么场合下使用
    发表于 08-24 16:19

    单片机最常用的四种烧写方式是什么?

    单片机最常用的四种烧写方式是什么?
    发表于 09-27 07:53

    详解单片机四种烧写方式

    JTAG/SWD/ISP/SWIM详解单片机四种烧写方式单片机是一编程控制器,搭好硬件电路后,可以利用程序实现很多非常复杂的逻辑功能,
    发表于 01-27 06:57

    SPI的四种时序

    声明:本篇文章面向在已对SPI的四种时序有所了解的人我们采用SPI3模式以及将FPGA作从,STM32作主机的方式讲解,在STM32控制部分采用的是半双工模式,但其实半双工与全双工区别不大,稍加
    发表于 02-09 06:18

    MES软件的作用及常见问题汇总

    本文主要介绍了MES软件的作用及常见问题汇总
    发表于 06-04 08:00 4次下载