资源描述:
《实现特定功能的键盘与led显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、可编辑版目录一、实验目的……………………………………-2-二、实验内容……………………………………-2-三、总体设计……………………………………-2-四、实验电路……………………………………-2-五、实验框图……………………………………-4-六、实验程序……………………………………-5-七、实验心得……………………………………-10-Word完美格式可编辑版实现特定功能的键盘及LED显示一、实验目的1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段码显示器的工作原理。二、实验内容1、了解键盘及LED显示接口设计,绘制出原理图。2、根据实验箱上提供的硬件资源完
2、成:a、按1键显示年b、按2键显示月日c、按3键显示GOODd、按4键数码管由左到右8字循环显示。3、设计电路并在实验台上连接线路。三、总体设计1、选通键盘以及LED数字显示控制区2、主要利用软件编程,实现实验要求中的各项四、实验电路使用PC机与伟福lab8000实验箱连接起来,安装好相应驱动,做好接线分析,由于lab8000实验箱已经将部分电路接线内置,所以接线仅需要将KEY/LED_CS选通端口与CS0相连即可,但作为学习过程,应更加详细的将实现电路了解,现已将实验箱所用实验器件的内部电路给出,详细电路见下页图1Word完美格式可编辑版图1:键盘及LED显示电路Word完美
3、格式可编辑版是是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号返回6列扫描完?初始化地址参数按照行列计算键值查表得键码等待按键释放返回读键输入子程序框图五、实验框图开始显示缓冲区初始化LED显示读取键值键值转换为显示数据有键输入?是否主程序框图Word完美格式可编辑版开始初始化显示参数关所有位显示取显示数据输出段码数据输出位选通信号延时位选通信号移位指向下一个显示数据返回6位完成显示程序框图六、实验程序OUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口IN_KEYequ08001h;键盘读入口datasegmentLEDBufdb6du
4、p(?);显示缓冲Numdb1dup(?);显示的数据DelayTdb1dup(?)LEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hKeyTable:;键码定义db16h,15h,14h,0ffhdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,04h,07hWord完美格式可编辑版dataendscodesegmentassumecs:code,ds:dataD
5、elayprocnearpushax;延时子程序pushcxmoval,0movcx,axloop$popcxpopaxretDelayendpDelay1procnearpushax;延时子程序pushcxmoval,0movcx,38000loop$popcxpopaxretDelay1endpDisplayLEDprocnearmovbx,offsetLEDBufmovcl,6;共6个八段管movah,00100000b;从左边开始显示DLoop:movdx,OUTBITmoval,0outdx,al;关所有八段管moval,[bx]movdx,OUTSEGoutdx,a
6、lmovdx,OUTBITWord完美格式可编辑版moval,ahoutdx,al;显示一位八段管pushaxmovah,1callDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所有八段管retDisplayLEDendpTestKeyprocnearmovdx,OUTBITmoval,0outdx,al;输出线置为0movdx,IN_KEYinal,dx;读入键状态notalandal,0fh;高四位不用retTestKeyendpGetKeyprocnearmovch,00100000bmov
7、cl,6KLoop:movdx,OUTBITmoval,ch;找出键所在列notaloutdx,alshrch,1movdx,IN_KEYinal,dxWord完美格式可编辑版notalandal,0fhjneGoon_;该列有键入deccljnzKLoopmovcl,0ffh;没有键按下,返回0ffhjmpExit1Goon_:decclshlcl,2;键值=列X4+行movch,4LoopC:testal,1jnzExit1shral,1inccldecchjnzLoopCExit1:m