资源描述:
《单片机原理及应用课程设计01330new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《单片机原理及应用》课程设计报告题目:霓虹灯发生器学号U200712137姓名刘青专业电气工程及其自动化班级电气0705班指导教师黄劲院(系、所)电气与电子工程学院华中科技大学教务处制实验目的:(1)熟悉单片机的工作原理和应用方法,掌握单片机编程的一些技巧(2)利用单片机的部分硬件,编写霓虹灯发生器程序。实验内容:霓虹灯发生器:利用仿真台上的LED和发光二极管,产生由键盘选择的5种动态图案。1)LED动态显示学号007121372)发光二极管循环闪烁★★★★★★★★★★★★★★★★★★★★3)LED上半部分动态显示图案Abcdefgh4)发光二极管闪烁:从两边
2、向中间依次靠拢5)LED上半部分动态显示图案实验原理:1、单片机时钟采用内部时钟,复位采用上电复位,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。2、利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。调试结果:总体来说达到了实验设计的基本要求,但是存在一个方面的问题:在一种图案动态显示时,为了缩小程序的长度,所有检测按键的程序都放在了循环之后,因此每次都只能在一种图案检测结束
3、之后才能判断是否有按键,这使得本程序存在一定局限性,当一种图案较长时,延时较长,改进的方法是在循环中多加判断程序,但是这会使得程序更加冗余。实验心得:通过这次的课程设计,回顾了上学期单片机的课程内容,也对单片机的原理、工作方法、编程技巧有了更深一层的了解。在实验的过程中遇到了很多问题,也都能通过自己的思考以及与同学之间的讨论最后得以解决。“理论与实践相结合”在本次课程设计中得到了很好的体现。不过在设计结果中所暴露出来的问题,还是需要在以后的设计以及操作中多加注意,这样才能够更好地体现课程设计的意义。参考文献:汪建,MCS—96系列单片机原理及控制技术(第二版)
4、,武汉:华中科技大学出版社,2004年2月附录:程序代码;--------------------------------------------------------------C8255EQU0C006H;8255命令口地址P8255AEQU0C000H;8255PA口地址P8255BEQU0C002H;8255PB口地址P8255CEQU0C004H;8255PC口地址;---------------------------------------------------------------AXEQU1CHALEQU1CHAHEQU1DHBLEQU
5、1EHDXEQU22HDLEQU22HEXEQU24HELEQU24HFXEQU26HFLEQU26HGXEQU28HGLEQU28HHXEQU30HHLEQU30HHHEQU31HIXEQU32HILEQU32HIHEQU33HMM1XEQU34HMM1LEQU34HMM1HEQU35HMM2XEQU36HMM2LEQU36HMM2HEQU37HMM3XEQU38HMM3LEQU38HMM3HEQU39HMM4XEQU40HMM4LEQU40HMM4HEQU41HYDYX1EQU42HYDYL1EQU42HYDYH1EQU43HYDYX2EQU44HYDYL
6、2EQU44HYDYH2EQU45HYDYX3EQU46HYDYL3EQU46HYDYH3EQU47HFTXEQU48HFTLEQU48HFTHEQU49HFQXEQU50HFQLEQU50HFQHEQU51HWLEQU52H;---------------------------------------------------------------ORG2080HLDSP,#0FCHCLRGXLCALLDELAY;延时LDBAL,#82H;PB口输入,PA,PC口输出STBAL,C8255[0]LDBAL,#08H;使PC3置1STBAL,P8255CKB
7、_DIS:LDBAL,#08HSCALLRD_KB;读键子程序JBSAL,4,KB_DIS;等待SCALLDISP;显示子程序;---------------------------------------------------------------DISP:LDBFL,ALLDBGL,ALLDBMM1L,ALLDBMM2L,ALLDBMM3L,ALLDBMM4L,ALANDBGL,#0FFHJELOOP;判断是否按了0,有就跳转ANDBFL,#0FEHJEHSSO_ME1;判断是否按了1,有就跳转ANDBMM1L,#0FDHJEHSSO_ME2;判断是否
8、按了2,有就跳转ANDBMM2L,#0