摘要: 使用51单片机开发会容易出现DATA区内存不足的情况,有时体现为某SEGMENT OVERFLOW。这个时候可以充分利用128字节的片外RAM,在定义较大的数据类型时在最前面加上idata,在后面的程序中直接调用就可以了。 另外经常会出现栈溢出的问题。如果在主函数中单独调用子函数不会出错,而在另一个 阅读全文
posted @ 2016-09-19 01:18 viaduct 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 1)经常出现的问题是内存不够,即提示address overflow或者“data” segment too large时,建议把所有int类型的数据改为unsigned char或者char,因为unsigned char的取值范围刚好是0~255,即0x00~0xff;据说可以用xdata区来存 阅读全文
posted @ 2016-09-08 11:09 viaduct 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 1 unsigned char count=0; 2 void initT1() 3 { 4 EA=1; 5 TH1=0xDC; 6 TL1=0X00; 7 TMOD=0x10; 8 TR1=1; 9 ET1=1; 10 } 11 12 void t1() interrupt 3 13 { 14 TH1=0xDC; 15... 阅读全文
posted @ 2016-09-08 10:17 viaduct 阅读(1567) 评论(0) 推荐(0) 编辑
摘要: 基本组件是一个51单片机,一个74154译码器,四个MATRIX-8X8。 考虑到单片机引脚有限,所以使用P0口和P2口的总共16根引脚选择列,而P1口的低4位接译码器,译出的一个低电平选择行。所以图像的显示机制大概如下: (1)按行扫描,不需要手动选择哪一行,只需要将行数设置为自动加一即可。 (2 阅读全文
posted @ 2016-09-08 10:07 viaduct 阅读(775) 评论(0) 推荐(0) 编辑
摘要: 上面8个引脚用于选择行,低电平有效。下面8个引脚用于选择列,高电平有效。 经测试,红色点阵LED与之相反,是上面的引脚用于选择列,且高电平有效;下面的引脚用于选择行,低电平有效。 在AT89C51单片机中,通过74LS154译码器扩展,可以使用多个LED灯组以组成更大的电子屏。74154的功能表如下 阅读全文
posted @ 2016-09-05 19:19 viaduct 阅读(6216) 评论(0) 推荐(0) 编辑
摘要: 1.Proteus中添加组件后双击引脚可以快速生成一个最近的端口。 2.按A调出设置界面 3.在String中写:net=H#,"H"可以换成自定义前缀。count为起始值,increment为增量。 4.依次点击想要编号的引脚。 阅读全文
posted @ 2016-09-05 15:29 viaduct 阅读(1970) 评论(0) 推荐(0) 编辑