单片机知识阶段性总结

有code程序存储器、数据存储器128字节,xdata外部数据存储器。

问题:1Delay(1)消隐是什么原理?减少段选的余晖,但先位选再段选中间不需要P0=0x00;只在末尾Delay即可消隐;段选之后必消隐,先再子函数开头开端选锁存器,P0=0x00,子函数末尾Delay(2)为最佳消隐方式。
    2为什么按键按下数码管不能保持原状态。答:用好定时器扫描按键和数码管。
    例如:如果main函数里的while里if条件不满足(空),则会卡在while循环外的最后一条语句一直执行。
        如果main函数里的while里if条件的其中一个满足一次,其他条件不满足,则会卡在满足一次的if语句里一直执行。
    3共用P0的模块怎么互不干扰?设置一个变量来记录状态。
    例:数码管+蜂鸣器,第一个模块用完P0后记得清0(0x00)或清1(0xff)消隐原理 或给P0中的某一位定义一个数组
    4DS18B20实验中,用Timer0为什么数据会乱?时序被破坏。
    5定时器扫描按键数码管有时会扫描不到。已解决。
    6第九届蓝桥杯AT24C02中4设置好后会读不出来4????读的一直是0??(可能是芯片连续写四次速度太快导致存储数据错误,已解决(用for循环))
    7如何防止P0口读的太快而导致其他用P0口的设备出错??
写程序时的错误:1define 名称 数值后不加分号。
               2数组太大就在名称前加code 例:(code放在这里也可以)unsigned char code Music[]={};code:code是keil C51里面的关键字,一般用于定义常量数组,意思是告诉编译说把这个数组放在ROM存储。
               3数组存在ROM中也有大小,如果超出大小,歌曲将不能停止,从头开始无限循环
               4unsigned char OneWire_ReceiveBit(void)//5+7+52不行,好像跳过了读取环节,记得上下拉也需要时间//5+5+55可以
               5注意对10000怎么取每一位的操作。
               6注意有符号整型转换浮点数,以及浮点数转化无符号整数类型,unsigned int(16位),无符号长整数类型(32位).
               7定时器扫描按键记得static
               8我所写的定时器扫描按键都是一瞬间键数丢失,在主函数

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值