




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告课程设计报告 姓名:姓名: 专业:专业: 课程名称:课程名称:微机接口技术微机接口技术 班级:班级: 系(分院):系(分院): 年年 月月 目目 录录 一、课程设计要求一、课程设计要求.错误!未定义书签。 二、总体设计二、总体设计 .3 三、三、 硬件原理图硬件原理图 .4 四、程序设计四、程序设计 .7 五、调试过程五、调试过程 .15 六、心得体会:六、心得体会: .16 七、参考文献七、参考文献 .17 一、一、课程设计要求课程设计要求 1、要求 选取 8255A 作为扩展接口芯片,输入设备为开关和非编码键盘, 输出设备为发光二极管和七段数码管。要求由键盘输入倒计时时间 (至
2、少为三位,分和秒用“-”隔开) ,要求计时精度高于 0.1 秒,输 入计时时间后,由七段数码管显示并在开关的控制下,实现“开始 倒计时” 、 “暂停倒计时”和“结束倒计时” 。倒计时结束、倒计时暂 停、倒计时开始要由不同的发光二极管点亮或闪烁状态予以指示。 2、目的 单片机是一款功能十分强大,集成度非常高的数字处理系统。 为了进一步加强对理论理解的深度和掌握的程度,提高动手能力以 及初步的系统分析与设计实现的能力,特作此设计。 二、总体设计二、总体设计 1、总体要求 设计中包括开关、非编码矩阵键盘、发光二极管、七段数码管 在内的两种输入设备和两种输出设备。总体设计中至少要给出这 4 部分的硬件
3、连接、软件驱动、地址分配及相应的设计原理的描述。 2、设计原理的描述 电源开关=PC0,暂停开关=PC1;电源指示灯=PC7,暂停指示灯 =PC6;PC0=1 启动,=0 退出,PC1=1 暂停,=0 不暂停,电源灯常亮, 暂停等闪烁,非暂停时刻熄灭。 三、三、 硬件原理图硬件原理图 1、模块一硬件图 图 1 单片机原理图 GNDGND R1 VCCGND VCC 1 2 3 4 JP1 4 HEADER GND 10 9 8 7 6 5 4 3 2 1 1 2 vcc PB0 PB1 PB2 AVCC PB3 AREF PB4 GND PB5 PB6 PB7 PD0 PC0 PD1 PC1
4、PD2 PC2 PD3 PC3 PD4 PC4 PD5 PC5 PD6 PC6 PD7 GND 1 2 1 2 VCC VCC VCC 23 24 25 26 27 28 1 20 21 22 14 15 16 17 18 19 9 10 2 3 4 5 6 11 12 13 MOSI RESET MISO SCK RXD TXD JP2 J2 CON2 J3 CON3 R2 R3 R4 R6 R5 R7 CON2 D1 D2 2、模块二引脚表 表 1 74ls48 引脚功能表 3、模块三字形显示 图 2 七段数码管的字形 输入输出十进制数 或功能LTRBID C B A BI/RBO abc
5、defg 0HH0 0 0 0H1111110 1HX0 0 0 1H0110000 2HX0 0 1 0H1101101 3HX0 0 1 1H1111001 4HX0 1 0 0H0110011 5HX0 1 0 1H1010011 6HX0 1 1 0H0010111 7HX0 1 1 1H1110000 图 3 数码管与各设备互连 图 4 键位码与各设备原理图 17 PC3 34 33 32 31 30 29 28 27 5 36 9 8 35 6 7 26 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 D0 D1 D2 D3 D4 D5 D6 D7 IOR
6、IOW A0 A1 REST CS 21821F +5V 电源开关 18 PB0 20 PB2 22 PB4 23 PB5 25 PB7 15 PC1 16 PC2 13 PC4 12 PC5 11 PC6 10 PC7 4 PA0 3 PA1 2 PA2 1 PA3 40 PA4 39 PA5 38 PA6 37 PA7 10K*11 C D E F B A 9 8 4 5 6 7 3 2 1 0 R P M G 19 PB1 +5V 暂停开关 21 PB3 24 PB6 14 PC0 agagagagagag cccccccc cc cc +5V +5V IOWA8 A0 fedca 1Q
7、 2Q 3Q 4Q 5Q 6Q 7Q 8Q CLR 74LS273(段) CP 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q b 6Q 5Q 4Q 3Q 2Q 1Q CLR 74LS273(位) CP 6Q 5Q 4Q 3Q 2Q 1Q D0 D1 D2 D3 D4 D5 D6 D7 RESE T 74LS138 C B A G2A G1 G2B Y6# Y7# +5V +5v 四、程序设计四、程序设计 1、程序流程图 图 四 流程图 开始 输入倒计时数 是否输完 倒记时 否 是 输入执行命令 R 判断暂停 P 否 是 保存断点,点亮指示灯 停止倒计时执行 判断恢执行 M 否 是 恢复断点时
8、间 是否执行倒计 时 等待 是 2、源代码 data segment pap equ 218h pbp equ 219h pcp equ 21ah cp equ 21bh ;控制字 dp equ 210h ;段选 wp equ 211h ;位选 table dw 0101h,0102h,0104h,0108h,0110 h,0120h,0140h,0180h dw 0201h,0202h,0204h,0208h,0210 h,0220h,0240h,0280h,0410h,04 20h,0440h,0480h char db 12,13,14,15,11,10,9,8,4,5,6,7,3, 2
9、,1,0 Da1 db 3fh,30h,5bh,4fh,66h,6dh,7dh,07 h,7fh,6fh,77h,7ch,58h,5eh,79h,7 1h,40h Cc1 dw ? Cc2 dw ? W2 db ? data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax call kg ;开关 mov w2,1 ;输入第一个键 位码 call key mov bh,di ;保存第一个 键位码 mov w2,2 ;输入第二个 键位码 call dey mov bl,di ;保存第二个 键位码 call z
10、yc ;延迟程序 call ds1 ;进行倒数程序 mov ah,4ch int 21h dey proc ;按键子程序 push si ;保存寄存 器 push ax push bx push cx push dx mov al,82h ;初始化 a 口, c 口为输出,b 口为输入 mov dx,cp out dx,al mov ax,0 r1:mov al,0 ;用反转法对键 位进行扫描 mov dx,pap out dx,al mov dx,pbp in al,dx cmp al,offh mov dx,di lea di,da1 sub dx,cc1 ;还原di的 值 mov cc2
11、,si ;找到di(十 位)数字的所在相对一个数的 位置 mov cx,si lea si,da1 sub cx,si ;得到十位的 循环次数 mov si cc2 ;还原s2的值 dec di sub dx,0 jz e2 ;判断个位是不是为 零;如果为 0,跳过下面的调 用 call ds4 ;输出在输入时候 不满十个数的各位数字 e2:sub cx,0 jz e1 ;判断十位是否为零, 如果为 0,跳过下面的调用 dec si ;因为在前面已经输 出了一次个位数,所以这里减 一 mov dx,10 d5:lea di,da1+9 ;从第九个 数开始倒数,完成最后的倒数 循环 call d
12、s4 ;进行倒数 dec si ;十位数字减一 loop d5 e1:pop ax pop bx pop cx pop dx pop si pop di ret ds1 endp ds4 proc ;倒数子程序 push dx push cx push bx push ax mov cx,dx dp1:mov dx,20 dg2:push dx mov bh,si mov bl,di call zyc ;调用延迟程序 call exit ;调用退出程序 mov al,si ;显示倒数的数 字 mov dx,211h out dx,al mov al,1 mov dx,210h out dx,a
13、l call yca mov al,di mov dx,211h out dx,al mov al,2 mov dx,210h out dx,al call yca call zyc pop dx dec dx cmp dx,0 jnz dg2 dec di loop dp1 pop ax pop bx pop cx pop dx ret ds4 endp yc proc ;延迟程序 push cx push bx mov bx,5000 yc1:movcx,4000 loop $ dec bx jnz yc1 pop bx pop cx mov bl,al mov cx offfh loop
14、 $ mov dx,cp mov al,90h out dx,al mov dx,pbp mov al,bl out dx,al movdx,pap in al,dx mov ah,bl not ax lea si table lea di char mov cx,16 r2:cmp ax,si jz nxt add si,2 inc di loop r2 nxt:mov dx,dp ;将键盘上输 4 入数据显示在数码管上 mov alw2 out dx,al mov al,di out dx,al mov dx,cp mov al,82h out dx,al call yc pop dx p
15、op cx pop ax pop si ret key endp kg proc ;开关 push ax push bx push cx push dx mov dx,cp ;初始化 c 口为 输入,其他口为输出 mov al,89h out dx,al mov dx,pcp kg1:in al,dx test al,1 ;当 k1 为 0 时启 动程序 jz kg1 mov cx,5000h kg2:mov dx,pap mov al,ofeh loop kg2 pop dx pop cx pop bx pop ax ret kg endp ds1 proc ;倒数程序 push di pu
16、sh si push cx push ax lea si,da1 lea di,da1 d1:cmp di,bl jz d2 inc di jmp d1 d2:cmp si,bh jz d4 inc si jmp d2 d4:mov cc1,di yca proc ;延迟程序 push cx push bx mov bx,1500 c2:mov cx,1000 loop $ dec bx jnz yc2 pop bx pop cx ret yca endp zyc proc ;延迟主程序,主 要是用于显示和延迟 push si push di push ax push bx push cx p
17、ush dx s2:call exit mov dx,cp ;初始化 a 口,b 口为输出,c 口低四位为输入, 高四位为输出 mov al,81h out dx,al mov dx,pcp ;判断 k3 是否 为 0,如果为 0,则进入延迟 in al,dx test al,4h jnz s3 mov dx,dp mov al,01h out dx,al mov dx,wp mov al,bh out dx,al mov dx,pcp ;显示灯 mov al,0h out dx,al call yca mov dx,dp mov al,02h out dx,al mov dx,wp mov
18、al,bl out dx,al mov dx,pcp ;显示灯灭 mov al,40h out dx,al call yca jmp s2 s3:pop dx pop cx pop bx pop ax pop di pop si ret zyc endp exit proc ;退出程序 push ax push bx push cx push dx push di push si mov dx,cp ;初始化 c 口输 入,a,b 口为输出 mov al,89h out dx,al mov dx,pcp in al,dx test al,2h jz ex1 mov ah,4ch int 21h
19、 ex1:pop si pop di pop dx pop cx pop bx pop ax ret exit endp code ends end start 五、调试过程五、调试过程 首先将发光二级管,键盘,七段数码管一个一个的分别进行调 用,在调试过程中,通过实验的效果来发现错误的地方,并加以改 善,直到调试到的结果与想要的现象相符,再将各模块进行拼接, 进行调试,调试成功为止。 键盘和七段数码管的程序模块首先经过单独调试,然后在模块 拼接后再进行调试。在调试过程中遇到的问题要给出分析过程及解 决办法。 在调试过程中,首先出现的问题是在做发光二极管实验中连线 总是出现问题,导致部分指示灯
20、不能准确的显示,经调整实验成功, 在编程过程中也出现了由于对汇编语句撑握不够熟练导致程序无法 调试,检查最终得以解决其次是在七段数码管显示中出现多位显 示的闪烁问题,后经老师指导,检查出是延时程序出现问题,通过 缩短刷新时间间隔将问题解决。 在 DOS 状态下编译程序,编译通过后建立连接。输入文件名才 能运行程序。 六、心得体会六、心得体会 通过前几个的小实验,从中了解了输出端口 211h,还有每个数字输出的位 置由几个数控制。若想在第一个位置上显示则将 210h 处的 dl 赋值为 1h,第二 个为 2h,第三个为 4h,第四个为 8h,第五个为 10h,第六个为 20h,这只是在 几个位置
21、上显示单个的数。若想要显示前 3 个位置,就将 210h 处的 al 赋值为 7。在掌握 8255A 的工作方式 ,开始做实验时,没有想到延迟的位置,导致灯 的闪烁没有规律,其次程序正常执行后,因把 5、6 的线序互相插反了,导致灯 亮的顺序发生了变化。最后灯循环时,最后 2 盏灯没有循环到,因开始把灯设 置为全亮,此时为 0,占有用了一个空间,经过几次反复的试验,做出了正确 的程序。在上面的实验中,加了开关控制、暂停,退出一系列的操作。总体思 想为当开关 1 开时,流水灯开始循环;当开关 2 开时,流水灯暂停,流水灯继 续循环流动,当开关 2 关时,流水灯暂停,开关 1 关闭。数码管的显示,之前 是静态的初始化,动态数码管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电线电缆绞丝工艺知识培训课件
- 电站操作规程培训课件
- 2.2做更好的自己 教案(表格式) 统编版道德与法治八年级上册
- 高电位活化细胞课件
- 高炉煤气安全知识培训课件
- LC-SF-14-生命科学试剂-MCE
- 2-Hydroxydihydrodaidzein-生命科学试剂-MCE
- Calindol-hydrochloride-13C-D2-生命科学试剂-MCE
- 高温假期安全知识培训课件
- 西班牙考试题及答案
- 2025年食品安全监督员专业技能考核试题及答案解析
- 七年级初一新生家长会上校长走心讲话:陪孩子一起长大是一场不能重来的旅程
- 企业微信办公使用教程
- 红十字应急救护创伤止血
- 2025-2026学年高二上学期开学入学教育主题班会【课件】
- 学堂在线 大学历史与文化 章节测试答案
- 大学澡堂管理办法
- 百货商场服务礼仪培训
- 汉语言文学转专业考试题目含答案
- 出租房屋安全管理办法
- 神经外科一般护理常规
评论
0/150
提交评论