单片机课程设计报告-基于单片机的病房呼叫系统设计内容摘要:

单片机等待状态 键值处理送缓冲区 利用串口静态显示 初始化并启动定时器 11 KS1: MOV DPTR,0FFFCH ; 取 A 口地址 MOV A,00H MOVX @DPTR,A ; A 口送全 0 INC DPL INC DPL ; 取 C 口地址 MOVX A,@DPTR ;读 C 口 CPL A ; C 口值取反 程序返回通过 JNZ LK2 指令 若有键按下则跳到 LK2 执行 键盘扫描程序,检测哪一个键按下。 2) 键盘扫描 源 程序 : LK2: MOV R2,0FEH。 从第 0 列扫描 MOV R4,00H。 列值计数器清零 LK4:MOV DPTR,0FFFCH ;取 A 口地址 MOV A,R2 MOVX @DPTR,A ; 开始扫描第 0 列 INC DPL INC DPL ;取 C 口地址 MOVX A,@DPTR ;读 C 口 JB ,L1 ;第 0 行无键按下转第 1 行 MOV A,00H ;第 0 行有键按下取行首键值 LJMP LKP ;转识别键值 L1:JB , L2 ;第 1 行无键按下转第 2 行 MOV A,08H ;第 1 行有键按下取行首键值 LJMP LKP ;转识别键值 L2:JB , L3 ;第 2 行无键按下转第 3 行 MOV A,16 ; 第 2 行有键按下取行首键值 LJMP LKP ;转识别键值 L3:JB , L4 ; 第 3 行无键按下转第 4 行 MOV A,24 ; 第 3 行有键按下取行首键值 LJMP LKP ;转识别键值 12 L4:JB ,L5 ; 第 4 行无键按下转第 5 行 MOV A,32 ; 第 4 行有键按下取行首键值 LJMP LKP ;转识别键值 L5:JB ,L6 ; 第 5 行无键按下转第 6 行 MOV A,40 ; 第 5 行有键按下取行首键值 LJMP LKP ;转识别键值 L6:JB ,L7 ; 第 6 行无键按下转第 7 行 MOV A,48 ; 第 6 行有键按下取行首键值 LJMP LKP ;转识别键值 L7:JB , NEXT; ; 第 7 行无键按下转 下一列 MOV A,56 ; 第 7 行有键按下取行首键值 LKP:ADD A,R4 ; 行首键号 +列值 =键值 PUSH ACC ;键值进栈保存 3) 键值显示 源 程序: L8: MOV 40H,A ;键值保存 MOV B,0AH ; 10 送 B DIV AB ;键值拆分 MOV 50H,A ;键值十位送内存显示缓冲区 50H MOV 51H,B ;键值个位送内存显示缓冲区 51H SETB RS0 ;保存第 0 组工作寄存器 MOV R2,02 ;显示位数计数 MOV R0,51H ;取个位显示缓冲区地址 DL0:MOV A,@R0 ; 键值个位送 A MOV DPTR,TAB ;取显示数码表首地址 MOVC A,@A+DPTR ;得显示码 MOV SBUF,A ;送显个位 DL1:JNB TI,DL1 ;等待发送完一帧 CLR TI ;清发送中断标志 DEC R0 ;指向下一显示单元 DJNZ R2,DL0 ; 2 位未显示完重复 13 CLR RS0 ;显示 完后恢复第 0 组寄存器 4) 定时器 1 中断 源 程序: INT1:MOV TH1,0D8H ;定时器 1 送初值 10MS 中断一次 MOV TL1,0F0H DJNZ 52H,TT1 ; 1S 到否。 MOV 52H,100 ; 1S 到重新赋秒计数值 DJNZ 53H,TT1 ; 3 秒到否。 LJMP TT2 ; 3S 到转 TT2 TT1:CPL ; 输出取反 RETI ;中断返回 TT2: CLR TR1 ;关定时器 CLR ;输出低电平 RETI ;中断返回 5) 外部中断 0 源程序 INT0: CLR TR1 ;关定时器 CLR ;输出低电平 MOV SCON, 00H ; 串口工作方式 0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。