C8051F120 矩阵键盘

  • Q2_239058
    了解作者
  • 44.5KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-20 08:24
    上传日期
基于C8051F120单片机写的矩阵键盘程序。C8051单片机为51系列单片机,程序为大学期间写的,功能完善。所用单片机为C8051F120。
矩阵键盘扫描.rar
  • 矩阵键盘扫描
  • 矩阵键盘.lnp
    60B
  • 矩阵键盘
    18.8KB
  • STARTUP.OBJ
    749B
  • key.h
    4KB
  • 矩阵键盘.uvgui.唐斌
    132.4KB
  • STARTUP.A51
    6.2KB
  • 矩阵键盘.plg
    690B
  • 矩阵键盘.uvproj
    13.2KB
  • ExtDll.iex
    19B
  • main.LST
    6.2KB
  • 矩阵键盘.M51
    24.9KB
  • 矩阵键盘_uvproj.bak
    13.2KB
  • STARTUP.LST
    13.7KB
  • 矩阵键盘_uvopt.bak
    58.3KB
  • main.OBJ
    22KB
  • lcd_12864.h
    2.2KB
  • 矩阵键盘.uvopt
    9.5KB
  • main.c
    2.4KB
内容介绍
/************矩阵键盘扫描***************/ /**********唐斌********************/ #include<c8051f120.h> #include<key.h> #include<lcd_12864.h> uchar fen,miao,shi,f; uchar code table[]={"0123456789ABCD"}; uchar d[8]=0; bit miaoflag; bit fenflag; bit shiflag; void Reset_Sources_Init() { WDTCN = 0xDE; WDTCN = 0xAD; } void Oscillator_Init() { SFRPAGE = CONFIG_PAGE; OSCICN = 0x83; } void Port_IO_Init() { SFRPAGE = CONFIG_PAGE; XBR2 = 0x40; P7MDOUT=0xf0; } void Timer3_Init() { SFRPAGE = TMR3_PAGE; TMR3CN = 0x80; RCAP3L = (65535-36864)%256; RCAP3H = (65535-36864)/256; TMR3L = (65535-36864)%256; TMR3H = (65535-36864)/256; TMR3CF = 0x00; EIE2=0x01; EA=1; TR3=1; } void display_shi() { lcd_pos(1,0); d[4]=shi/10; d[5]=shi%10; write_dat(table[d[4]]); write_dat(table[d[5]]); } void display_fen() { lcd_pos(1,1); d[2]=fen/10; d[3]=fen%10; write_dat(':'); write_dat(table[d[2]]); write_dat(table[d[3]]); write_dat(':'); } void display_miao() { lcd_pos(1,3); d[0]=miao/10; d[1]=miao%10; write_dat(table[d[0]]); write_dat(table[d[1]]); } void display_time() { if(miaoflag==1) { display_miao(); miaoflag=0; } if(fenflag==1) { fenflag=0; display_fen(); } if(shiflag==1) { shiflag=0; display_shi(); } } void main() { Reset_Sources_Init(); Timer3_Init(); Oscillator_Init(); Port_IO_Init(); lcd_init(); write_cmd(0x01);//清屏 display(0,0,"----按键实验----"); display(1,0,"00:00:00"); while(1) { scankey();//按键扫描 keychuli();//按键处理 display_time(); lcd_pos(3,0); lcd_pos(2,0); write_dat(table[num1/10]); write_dat(table[num1%10]); write_dat('-'); write_dat(table[num2/10]); write_dat(table[num2%10]); write_dat('-'); write_dat(table[num3/10]); write_dat(table[num3%10]); write_dat('-'); write_dat(table[num4/10]); write_dat(table[num4%10]); lcd_pos(3,3); write_dat(table[num5/10]); write_dat(table[num5%10]); write_dat('-'); write_dat(table[num6/10]); write_dat(table[num6%10]); } } void INT0_ISR3 (void) interrupt 14 { f++; TMR3CN&=~0x80; if(f==50) { f=0; miaoflag=1; miao++; } if(miao==60) { fenflag=1; miao=0; fen++; } if(fen==60) { fen=0; shiflag=1; shi++; } if(shi==24) { shi=0; } }
评论
    相关推荐