数码管动态显示的51单片机时钟设计
更新时间:2024-07-12 09:02:01 阅读量: 综合文库 文档下载
一看就会,适合初学者参考
T0,T1同时开中断,和别人的有点不一样
源程序如下
//数码管设计的可调电子钟 //K1,K2分别调整小时和分钟 #include
#define uchar unsigned char #define uint unsigned int
uchar code DSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99, //共阳段码 0x92,0x82,0xF8,0x80,0x90,0xFF}; uchar DSY_BUFFER[]={0,0,0xBF,0,0,0xBF,0,0}; //显示缓存 ucharScan_BIT; //扫描位,选择要显示的数码管 uchar DSY_IDX; //显示缓存索引 ucharKey_State; //P1端口按键状态 uchar h,m,s,s100; //十分秒 ,1/100s void DelayMS(uchar x) //延时 {
uchar i;
while(x--) for(i=0;i<120;i++);
}
void Increase_Hour() //小时处理函数 {
if(++h>23)h=0;
DSY_BUFFER[0]=DSY_CODE[h/10]; DSY_BUFFER[1]=DSY_CODE[h]; }
void Increase_Minute()//分钟处理函数 {
if(++m>59) {
m=0;Increase_Hour(); }
DSY_BUFFER[3]=DSY_CODE[m/10]; DSY_BUFFER[4]=DSY_CODE[m]; }
void Increase_Second() //秒处理函数 {
if((++s>59)) {
s=0;Increase_Minute(); }
DSY_BUFFER[6]=DSY_CODE[s/10]; DSY_BUFFER[7]=DSY_CODE[s]; }
void T0_INT() interrupt 1 //T0中断动态扫描数码管显示 {
TH0=(65536-1000)/256; TL0=(65536-1000)%6;
P2=Scan_BIT; //选通相应数码管
P0=~DSY_BUFFER[DSY_IDX]; //段码送p0进行取反,共阴共阳转换 Scan_BIT=_crol_(Scan_BIT,1);//准别下次选通的数码管 DSY_IDX=(DSY_IDX+1)%8; //索引0-7内循环 }
void T1_INT() interrupt 3 //T1中断控制时钟运行 {
TH1=(65536-50000)/256; TL1=(65536-50000)%6; if(++s100==20) //50ms*20=1s延时 {
s100=0;Increase_Second();
} }
void main() {
P0=P3=0xFF;
//主程序
TMOD=0x11; //T0,T1工作模式1 TH0=(65536-1000)/256; TL0=(65536-1000)%6; TH1=0xDC; TL1=0;
TCON=0x01; EA=1; //开中断 ET0=1; ET1=1; h=0;
m=s=s100=0;
//将时分秒段码放入显存 DSY_BUFFER[0]=DSY_CODE[h/10]; DSY_BUFFER[1]=DSY_CODE[h]; DSY_BUFFER[3]=DSY_CODE[m/10]; DSY_BUFFER[4]=DSY_CODE[m]; DSY_BUFFER[6]=DSY_CODE[s/10]; DSY_BUFFER[7]=DSY_CODE[s]; Scan_BIT=0xFE; DSY_IDX=0; TR0=TR1=1; Key_State=0xFF; while(1) {
if(P1^Key_State) {
DelayMS(10); if(P1^Key_State) {
Key_State=P1;EA=0;
//启动两个定时器
if((Key_State&0x01)==0)Increase_Hour(); //K1 +小时 else if((Key_State&0x02)==0) //K2 + 分钟 {
m=(m+1)`;
DSY_BUFFER[3]=DSY_CODE[m/10];
DSY_BUFFER[4]=DSY_CODE[m]; }
EA=1; }
} } }
正在阅读:
数码管动态显示的51单片机时钟设计07-12
生猪养殖项目可行性研究报告书05-09
基于单片机控制的步进电机控制系统毕业论文04-25
美丽的大山作文350字06-28
幼儿园大班语言:《秋天的图画》案例分析08-21
西北农林科技大学 生物技术综合大实验05-04
离职欢送会致辞02-22
德育工作管理制度(等六个)11-09
实验三 连续时间信号的数字处理11-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数码管
- 单片机
- 时钟
- 动态
- 显示
- 设计
- 北师大版小学六年级心理健康教育教案全套
- 2009年理论教育工作总结
- 余姚市泗门镇总体规划
- 高中化学 第一章 第二节原子结构与元素的性质(3) 新人教版选修3
- 血透题库
- 2018届浙江高考地理(选考1)考点强化练:4 地球的公转 Word版含解
- 幼儿园中大班教师绘本教学的现状及策略研究
- 苏教版三年级科学下册教学计划及教案
- 新建平板玻璃深加工和技术玻璃生产线项目可行性研究报告
- 监理日志、旁站记录填写要点、平行检查记录
- 基于GSM的远程监控修改beta版
- 内江新城建设动员大会上的讲话
- 深圳市法定图则编制技术规定(试行稿)
- 映瑞光电并购中谷光电的可行性研究报告(增长)
- 中考指要答案9AUnit 12
- 北京教育学复习题集
- 气象试题
- 教师的心理素质
- 数学教学设计研究
- 3-2土地整理可研报告(崇阳县石城等4个乡镇灾毁耕地复垦项目)