利用51单片机1602 矩阵键盘做一个四位显示秒表

网站已改版,请使用新地址访问:
miaobiao 用51单片机实现秒表程序,可以 倒计时功能,并通过1602显示 SCM 开发 238万源代码下载- www.pudn.com
&文件名称: miaobiao
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 2
&&提 供 者:
&详细说明:用51单片机实现秒表程序,可以实现倒计时功能,并通过1602显示-MCU with 51 stopwatch program, you can achieve the countdown function, and through 1602
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&miaobiao.c
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 基于AT89S52单片机的多功能电子时钟系统,该系统可实现校时、闹钟、秒表、倒计时、计数器及温度测量等六种功能。
&[] - 关于在单片机上实现日历、秒表、倒计时、闹钟、到点音乐播放等功能查看: 1786|回复: 4
自编1602动态显示走数,秒表程序(c语言),但是数字一到300就归零了,请高人看看!
主题帖子精华
金牌会员, 积分 1814, 距离下一级还需 1186 积分
在线时间61 小时
只知道向1602写字符和字符串以及数字,但是不会写动态显示数字程序。冥思苦想结合以前数码管秒表原理,终于拼凑出了6位动态显示秒表,但是经过检验发现数字一计到300就归零了,还函数是否可以封装一下?时间精度怎么样?请高人指点!
#include&reg52.h&
typedef unsigned char uint8;
typedef unsigned int uint16;
uint8 x=0;
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P1^5 ;
sbit BUSY = P0^7;
uint16 counter=0;
uint8 code word2[]={"wangyan_N0.1!"};
timer0_int()
{ TMOD=0X01;
& TH0=0XFC;
& TL0=0X67;
&do{EN=0;RS=0;RW=1;EN=1;}while(BUSY==1);
w_dat(uint8 dat)
w_cmd(uint8 add)
w_string(uint8 add,uint8 *p)
{&w_cmd(add);
&&& while(*p!='\0')
&w_dat(*p++);
Init_LCD1602(void)
&w_cmd(0x38);& // 16*2显示,5*7点阵,8位数据接口
&w_cmd(0x0C);& // 显示器开、光标开、光标允许闪烁
&w_cmd(0x06);& // 文字不动,光标自动右移。此处只能是0x06!
&w_cmd(0x01);& // 清屏
{& Init_LCD1602();
&& timer0_int();
& w_string(0x80,word2);
& while(1);
timer0_interrupt() interrupt 1
{& &uint8 d0,d1,d2,d3,d4,d5;
&& TF0=0;&
&& TH0=0XFC;
&& TL0=0X67;
&& counter++;
&& if(counter==1000)
&{ counter=0;
&d1=x/10%10;
&d2=x/100%10;
&d3=x/1000%10;
&d4=x/10000%10;
& w_cmd(0xc5);
& w_dat(d0+'0');
& w_cmd(0xc4);
& w_dat(d1+'0');
&& w_cmd(0xc3);
&& w_dat(d2+'0');
&&& w_cmd(0xc2);
& w_dat(d3+'0');
&& w_cmd(0xc1);
& w_dat(d4+'0');
&& w_cmd(0xc0);
& w_dat(d5+'0');&
手艺人要内外兼修。
主题帖子精华
金牌会员, 积分 1814, 距离下一级还需 1186 积分
在线时间61 小时
搞定了,把x定义为uint32就可以了
手艺人要内外兼修。
主题帖子精华
金牌会员, 积分 1648, 距离下一级还需 1352 积分
在线时间57 小时
回复【2楼】wangyan915205:
---------------------------------
好样的
坚持学习!就能成功!
主题帖子精华
新手入门, 积分 40, 距离下一级还需 -20 积分
在线时间0 小时
头像被屏蔽
主题帖子精华
在线时间23 小时
提示: 作者被禁止或删除 内容自动屏蔽
Powered by利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开始每1秒钟加1。
提问者:网友
没有定时器的不过有数字钟的你可以参考下 其中可有有用的摘要本题给出基于单片机的数字中的设计,设计由单片机作为核心控制器,通过频率计数实现计时功能,将实时时间经由单片机输出到显示设备——数码管上显示出来,并通过键盘来实现启动、停止、复位和调整时间的功能。
回答者:网友
其他网友的回答
那得看你的数码管是怎么接的,其实重要的是51单片机定时器的使用,两个,T0和T1,随便选一个,就行了,只是提醒下,
回答者:网友
要硬件与程序的结合,建议你去看郭天祥的视频教学,里面什么都有的
回答者:网友
不是很难啊。。
回答者:网友
相关已解答问题
在移动端查看:
还没有汽配人账号?豆丁微信公众号
君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
1602LCD显示的秒表单片机课程设计单片机秒表
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
1602LCD显示的秒表单片机课程设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口利用51单片机设计一个秒表 (一定要按要求做到0.01秒)_百度知道
利用51单片机设计一个秒表 (一定要按要求做到0.01秒)
我有更好的答案
& & m[0] = m[1] = m[2] = m[3] = 0; && &display()最低位;m[0] %= 10;&nbsp,一秒钟;sbit P3_5 =P3^5;unsigned char counet, m[4] = {0; & & &if (i == 2) && &nbsp://h;&display();& &nbsp,0xf8,0x80;{ &&nbsp,变化 100 次。这么快;void time0() interrupt 1 & m[1]++;& & wait_key().com/zhidao/wh%3D600%2C800/sign=3af34defd466051aea64/e924efde061d95f766.jpg" esrc="http://h.hiphotos,0}; & }&nbsp,人的眼睛,分辨不出来。只能看到一个 8。停止时,才能看到稳定的数字。<img class="ikqb_img" src="http://h. & for (i = 0; i &lt,&}main()&{ & & & TH0 = TL0 = 6;&& & &m[2] %= 10;&nbsp,0x92,0x82; for(; & &nbsp,0:#include&reg52.h&gt.baidu.com/zhidao/wh%3D450%2C600/sign=be11f44ac55cc6e924efde061d95f766.jpg" />程序如下;void display()&{ & }}void wait_key(){& & &m[1] %= 10,是0.01s 变化一次; unsigned char code Tab[] = {& 4; i++) &{& &&& && & & & & & &P2 = 0; & counet %= 40;&& while(1) & 0xc0; & & & P0 = Tab[m[i]]; & m[3]++;P0 &amp,0xf9,0xa4;& j++);& & counet++;&& while( P3_5) & unsigned char code Bit[] = {8, 4; while(!counet) { & & wait_key(); TR0 = 1!P3_5) && & & & TMOD = 0x02;&&& &nbsp,0;{ &nbsp,0x90}, 2, 1};& if(!m[2]) {& & j & 0; wait_key(); & if(;& & & & & & TR0 = 0;&}&= 127; & P2 = Bit[i]; if(!m[1]) {& & & m[2]++; & &m[3] %= 10; & &nbsp
采纳率:64%
&nbsp,0xb0,0x99; &while(1) &nbsp&#include&P0=Tab[second/10];{&&for(i=20;reg52;&nbsp.h& sbit LED1=P2^0; sbit LED2=P2^1; sbit LED3=P2^2; sbit LED4=P2^3;sbit P3_5 =P3^5; msecond=0; second++; if(second==60) {&nbsp, &delay(5); unsigned int counet,& unsigned char Tab[]={0xc0;&TR0=1,0x92,0x82;keycnt=0;&&&}&display();&switch(keycnt)&i&0;i--)&&for(j=248;j&gt,0xf8,0x80; &LED1=0; &P0=Tab[second%10]+0x80;s&0;s--), void delay(unsigned int& m) { &&P0=Tab[msecond%10]; & &}&&nbsp://h;0;&&nbsp.hiphotos.baidu.com/zhidao/pic/item/4afbfbedab56accd51; & for(s=124;ET0=1;void time0() interrupt 1& {& TH0=0x3c; TL0=0xb0; counet++; if(counet==2) {& counet=0; msecond++;&j--);&&if(P3_5==0)& &delay(5);&void display() {& &delay(5); &m--)&&&}&} }& &LED2=0;P0=Tab[minute%10]; }main() {& & &LED3=1;//&TH0=0x3c; //&& &LED3=0; &if(P3_5==0)&& &LED2=1;while(P3_5==0);&}& & for(;m& &TMOD=0x01; //&TL0=0xb0; &&& TH0=0x3c;EA=1; &&{&&keycnt++;{&&case 1:&nbsp:&&nbsp.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://h.LED4=0; &TR0=1; minute++; second=0;case 2:&&TR0=0;&&&&case 3; if(msecond==10) {& & &nbsp
只能实现显示的时间基本单位是0.1秒,不是0.01秒(不知道怎么改啊)
本回答被网友采纳
用定时器我是做单片机的
为您推荐:
其他类似问题
秒表的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 lcd1602与单片机连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信