



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include Includes.h /总头文件#define KEYP PTD#define KEYD DDRD#define KEYPEU PTDPUEunsigned char sec=0; /秒,分,小时unsigned char minit=0;unsigned char hour=0;unsigned char k=0,0,0,0,s=0,0,0,0;/Timer1Init:定时器初始化-*/功能:将定时器初始化为一秒钟一次溢出中断。/-*void Timer1Init(void) /不允许溢出中断、不启动计数、分频因子 64 T1SC=0b00100110; /计数器寄存器初值0x0000 T1CNTH=0x00; T1CNTL=0x00; /1秒产生1次溢出中断,预置寄存器1(2457600/64)=9600 T1MODH=0x96; T1MODL=0x00;void Timer1Over(void) /定时器溢出子程序 DisableMCUInt(); sec+; /秒加1 T1SC&= (17); /清除定时器溢出标志位 EnableMCUInt();void Delay(int times) int i; for(i=0;itimes;i+); void LEDshow(unsigned char a) unsigned char i;const unsigned char Table10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; /显示码表 DDRB = 0xff; /数据口为输出 DDRC = 0xff; /位选口为输出 PTB = 0x0; /数据口输出全0,即全不亮 for (i=0;i4;i+) PTC = (0b00000001 i); /送位选信号 PTB = Tableai; /取显示码并送到LED数据线if ( (sec%2=0) &i=1)PTB= Tableai+0x80; Delay(100); unsigned char key_scan(void) /键盘扫描函数 int i; unsigned char line, row, k_value; static unsigned char lastkey=0xff; const unsigned char KBTable = 0xEE,7,0xDE,4,0xBE,1,0x7E,0, 0xED,8,0xDD,5,0xBD,2,0x7D,A, 0xEB,9,0xDB,6,0xBB,3,0x7B,B, 0xE7,C,0xD7,D,0xB7,E,0x77,F, 0x00,0xff ; /PTD0PTD3输出0 KEYD =0x0f; KEYPEU=0xf0; KEYP=KEYP & 0xF0; if (KEYP & 0xf0) = 0xf0) return 0xff; /无键按下 row = KEYP; /延时,消除抖动 for(i=0;i100;i+); if (row != KEYP) return 0xff; /判为抖动,无键按下 line=0xFE; for (i=0;i4;i+) KEYP = line; /输出扫描信号 row=KEYP; /读键盘口 if (row & 0xf0) != 0xf0) break; line=(line1)+1; if (i=4) return 0xff; k_value = (row & 0xf0) | (line & 0x0f) ; for (i=0; i32; i+=2) if (k_value = KBTablei) break; if(lastkey=KBTablei+1) return 0xff; lastkey=KBTablei+1; return KBTablei+1;void timeset() unsigned char j=0,m=0; unsigned char key; while(1) /设置当前时间 LEDshow(s); if (j=4) key=0xff; break; key=key_scan(); if (key=0xff) continue; key = key-0x30; sj=key; j+; void alarmset() unsigned char j=0,m=0; unsigned char key; while(1) /设置闹钟时间 LEDshow(k); if (m=4) break; key=key_scan(); if (key=0xff) continue; key = key - 0x30; km=key; m+; /主函数void main() unsigned char a=0,0,0,0; unsigned char kk; DisableMCUInt(); /禁止总中断 MCUInit(); /芯片初始化 Timer1Init(); /定时器1的初始化 T1SC|=(16); /令T1SC.6=1,开放Timer1溢出中断 T1SC &= (1=60) minit+; sec=0; if (minit=60) hour+;minit=0; a0 =s0+hour/10; a1 =s1+hour %10; a2 =s2+minit/10; a3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度电影主题旅游产品拍摄制作合同
- 2025二手集体土地上房屋买卖合同
- 红色遗址保护知识培训内容课件
- 新年心愿600字初三作文12篇
- 合同管理流程及审批标准化工具
- 企业级专利许可协议
- 诗经拾贝课件
- 红楼梦第91回课件
- 红楼梦介绍课件
- 红楼梦五六回课件
- 主题阅读1:大自然的文字
- 电梯周期日常维护保养项目表
- 工程项目进度管理-课件
- (中职中专)二维动画设计软件应用完整版课件汇总全书电子教案(最新)
- 国际贸易理论与实务ppt课件(完整版)
- GB∕T 6546-2021 瓦楞纸板边压强度的测定
- 历史选择性必修1 国家制度与社会治理(思考点学思之窗问题探究)参考答案
- 学前儿童发展心理学(第3版-张永红)教学课件1754
- 医学资料冠心病英文版
- 部编人教版九年级语文上册教学计划及教学进度表
- 干法——稻盛和夫
评论
0/150
提交评论