正文
51单片机c语言秒表程序报错,51单片机秒表程序设计
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
51单片机C语言秒表程序报错误和警告(程序如下)
include intrins.h 添加这个头文件就可以了。
// 51单片机C语言编程,这个时钟+秒表可以参考一下。
//你原来的b2,b2都是死循环,这是不行的,只有主函数才可以死循环。//你的主函数结构也有问题。//为你增加了一个按键检测的函数。//下列程序通过了实验测试。//b1输出的周期大约0.9s。//b2输出的周期大约0.6s。
然后:按键的操作,注意软件的消抖(具体的是延时,10ms左右)。
这个程序可以实现秒的计时,按键控制开始、暂停、清零功能,更多功能自己在看清程序的基础上进行改进。
//单片机:使用51系列兼容的即可;//4×4矩阵键盘:接在P1口;//两位数码显示器: P0口输出七段码,P2口输出位选码。/=== //C语言程序如下。
我用c语言写的基于51单片机和ds1302芯片1602液晶显示的时钟程序不行...
1、DS1302的数据显示存在16进制转换的问题,这个要特别注意。另外不要随便抄别人的程序,用之前一定要读懂,就是抄也要抄那种有正规注释的程序,这样查找问题比较容易。建议你去杜洋的网站去下载一段标准的代码使用。
2、检查晶振,I2C驱动代码,芯片手册查看读写顺序,注意12进制和24进制转换,还有显示部分。如果都OK还能出问题,要么是芯片坏了,要么是很初级的问题,找个会的人帮你调下吧。
3、几种可能吧,一,1302晶振不对。二,1302驱动程序(I2C)不对。三,显示程序不对。四,我印象中有的时钟芯片是需要第一次上电是需要写入时间才可以运行的,你可能没有写时间。
51单片机做的秒表计时不准
1、不用外部的时钟,照样可以得到准确的时间,精度可以和晶振的精度相同。采用定时器2,自动重装初始值,就是一个可行的方法。采用定时器0、1,也可以,只是中断的次数,频繁了一些。
2、单片机秒表显示实验中,提高计时精度的方法只有一个(因晶振频率误差也影响计时精度,但是不能调,所以,这不能算一个方法),就是调整定时器的计数的初始值。
3、是因为左图那个每次都不会把储存秒的变量给清0,即使是每ms刷新一次,因为储存秒的变量是存在的,到下一秒才变化,所以每ms进入刷新时,储存秒的变量储存的是上一个s得到的值,显示出来就是正确的。
4、用51单片机做万年历计时,一般都是为了试验,所以多没有专门的实时时钟芯片。晶振频率会有偏差和温度系数,虽然日常使用不会有什么不良影响,但作为实时时钟,连续累积的偏差就很大了,所以时钟会不准,差很多。
5、使用第三种方式赋值为0xFDFC,这两个数字相近,所以结果基本正确。但是使用-516时赋值的0xFEFC,这差别就大了,结果就是不正确。一般建议用TH0=(65536-516)/256 ;TL0=(65536-516)%256;这种方式,保证不出问题。
6、TH0 的值本来 是 15536/256 是 60, 256-60=196 由于你下面一行把给 TL0赋值的句子写成了 TH0 = 。。,结果 TH0 被赋值成了 176, 256-176=80 80 只有196的一小半,当然就快了很多。
51单片机C语言编程
单片机使用最广泛的编程软件是keilc51,KeilC51是美国KeilSoftware公司(ARM公司之一)出品的51系列兼容单片机C语言软件开发系统。单片机C51语言是由C语言继承而来的。
void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。
这个可以用定时器来做,比如检查某键,按键时间超过2秒后一个变量开始累加知道键释放为止。
关于51单片机c语言秒表程序报错和51单片机秒表程序设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。