摘要: 51C 用循环作延时的程序比汇编不好写多了。它不能计算的,只能用逐一试验的方法。这里也作个1 秒延时的,用P1口输出,每秒求反一次。仿真中可看出每秒红或蓝电平切换一次。改ms参数,可以改动延时时间,当然也是不断试验出的。这另外2 个延时时间也是很有用的,3ms延时,可作为数码管显示中的防鬼影,10ms延时可作为按键防抖用,留着备用。#include <reg51.h>#define uint unsigned int#define uchar unsigned charvoid delayms(ms);void main (){ while(1) { delayms(10); // 阅读全文
posted @ 2012-03-12 23:13 StearArre 阅读(1420) 评论(0) 推荐(0) 编辑
摘要: 这是写的一个简单的测试定时器0的程序:要实现的目标是,LED第一个跟第二个灯先循环亮起,第三盏灯则以间隔一秒钟的时间亮起一次,其中,第三盏灯的亮起时间以定时器0的中断来执行,里边有亮点需要注意。一、不要忘记中断程序中进if语句中的后的tt清零二、不要忘了把定时器里边的语句回归哦,否则老是认为中断服务程序没返回主函数呢三、这个if语句不应写在主函数中,因为如果写在主函数中,时序会出现问题。因为如果在main函数中的话,前边的几个delay时间会与定时器定的准确时间产生时序问题,因为delay()的时间长,早过了20个tt时间了,所以会出现时序问题!四、另外,那个delay函数的时间也有问题,我还 阅读全文
posted @ 2012-03-12 19:39 StearArre 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 真的很郁闷,鼓捣了半天也没弄出来,郁闷哇。。。 阅读全文
posted @ 2012-03-12 15:05 StearArre 阅读(797) 评论(1) 推荐(0) 编辑
摘要: 郁闷,鼓捣半天了也没弄好。。真不知道是怎么回事 阅读全文
posted @ 2012-03-12 15:04 StearArre 阅读(98) 评论(0) 推荐(0) 编辑