您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机课程设计报告-仿手机键盘
1单片机课程设计报告课题:仿手机键盘报告人:XXX学号:XXXX班级:XXXX2目录一、手机键盘使用说明..............................................................................3(一)键盘说明.......................................................................................3(二)“时钟”模式...................................................................................3(三)“设置”模式...................................................................................3(四)“手机”模式...................................................................................4二、手机键盘设计说明..............................................................................5(一)设计要求.......................................................................................5(二)硬件电路.......................................................................................61、CPU.............................................................................................62、矩阵键盘.....................................................................................73、LCD.............................................................................................84、蜂鸣器.........................................................................................8(三)流程图...........................................................................................91、时钟模式.....................................................................................92、设置模式.....................................................................................94、手机模式...................................................................................105、定时器0....................................................................................11(四)源程序.........................................................................................12三、课程设计心得体会............................................................................303一、手机键盘使用说明(一)键盘说明1、键盘按键对应键值:C840D951EA62FB732、定义双击:2s间隔内按下同一数字键(二)“时钟”模式键盘键值对应功能:0(设置):按下设置键进入设置模式1(切换):按下切换键进入手机模式(三)“设置”模式键盘键值对应功能:0(移位):光标在年、月、日、星期、时、分、秒之间循环移位1(加):光标对应的时间(日期)加一2(减):光标对应的时间(日期)减一3(返回):返回时钟模式4(四)“手机”模式键盘键值对应功能:1)数字键:0(0,。?):单击显示0,双击显示0,。?,长按循环显示0,。?1(1abc):单击写入”1”,双击写入”1abc”,长按循环写入”1”、”a”、”b”、”c”2(2def):同上3(3ghi):同上4(4jkl):同上5(5mno):同上6(6pqr):同上7(7stu):同上8(8vwx):同上9(9yz):同上(第四个字符是空格)2)功能键:A(删除):删除光标前一个字符B(退格):光标左移C(右移):光标右移D(清屏):LCD清屏E(跳转):返回时钟模式F(打电话):按下蜂鸣器模拟电话响,再次按下挂断电话5二、手机键盘设计说明(一)设计要求显示方式:1602LCD编程语言:汇编1、任务利用键盘矩阵仿照手机键盘,每个按键均集成多个按键字符,在LCD上分别显示2、要求1)手机键盘对应字符:2)依次按下不同按键时所显示的是按键上的第一个字符,如果在2S间隔内按下同一按键,该按键上的字符将被依次显示,如果同一按键上的两次连续按键时间间隔超过2S,则取字符位置归0,即显示该按键的第一个字符3)可模拟拨打电话号码,“*”键可实现退格功能,“#”键可实现清除功能4)字符显示和拨打电话,可通过按键选择控制5)按键时,可利用蜂鸣器发出提示音6)不工作时,显示北京时间,可调整3、附加功能1)“清屏“键可实现LCD清屏2)“右移“键可实现光标右移3)长按数字键可循环显示按键对应的所有字符6(二)硬件电路1、CPU72、矩阵键盘83、LCD4、蜂鸣器9(三)流程图1、时钟模式2、设置模式设置模式YYYYNNNYYYYN扫描键盘初始化初始化显示北京时间键值为0键值为1光标移位初始化初始化时间加一11111初始化初始化键值为2键值为3时间减一11111初始化初始化返回时钟模式设置模式NNNYYYYN扫描键盘初始化初始化显示北京时间键值为0键值为1进入设置模式时钟模式进入手机模式NNYY104、手机模式LCD初始化手机键盘扫描键值0~9进入数字键处理键值为A键值为B键值为C键值为D键值为E键值为F手机模式有键按下IDLE清零按键松开删除前一个字符光标左移光标右移LCD清屏返回时间模式打电话/挂断YYYYYYYNNYYN115、定时器0开始MS=MS+1MS等于24S0=S0+1,IDLE++S0等于60M0=M0+1M0等于60H0=H0+1H0等于24H0=0结束YNYNNYYN12(四)源程序LCD_RSEQUP3.6LCD_RWEQUP3.5LCD_ENEQUP3.3BUZZEREQUP2.6DIALINGBIT01H;打电话CIRCLEBIT02HYEAREQU46HMONTHEQU47HDAYEQU48HWEEKEQU49HH0EQU50HM0EQU51HS0EQU52HMS0EQU53HKEY_BUFEQU36HIDL_SECEQU37HIDLEEQU38HDOU_SECEQU39HSAMEEQU40HCURSOREQU41HDOU_NMSEQU42HBUFEQU45HORG00HJMPMAINORG0BHJMPTIM0ORG1BHJMPTIM1MAIN:MOVSP,#60HACALLLCD_INIT;LCD初始化ACALLTIME_INIT;计时器初始化MOVCURSOR,#00HMOVYEAR,#0MOVMONTH,#1MOVDAY,#1MOVWEEK,#0MOVH0,#0MOVM0,#013MOVS0,#0MOVMS0,#0CLRDIALINGCLRCIRCLEACALLLCD_INITACALLWELCOMEBEGIN:ACALLLCD_INITACALLDISP_DATENEW_TIME:ACALLDISP_TIMEACALLKEY_TMOVA,KEY_BUFJZSET_TIMECJNEA,#1,NEW_TIMEJMPPHONESET_TIME:CLRTR0;关定时器0MOVA,#83H;定位光标ACALLLCD_CMDMOVA,#0EH;显示光标ACALLLCD_CMDST_K:ACALLKEY_TMOVA,KEY_BUFJNZST_1ACALLMOVEJMPST_KST_1:CJNEA,#1,ST_2ACALLINC_TJMPST_KST_2:CJNEA,#2,ST_3ACALLDEC_TJMPST_KST_3:CJNEA,#3,ST_KMOVA,#0CH;关光标ACALLLCD_CMDSETBTR0;开定时器0JMPNEW_TIMEPHONE:ACALLSJ_INITSJ_k:14ACALLKEYJMPSJ_KTABLE_W:DBWELCOMETOPHONE,00HTABLE_WEEK:DBMonTueWedThuFriSatSunTABLE:DB0,.?1abc2def3ghi4jkl5mno6pqr7stu8vwx9yz;***********************欢迎子程序****************************WELCOME:MOVDPTR,#TABLE_WACALLWRITEWELCOM_K:ACALLKEY_TMOVA,KEY_BUFJNZWELCOM_KRET;***********************时间模式子程序*************************KEY_T:MOVP2,#0E0H;全扫描,各列线都送低电平MOVP1,#00HMOVA,P1;读回各行线电平值ORLA,#0F0H;只读低四位CPLA;所读值置反JNZKT_IN;不是全0说明有键按下MOVKEY_BUF,#0FFHRET;无键按下返回KT_IN:ACALLDELAY5MS;调延时,等待按合抖动过去ACALLDELAY5MS;调延时,等待按合抖动过去ACALLDELAY5MS;调延时,等待按合抖动过去ACALLDELAY5MS;调延时,等待按合抖动过去MOVR2,#04H;R2做计数器,存待扫描行数MOVR4,#7FH;R4做指针,指示待扫描行数MOVR7,#00H;R7用于决定键号,初值置以0KT_SCAN:MOVA,R4RLAMOVR4,A;以上三条调整待扫描行MOVP2,A;逐行扫描,被扫描行送低电平MOVP1,#00HMOVA,P1;读回各列线电平值MOVR3,#04H;R3做记数器,存被扫描行的待查列数KT_NEXT:RRCA;调整待查列JNCKT_FIND;被查列为低电平,被按键找到,转FINDINCR7;未找到,键号加一15DJNZR3,KT_NEXT;被扫描行的待查列数不为0,转回NEXTDJNZR2,KT_SCAN;未找到所按键,返回MOVKEY_BUF,#0FFHRETKT_FIND:MOVKEY_BUF,R7MOVP2,#0E0HSETBTR1KT_LOOSEN:MOVA,P1ORLA,#0F0HCPLAJNZKT_LOOSEN;以上几条重复全扫描,等待所按键松按CLRTR1RETDISP_DATE:MOVA,#80HACALLLCD_CMDMOVA,#32H;'2'ACALLLCD_WDATAMOVA,#30H;'0'ACALLLCD
本文标题:单片机课程设计报告-仿手机键盘
链接地址:https://www.777doc.com/doc-5104769 .html