0,3个仍为1,通过异或把3个1变为0,唯一的0变为1switchTmp判断按键发生于03列的哪一列case1KeyNo0breakcase2KeyNo1breakcase4KeyNo2breakcase8KeyNo3breakdefaultKeyNo16无键按下P10xf0低4位置0,放入4列DelayMS1TmpP140x0f按键后f0变成XXXX0000,X中有1个为0,三个仍为1;高4位转移到低4位并异或得到改变的值switchTmp对03行分别附加起始值0,4,8,12case1KeyNo0breakcase2KeyNo4breakcase4KeyNo8breakcase8KeyNo12蜂鸣器
4
fvoidBeep
ucharifori0i100iDelayMS1BEEPBEEPBEEP0主程序voidmai
P00x00BEEP0while1P10xf0ifP10xf0Keys_Sca
获取键序号ifPre_KeyNoKeyNoP0DSY_CODEKeyNoBeepPre_KeyNoKeyNoDelayMS100
五.实验结果:
当按键按下k0,显示管显示0,当按键按下k1时显示1,显示管可以显示123456789,ABCDF
5
f六.实验体会:
这次的实验提高了我的设计能力与对电路的分析能力。同时在软件的编程方面得到了很大的提高,使编程能力得到加强,在此同时对所学的单片机知识得到很大的巩固与加强。本次实验熟悉单片机的使用功能,熟悉了KeiluVisio
进行程序调试,利用proteus78进行硬件设计。在本实验中,我明白了4X4矩阵键盘按键号是用按键组成的,通过编写C语言程序显示管是完全可以显示出我们想要的信息,在以后的实验中我们可以通过一些可以连接LED、示波器、显示管等来了解如AT89C51、两机之间通信原理、DS12C887等的工作原理及组成部分作用的了解。
6
f7
f8
f9
fr