1、简易计算器完整课程设计一、设计要求1设计4*4的键盘,其中10个数字键09,第十三个键为”+“,第十五个键为”=“2 ,实现1位数的简单加运算二、硬件系统设计1、LED接口电路简易计算器需要2位8段码LED显示电路。用LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。然后接至各数码显示器的共阴极端。2、键盘接口电路简易计算器需要4*4的行列式键盘。8255A的B口作为输出端,C口作为输出端。采用的是方式0。3、计算器逻辑电路图将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图逻辑电路结构如下:m1-m4x0-x3A0-DpCpu 8255
2、 键盘三、软件设计1、LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器,器排列形状如下图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字09的共阴极字形代码如下表:09七段数码管共阴级字形代码显示字型gfedcba段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh91101111
3、6fh2位LED显示的程序框图如下:2、读键输入程序设计 为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如下:3、主程序设计 (1)数值送显示缓冲程序设计简易计算器所显示的数值最大位为一位。(2)运算主程序设计 首先初始化参数,送LED低位显示“0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、还是功能键(“+” “=” ),是数值键则送LED显示并保存数值,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序
4、的首地址。运算主程序框图如下所示:4、简易计算器源程序con8255 equ 06c6h ;8255的控制端口的物理号c8255 equ 06c4h ;C端口的端口号b8255 equ 06c2h ; B端口的端口号a8255 equ 06c0h ; A端口的端口号data segmentlist DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;对应数字的显示码keycode DB 0EEH, 0DEH, 0BEH, 7EH DB 0EDH, 0DDH, 0BDH, 7DH
5、 DB 0EBH, 0DBH, 0BBH, 7BH DB 0E7H, 0D7H, 0B7H, 77H ;对应键的特征值(键盘识别码)num1 dw 0 ;偏移量x DB 0FFH ;存放参与运算的第一个数y DB 0FFH ;存放运算符z DB 0FFH ;存放参与运算的第二个数re DB 0FFH ;存放运算结果data endssstack segment stackssda db 100 dup(?)sstack endscode segment assume cs:code, ds:datastart: mov ax, data mov ds, ax call init8255 ;初始
6、化8255ispk: call clear ;B端口清零 call ispkey ;判断是否有建按下 and al, 0fh cmp al, 0fh je ispk call findkeyboard call dispnum cmp num1, 14 je js1 call cunshu jmp disnum1 js1: call jisuan mov x, 0ffh mov y, 0ffh mov z, 0ffh mov nUM1, 0 mov re,0ffh call dispnum mov cx,1000 www: loop www jmp ispk disnum1: is: jmp
7、ispkmov ah, 4ch int 21h init8255 proc near ;初始化8255 mov al, 10001001b mov dx, 06c6h out dx, al retinit8255 endpclear proc near mov al, 00h mov dx, b8255 out dx, alclear endp ispkey proc near ;判断是否有建按下 mov al, 00h mov dx, a8255 out dx, al mov dx, c8255 in al, dx retispkey endp findkeyboard proc near
8、;找具体键盘按键cl1: mov al, 00001110b mov ah, al shl ah, 4 mov dx, a8255 ;al传递给a端口 out dx, al mov dx, c8255 ;c端口读入数据赋值给al in al, dx and al, 0fh cmp al, 0fh je cl2 jmp exitkcl2: mov al, 00001101b mov ah, al shl ah, 4 mov dx, a8255 out dx, al mov dx, c8255 in al, dx and al, 0fh cmp al, 0fh je cl3 jmp exitkcl
9、3: mov al, 00001011b mov ah, al shl ah, 4 mov dx, a8255 out dx, al mov dx, c8255 in al, dx and al, 0fh cmp al, 0fh je cl4 jmp exitkcl4: mov al, 00000111b mov ah, al shl ah, 4 mov dx, a8255 out dx, al mov dx, c8255 in al, dx and al, 0fh cmp al, 0fhexitk: add ah, al ;得到键盘识别码 ret findkeyboard endp disp
10、num proc near ;显示数字子程序 cmp ah,0b7h jnz ll2 mov cl,re mov ch,0 mov si,offset list add si,cx mov al,si mov dx,06c2h out dx,al mov num1,14 jmp ll3ll2: mov cx, 16 mov si, offset keycode mov di, offset list mov num1, 0numl1: cmp si, ah je exit inc si add num1, 1 loop numl1 exit: add di, num1 ;显示相应数字 mov
11、al, di mov dx, 06c2h out dx, alll3: ret dispnum endp CUNSHU PROC NEAR ;存放数据 PUSH AX CMP X, 0FFH JNE Y1 MOV AL, BYTE PTR NUM1 MOV X, ALJMP EX1Y1: CMP Y, 0FFH JNE Z1 MOV AL, BYTE PTR NUM1 MOV Y, AL JMP EX1Z1: MOV AL, BYTE PTR NUM1 MOV Z, ALEX1: POP AX RET CUNSHU ENDP JISUAN PROC NEAR ;计算子程序 PUSH SI LE
12、A SI, KEYCODE MOV AX, 0 ADD AL, X ADD AL, Z ADD SI, AX MOV AH, SI MOV RE, ALPOP SI RET JISUAN ENDP code ends end start四、心得体会 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 我的题目是简易计算器,对于我们这些实践中的新手来说,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次
13、课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。 这次课程设计通过我们小组的努力终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献 微机原理与接口技术 主编:马春燕 电子工业出版社 微机原理与接口技术 主编:谭浩强 电子工业出版社微机原理与接口技术 主编:尚凤军 电子工业出版社 (注:可编辑下载,若有不当之处,请指正,谢谢!)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1