1专业课程设计机自学院石一、课程设计内容:利用Intel8086CPU、8259、8253、8255芯片和LED、按钮开关等元器件设计一个键盘显示系统。其中:LED显示器共8位,要求每10ms从右到左显示一遍。键盘为4×8阵列(键名为:0~9,A~F,F1~F16),要求每当按键“F1”时显示字符串“12345678”,其余键扫描后的处理程序暂不考虑。要求:画出系统连接图,并编写相关控制程序。(理论设计,不作上机要求)二、系统连接图:段码共阳位码(任选4行)列码行码MN/MXCLKREADYRESETM/IORDWRNMIINTRINTAHOLDHLDATESTALEBHEA19~A0D15~D08086CPU*系统总线VccGNDDT/RDEND7~D0CSA1A0RDWRCLK0GATE0OUT0D7~D0CSA0RDWRINTINTASP/ENVccGNDIR0~IR7G1G2AG2B0y1y2y3yCBA74LS13810kHz5V100Hz(10ms)82538259A5V84H~87HD7~D0CSA1A0RDWRRESET7PA0PA~8255A7PB~0PB5V7行6543210行76543210列列D7~D0CSA1A0RDWRRESET7PA0PA~8255A7PB~0PBBUSBUS80H~81H88H~8BH8CH~8FH7654321010系统连接简图三、控制程序及简要说明1、键盘设计键盘为4×8阵列,如设计图所示,制成8×8点阵。其中8行任选4行就是4×8阵列。共需要32个按键组成,且按键是放置在行线和列线的交叉点上。22、按键处理判别键盘上有无键闭合:其方法为扫描口PA0~PA7输出全为“0”,读PB口的状态,若PB0~PB3为全“1”(键盘上行线全为高电平),则键盘上没有闭合键;若PB0~PB3不为全“1”,则有键处于闭合状态。作为一个按键从没有按下到按下以及释放是一个完整的过程。当按下一个按键时,总希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程。因此在按键按下的时候,要把手上的干扰信号以及按键的机械接触等干扰信号过滤掉,因此可以采用软件滤波的方法去除这些干扰。在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域。判别闭合键建号:对键盘的列线进行扫描,扫描口PA0~PA7依次输出:PA7PA6PA5PA4PA3PA2PA1PA0111111101111110111111011:01111111相应读PB口状态,若PB0~PB3为全“1”,则列线输出为“0”的这;一列上没有键闭合;否则,这一列上有键闭合。闭合键的键号等于为低电平的列号加上为低电平的行的首键号。例如:PA口的输出为11111101时,读出PB0~PB3为1101,则1行1列相较的键处于闭合状态,第一行的首键号为8,列号位1,闭合键的键号为:N=行首键号+列号=8+1=9使CPU对键的一次闭合仅作一次处理:采用的方法为等待闭合键释放以后再判别新的键输入。在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。为提高CPU的工作效率,可采用中断扫描方式。当无键闭合时,CPU工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。键盘状态判别子程序:KEYSTAT:SETBP2.0MOVR1,#1CLRAMOVX@R1,AMOVR1,#3MOVXA,@R1ANLA,0FHCJNEA,#0FH,KEYS_YSETSBRETKEYS_Y:CLRBRET读闭合键建号子程序:KEYI:SETBP2.03MOVR2,#0FEHMOVR4,#OKEYI_0:MOVR1,#1MOVA,R2MOVX@R1,AMOVR1,#3MOVXA,@R1JBACC.0,KEYI_1MOVA,#0SJMPKEYI_PKEYI_1:JBACC.1,KEYI_2MOVA,#8SJMPKEYI_PKEYI_2:JBACC.2,KEYI_3MOVA,#10HSJMPKEYI_PKEYI_3:JBACC.3,KEYI_NEXTMOVA,#18HKEYI_P:ADDA,R4CLRBRETKEYI_NEXT:CJNER4,#7,KEYI_GOONSETBBRETKEYI_GOON:INCR4MOVA,R2RLAMOVR2,ASJMPKEYI_03、LED显示设计七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型(该实验中为共阳极)。由于显示的数字1-8的字形码没有规律可循,只能采用查表的方式来完成所需的要求。这样按着数字1-8的顺序,把每个数字的笔段代码按顺序排好。例如:数字“6”,亮的有a、c、d、e、f、g,因为“0”为亮,“1”为暗,所以编码1000010,即82H。按照上面的方法建立的表格如下所示:TABLEDB0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80Hafedcbgh4、拉幕式显示4即动态数码显示。由于一次只能让一个数码管显示,因此,要显示8位的数据,必须...