专业课程设计_第1页
专业课程设计_第2页
专业课程设计_第3页
专业课程设计_第4页
专业课程设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业课程设计机自学院 石 一、课程设计内容:利用Intel 8086CPU、8259、8253、8255芯片和LED、按钮开关等元器件设计一个键盘显示系统。其中:LED显示器共8位,要求每10ms从右到左显示一遍。键盘为48阵列(键名为:09,AF,F1F16),要求每当按键“F1”时显示字符串“12345678”,其余键扫描后的处理程序暂不考虑。要求:画出系统连接图,并编写相关控制程序。(理论设计,不作上机要求)二、系统连接图:三、控制程序及简要说明1、键盘设计键盘为48阵列,如设计图所示,制成88点阵。其中8行任选4行就是48阵列。共需要32个按键组成,且按键是放置在行线和列线的交叉点上。 2、按键处理判别键盘上有无键闭合:其方法为扫描口PA0PA7输出全为“0”,读PB口的状态,若PB0PB3为全“1”(键盘上行线全为高电平),则键盘上没有闭合键;若PB0PB3不为全“1”,则有键处于闭合状态。作为一个按键从没有按下到按下以及释放是一个完整的过程。当按下一个按键时,总希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程。因此在按键按下的时候,要把手上的干扰信号以及按键的机械接触等干扰信号过滤掉,因此可以采用软件滤波的方法去除这些干扰。在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域。判别闭合键建号:对键盘的列线进行扫描,扫描口PA0PA7依次输出:PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA01 1 1 1 1 1 1 01 1 1 1 1 1 0 11 1 1 1 1 0 1 1:0 1 1 1 1 1 1 1相应读PB口状态,若PB0PB3为全“1”,则列线输出为“0”的这;一列上没有键闭合;否则,这一列上有键闭合。闭合键的键号等于为低电平的列号加上为低电平的行的首键号。例如:PA口的输出为11111101时,读出PB0PB3为1101,则1行1列相较的键处于闭合状态,第一行的首键号为8,列号位1,闭合键的键号为:N=行首键号+列号=8+1=9使CPU对键的一次闭合仅作一次处理:采用的方法为等待闭合键释放以后再判别新的键输入。在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。键盘状态判别子程序:KEYSTAT: SETB P2.0 MOV R1, #1 CLR AMOVX R1, AMOV R1, #3MOVX A, R1ANL A, 0FHCJNE A, #0FH, KEYS_YSETS BRETKEYS_Y: CLR B RET读闭合键建号子程序:KEYI: SETB P2.0 MOV R2, #0FEH MOV R4, #OKEYI_0: MOV R1, #1MOV A, R2MOVX R1, AMOV R1, #3MOVX A, R1JB ACC.0, KEYI_1MOV A, #0SJMP KEYI_PKEYI_1: JB ACC.1, KEYI_2 MOV A, #8 SJMP KEYI_PKEYI_2: JB ACC.2, KEYI_3 MOV A, #10H SJMP KEYI_PKEYI_3: JB ACC.3, KEYI_NEXTMOV A, #18HKEYI_P: ADD A, R4 CLR B RETKEYI_NEXT: CJNE R4, #7, KEYI_GOON SETB B RETKEYI_GOON:INC R4 MOV A, R2 RL A MOV R2, A SJMP KEYI_03、LED显示设计七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型(该实验中为共阳极)。由于显示的数字18的字形码没有规律可循,只能采用查表的方式来完成所需的要求。这样按着数字18的顺序,把每个数字的笔段代码按顺序排好。例如:数字“6”,亮的有a、c、d、e、f、g,因为“0”为亮,“1”为暗,所以编码1000010,即82H。按照上面的方法建立的表格如下所示:TABLEDB 0F9H,0A4H,0B0H,99H, 92H,82H,0F8H,80H4、拉幕式显示即动态数码显示。由于一次只能让一个数码管显示,因此,要显示8位的数据,必须经过让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,必须每隔1ms,就得刷新一个数码管。而这刷新时间采用单片机的定时/计数器T0来控制,每定时1ms对数码管刷新一次,T0采用方式2。 在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 主程序框图 中断服务程序框图 汇编源程序DISPBUF EQU 30HDISPCNT EQU 38HDISPBIT EQU 39HT1CNTA EQU 3AHT1CNTB EQU 3BHCNT EQU 3CHORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV DISPCNT,#8MOV A,#10MOV R1,#DISPBUFLP: MOV R1,AINC R1DJNZ DISPCNT,LPMOV DISPBIT,#00HMOV T1CNTA,#00HMOV T1CNTB,#00HMOV CNT,#00HMOV TMOD,#01HMOV TH0,#(65536-1000) / 256MOV TL0,#(65536-1000) MOD 256SETB TR0SETB ET0SETB EASJMP $INT_T0:MOV TH0,#(65536-1000) / 256MOV TL0,#(65536-1000) MOD 256MOV A,DISPBITADD A,#DISPBUFMOV R0,AMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,P1ANL A,#0F8HADD A,DISPBITMOV P1,AINC DISPBITMOV A,DISPBITCJNE A,#08H,NEXTMOV DISPBIT,#00HNEXT: INC T1CNTAMOV A,T1CNTACJNE A,#50,LL1MOV T1CNTA,#00HINC T1CNTBMOV A,T1CNTBCJNE A,#8,LL1MOV T1CNTB,#00HINC CNTMOV A,CNTCJNE A,#9,LLXMOV CNT,#00HMOV A,CNTLLX: CJNE A,#01H,NEX1MOV 30H,#8LL1: LJMP DONENEX1: CJNE A,#02H,NEX2MOV 31H,#8MOV 30H,#8LJMP DONENEX2: CJNE A,#03H,NEX3MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX3: CJNE A,#04H,NEX4MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX4: CJNE A,#05H,NEX5MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX5: CJNE A,#06H,NEX6MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX6: CJNE A,#07H,NEX7MOV 36H,#8MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX7: CJNE A,#08H,NEX8MOV 37H,#8MOV 36H,#8MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX8: CJNE A,#00H,DONEMOV 37H,#10MOV 36H,#10MOV 35H,#10MOV 34H,#10MOV 33H,#10MOV 32H,#10MOV 31H,#10MOV 30H,#10LL: LJMP DONEDONE: RETITABLE:DB0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,00HEND四、设计体会这次专业课程设计的时间跨度是很大的,从6月底到7月中包含了世博会志愿者服务的时间,但也是因为志愿者服务,期间基本上没有自己能掌控的时间,所以这份报告完成的还是比较仓促的。学过的微机原理和单片机较早很多知识有所忘记,在6月底的时候选择性的复习一下,世博会后完成设计报告。这次的设计内容和学单片机时要求做的电子钟设计有些地方比较相似,我也借鉴了以前自己做的实验设计报告。有些设计是新的,就例如拉幕式显示技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论