单片机原理及应用课程设计01330_第1页
单片机原理及应用课程设计01330_第2页
单片机原理及应用课程设计01330_第3页
单片机原理及应用课程设计01330_第4页
单片机原理及应用课程设计01330_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用课程设计报告题 目:霓虹灯发生器学 号 U200712137 姓 名 刘 青 专 业 电气工程及其自动化 班 级 电气0705班 指 导 教 师 黄 劲 院(系、所) 电气与电子工程学院 华中科技大学教务处制实验目的:(1) 熟悉单片机的工作原理和应用方法,掌握单片机编程的一些技巧(2) 利用单片机的部分硬件,编写霓虹灯发生器程序。实验内容:霓虹灯发生器:利用仿真台上的LED和发光二极管,产生由键盘选择的5种动态图案。1) LED动态显示学号007121372) 发光二极管循环闪烁 3) LED上半部分动态显示图案Abcdefgh4) 发光二极管闪烁:从两边向中间依次靠拢5)

2、LED上半部分动态显示图案实验原理: 1、单片机时钟采用内部时钟,复位采用上电复位,八个发光二极管 L1L8 分别接在单片机的 P1.0 P1.7 接口上 , 输出 “ 0 ” 时 , 发光二极管亮 , 开始时P1.0P1.1P1.2P1.3P1.7P1.6P1.0 亮,重复循环。2、利用取表的方法,使端口 P1 做单一灯的变化:左移 2 次,右移 2 次,闪烁 2 次(延时的时间 0.2秒)。调试结果:总体来说达到了实验设计的基本要求,但是存在一个方面的问题:在一种图案动态显示时,为了缩小程序的长度,所有检测按键的程序都放在了循环之后,因此每次都只能在一种图案检测结束之后才能判断是否有按键,

3、这使得本程序存在一定局限性,当一种图案较长时,延时较长,改进的方法是在循环中多加判断程序,但是这会使得程序更加冗余。实验心得:通过这次的课程设计,回顾了上学期单片机的课程内容,也对单片机的原理、工作方法、编程技巧有了更深一层的了解。在实验的过程中遇到了很多问题,也都能通过自己的思考以及与同学之间的讨论最后得以解决。“理论与实践相结合”在本次课程设计中得到了很好的体现。不过在设计结果中所暴露出来的问题,还是需要在以后的设计以及操作中多加注意,这样才能够更好地体现课程设计的意义。参考文献:汪建,MCS96系列单片机原理及控制技术(第二版),武汉:华中科技大学出版社, 2004年2月附录:程序代码;

4、-C8255 EQU 0C006H ;8255命令口地址P8255A EQU 0C000H ;8255 PA口地址P8255B EQU 0C002H ;8255 PB口地址P8255C EQU 0C004H ;8255 PC口地址;-AX EQU 1CH AL EQU 1CH AH EQU 1DHBL EQU 1EHDX EQU 22HDL EQU 22HEXEQU 24HELEQU 24HFXEQU 26HFLEQU 26HGXEQU 28HGLEQU 28HHX EQU 30H HL EQU 30H HH EQU 31HIX EQU 32H IL EQU 32H IH EQU 33HMM1

5、X EQU 34H MM1L EQU 34H MM1H EQU 35HMM2X EQU 36H MM2L EQU 36H MM2H EQU 37HMM3X EQU 38H MM3L EQU 38H MM3H EQU 39HMM4X EQU 40H MM4L EQU 40H MM4H EQU 41HYDYX1 EQU 42HYDYL1 EQU 42HYDYH1 EQU 43HYDYX2 EQU 44HYDYL2 EQU 44HYDYH2 EQU 45HYDYX3 EQU 46HYDYL3 EQU 46HYDYH3 EQU 47HFTX EQU 48HFTL EQU 48HFTH EQU 49HF

6、QX EQU 50HFQL EQU 50HFQH EQU 51HWL EQU 52H;- ORG 2080H LD SP,#0FCH CLR GX LCALL DELAY ;延时 LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255CKB_DIS: LDBAL,#08H SCALL RD_KB ;读键子程序 JBS AL,4,KB_DIS ;等待 SCALL DISP ;显示子程序;- DISP:LDB FL,ALLDBGL,ALLDBMM1L,ALLDBMM2L,ALLDBMM3L,ALLDBMM

7、4L,ALANDB GL,#0FFH JELOOP;判断是否按了0,有就跳转ANDB FL,#0FEH JEHSSO_ME1;判断是否按了1,有就跳转ANDB MM1L,#0FDH JEHSSO_ME2;判断是否按了2,有就跳转ANDB MM2L,#0FCH JEHSSO_ME3;判断是否按了3,有就跳转ANDB MM3L,#0FBH JEHSSO_ME4;判断是否按了4,有就跳转 ANDB MM4L,#0FAHJNE KB_DIS;判断是否按了5,没有就返回SJMP HSSO_ME5HSSO_ME1: LJMP HSO_ME1HSSO_ME2: LJMP HSO_ME2HSSO_ME3: L

8、JMP HSO_ME3HSSO_ME4: LJMP HSO_ME4HSSO_ME5: LJMP HSO_ME5 LOOP:LDBBL,#08H LDB EL,#0E8HLDBGL,#00HLOOP1:STB EL,P8255C ;位选LDB DL,DL_DATGX ;段选 STB DL,P8255A SCALL DELAY2SUB EL,#20HADDB GL,#01HDJNZ BL,LOOP1LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL RD_KB ;读

