完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
#define uchar unsigned char #define uint unsigned int ***it wela=P2^7; ***it dula=P2^6; ***it s2=P3^0; uchar hex=0; uchar counter=0; uchar code leddata[]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 }; void delay(uchar msec);//延时函数的声明 void timer_ini(); //定时器的初始化 void display(uchar hex); //数码管的显示 void main() { timer_ini(); //初始化定时器 while(1) { if(s2==0) { delay(5); if(s2==0) //按下s3,关闭定时器停止计时 { TR1=0; for(;!s2;); TR1=1; //弹出s3,定时器开始计时 } } if(TF1==1) //如果定时器溢出 { TF1=0; //置0 TH1=(65536-46082)/256; TL1=(65536-46082)%256; //重新初始化 counter++ ; } if(counter==20) { counter=0; hex++; if(hex==16) { hex=0; } } display(hex); } } void delay(uchar msec) { uchar o_circle; uchar i_circle; for(o_circle=msec;o_circle>0;msec--) for(i_circle=112;i_circle>0;i_circle--); } void timer_ini() { wela=1; P0=0xf0; wela=0; P0=0XFF; TMOD=0x10;// 定时器1,工作模式1,16位定时器 TH1=(65536-46082)/256; TL1=(65536-46082)%256; TR1=1;// Start timer NO.1 //定时50ms } void display(uchar hex) { dula=1; P0=leddata[hex]; dula=0; } 所实现功能应该是数码管前4位间隔1s显示0~F.按下独立键盘S2数码管停止跑数,松开s2数码管继续跑数 。不过该程序是按下s2后再松开,数码管停止计数。恳请大神帮帮小弟!谢谢! |
|
相关推荐
7 个讨论
|
|
|
|
|
|
|
|
|
|
|
cuyebiren 发表于 2016-11-13 11:30 谢谢 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
880 浏览 0 评论
644 浏览 0 评论
667 浏览 0 评论
925 浏览 0 评论
999 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17099 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 04:22 , Processed in 1.022607 second(s), Total 70, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2436