51单片机学习板用C语言编定时/计数器程序时遇到的问题

定时器

计数器

如图,为什么计数器程序中红圈内的内容删去后不能正常工作,而在定时器程序中可以不用??

定时器程序在第一次中断后设置为正常,并不是不用,而是忽略了第一次的错误.
-2的数值太小了,中断来不及响应.
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-23
TMOD=0x01 工作方式1
D1=D2=0 错误追问

没有错误啊,D1和D2是两个发光二极管

关于51单片机定时\/计数器装入初值的问题
这个有什么看不懂得呢 第一种 是吧十进制化成十六机制的方法 第二种呢 就是单纯的十进制 这样跟你说吧 因为th0只有一个字节 那就只能放下8位2进制 于是第一种表示就是把一个大于一个字节小于两个字节的数据转化成两个字节高八位和第八位的分离形式 第二种就简单了 0x9c就是65536-100的十六...

我在keil软件 用c语言写51单片机的时候发现?
其实,C语音的变量并不直接定义到寄存器,而是定义到内存单元,寄存器算是个中介,数据从内存取出临时存放到寄存器,然后将当时用不上的数据又从寄存器回写到内存,这样就解决了寄存器共享问题了;另外,你在调试时,再打开个反汇编窗口,跟踪C语音程序的汇编代码,就更清楚了;...

定时器延时问题(51单片机,c语言)
之所以没有任何反应,那是你的主程序没有挂起,也就是在while(1)里没有没有大括号,程序执行一次就结束了,所以你什么都看不到。应该这样 while(1){\/\/加入的成对大括号 for(thou=0;thou<=5;thou++) \/\/千位 for(hun=0;hun<=9;hun++) \/\/百位 for(ten=0;ten<=5;ten++) \/\/...

关于51单片机C语言编程的问题。
图中蓝色比红色超前90°,每次蓝色下降沿时,红色都是低电平,所以我认为计数器不会加,只能减。

51单片机定时器中断不准确,怎么解决
任何器件都会有偏差,晶振有偏差很正常。不过这显示出来的偏差也离谱了点。按目前的制造工艺一般的晶振精度都很容易做到数十ppm,偏移到数百ppm要么是环境太差要么是器件有问题,或者是测量不准^_^ 这个显示值应该只是软件根据波特率估算出来的,本身并不严格。如果人类都能感觉到定时器时间不准确了,那...

如何用51单片机做计算器(要求用C语言编程) 由于是新手所以没积分 对 ...
我的实验板上的键不够,所以只能做加法运算,而且两数之和不能大于十。嘿嘿,没错这个给某种人用的。\/\/*** myh.h ***有两个文件,一个是头文件myh.h一个是js.c include <reg52.h> typedef unsigned char uchar;typedef unsigned int uint;typedef bit BOOL;\/\/ sbit rs=P2^6;sbit rw...

C语言单片机程序 初学大家帮忙看看错在哪里了 #include <reg51.h...
程序百分百没问题,可能是编译的有问题,你 用的是keil编译的吗? 建议你多重新编译一下, 也有可能是你烧写程序的时候 数据传输的过程中出错了,校验出错 一般是传输过程中某个或者某些bit或者byte出错 建议你重新编译 重新下载烧写试试, 单片机这东西就是经常出些小问题,有时候我们买的开发板或者有...

51单片机C51语言的几个问题。
问题二:sbit在问题1中说的很清楚了,就是为某一位起别名,sfr 这个关键字在reg52.h头文件中出现很多 它是单片机开发商把特殊功能寄存器的物理地址映射到一个宏上面,这样的话就可以对寄存器操作了,你自己可以改动,比如reg52.h中的sfr P0 = 0x80;你改为sfr PP=0X80; 那么单片机上的P1口(...

C语言51单片机中断嵌套问题
因为这是硬件决定的,软件做不到,即便你在高级中断A中关闭了中断B,但是因为你原来的中断B还没有执行完,所以,仍然要把没执行完的部分执行下去,才能返回到正常程序.对于ARM系列的可以,对于51来说,是不行的,因为51软件指令不允许修改PC寄存器的值 ...

谁能帮我看下这个程序呀,我写的51单片机,用的c语言,结果数码管就显示俩...
1,建议定义一个变量status标记当前调整的是“时”还是“分”还是秒。用一个按键控制这个变量的变化,变量的值由0变到3,再变为0。0的时候不调整,1的时候调整时,2的时候调整分,3的时候调整秒.用KEY1控制,按一下KEY1,变量status由常态0变成1,再按变成2,再按就成3,再按变回0。2,用KEY2做...

相似回答