9、键子程序 JBS AL,4,LOOP ;等待 LCALL DISP ;显示子程序 RET ;- RD_KB: LDB BL,#0AH ;键盘扫描第一行 STB BL,P8255C0 SKIP SKIP LDB AL,P8255B0 ;读键值 XORB AL,#0FFH JNE KEYVAL ;判键是否按下 LDB BL,#09H ;扫描第二行 STB BL,P8255C0 SKIP SKIP LDB AL,P8255B0 XORB AL,#0FFH JE NOKEYKEYVAL: ;计算键码 ANDB BL,#01H SHL BL,#03H LDB AH,AL LDB AL,#0FFHSHIF

10、T: INCB AL SHRB AH,#01H JNC SHIFT ORB AL,BL SCALL DELAY SJMP KBEXIT NOKEY: LD AL,#10HKBEXIT: RET;- DELAY: LD DX,#0F00H ;延时子程序1DELAY1: DEC DX JNE DELAY1 RET;-DELAY2: LD DX,#0230H ;延时子程序2DELAY3: DEC DX JNE DELAY3 RET;-DELAY41:LD YDYX1,#0002H ;延时子程序3DELAY42:LD YDYX2,#0FFFFHDELAY43:LDYDYX3,#0FFFFHDELAY4

11、4:DJNZYDYX3,DELAY44DJNZ YDYX2,DELAY43DJNZYDYX1,DELAY42 RET;- DELAY411:LD YDYX1,#0FF1H ;延时子程序3DELAY412:LD YDYX2,#0FFFFHDELAY413:DJNZ YDYX2,DELAY413DJNZYDYX1,DELAY412 RET;- DL_DAT: DB 3FH,3FH,07H,06H,5BH,06H,4FH,07H ;0,0,7,1,2,1,3,7DL_DAT1:DB 21H,01H,01H,01H,01H,01H,01H,03H DL_DAT2:DB 0CH,08H,08H,08H,

12、08H,08H,08H,18HDL_DAT3:DB 3FH,3FH,07H,06H,5BH,06H,4FH,07H ;- HSO_ME1:LDBBL,#08HLDB IL,#0FEHP137: LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 SHLB IL,#01H ADDB IL,#01HDJNZ BL,P137LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL RD_KB

13、 ;读键子程序 JBS AL,4,HSO_ME1 ;等待 LCALL DISP ;显示子程序HSO_ME2:LOOP11:LDBBL,#08H LDB EL,#0E8HLDBGL,#00HLOOP111:STB EL,P8255C ;位选LDB DL,DL_DAT1GX ;段选 STB DL,P8255A SCALL DELAY411SUB EL,#20HADDB GL,#01HDJNZ BL,LOOP111LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL R

14、D_KB ;读键子程序 JBS AL,4,LOOP12 ;等待 LCALL DISP LOOP12:LDBBL,#08H LDB EL,#08H+LDBGL,#00HLOOP112:STB EL,P8255C ;位选LDB DL,DL_DAT2GX ;段选 STB DL,P8255A SCALL DELAY411ADDB EL,#20HADDB GL,#01HDJNZ BL,LOOP112LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL RD_KB ;读键子程

15、序 JBS AL,4,LOOP11 ;等待 LCALL DISP HSO_ME3:LDBBL,#08H LDB EL,#0E8HLDBGL,#00HLLOOP1:STB EL,P8255C ;位选LDB DL,DL_DAT3GX ;段选 STB DL,P8255A SCALL DELAY411SUB EL,#20HADDB GL,#01HDJNZ BL,LLOOP1LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL RD_KB ;读键子程序 JBS AL,4,H

16、SO_ME3 ;等待 LCALL DISP ;显示子程序HSO_ME4:LDB IL,#7EH LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#0BDH LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#0DBH LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#0E7H LDB HL,#8

17、0H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H SCALL RD_KB ;读键子程序 JBS AL,4,HSOM4 ;等待 LCALL DISP HSOM4: LDB IL,#0EEH LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#0DDH LDB

18、HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#0BBH LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411 LDB IL,#77H LDB HL,#80H ;PB,PA,PC口输出 STB HL,C82550 STB IL,P8255B LCALL DELAY411LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C

19、LDBAL,#08H SCALL RD_KB ;读键子程序 JBS AL,4,HSO_M4 ;等待 LCALL DISP HSO_M4: LJMP HSO_ME4HSO_ME5:LD WL,#03HHSI88: PT1: LD YDYX2,#004FHPT11: LDB EL,#68HSTB EL,P8255C ;位选LDB DL,#21H ;段选 STB DL,P8255A LCALL DELAY2 LDB EL,#88HSTB EL,P8255C ;位选LDB DL,#03H ;段选 STB DL,P8255A LCALL DELAY2 DJNZ YDYX2,PT11LDB AL,#82H

20、 ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1 STB AL,P8255C LDBAL,#08H LCALL RD_KB ;读键子程序 JBS AL,4,HSI152 ;等待 LCALL DISP HSI152:LD YDYX1,#002FH PT2: LD YDYX2,#0FFFFHPT22: LDB EL,#48HSTB EL,P8255C ;位选LDB DL,#01H ;段选 STB DL,P8255A LDB EL,#0A8HSTB EL,P8255C ;位选LDB DL,#01H ;段选 STB DL,P8255ADJNZ YDYX2,PT22DJNZYDYX1,PT2LDB A

温馨提示

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

评论

0/150

提交评论