《指示灯循环控制.docx》由会员分享,可在线阅读,更多相关《指示灯循环控制.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、武昌首义学院单片计算机原理及其应用实验报告(二)专业:电子信息工程班级:1902班任课老师:刘丽姓 名:龚永好成 绩:.4)单步运行仿真,可使LED1显示值加1,并按十六进制数显示图26图255)单步运行仿真,可使LED1显示值加1,并按十六进制数显示单步运行仿真,可使LED1显示值加1,并按十六进制数显示 4、实验小结通过本次试验,我掌握了外部中断的原理,学会了中断编程与程序调试的方 法。在编程软件的配合下,我实现了程序启动后,D1处于熄灯、LED1处于黑 屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED 1显示值加 1,并按十六进制数显示,显示到F后重新从1开始。有了上一个
2、试验成功的经历,做这个试验我很有信心,电路原理图也是很快 就画出来了,但代码卡壳了,后有同学点拨,方才完整写出。电路仿真后,我不 会调试,请老师帮助,我在旁边观看学习,学会了如何调试这个程序。实验三指示灯循环控制一、实验目的熟悉Keil编译软件、掌握C51编程与调试方法二、实验内容.完成实验三电路原理图的绘制;1 .编写C51程序;.练习Keil中程序动态调试方法,实现8个LED灯依次点亮功能: P0.0一P0.1 一P0.2一P0.3一 一P0.7一P0.6一PO.5T P0.0 无限循环,间隔 约 50ms;2 .观察仿真结果,完成实验报告。三、实验步骤.电路原理图图1,电路原理图.编写的
3、C51源程序#include#include#define uint unsigned int#define uchar unsigned charvoid delayms(xms)(uint j, i;for(i=xms;i0;i-)for(j=123;j0;j);)void main ()(uchar a=0xfe;while(l)(uint k;for(k=7;k0;k-)PO 二a;delayms (500);a=_crol_(a, 1);)1 .实验调试过程1)创立工程文件2)选择单片机3)编辑源程序1)将源程序加入工程中5)设置工程配置选项6)生成可执行文件7)仿真运行程序a)设计
4、好电路,通电,8只发光二极管做循环点亮控制,且亮灯顺序为D1-D2-*D3-*D4-*D5-D6-D7-D8,无限循环,两次亮灯的时间间隔约为0. 5s图1-2b)单步运行仿真,Port。端口输出电平代码为:11111101,发光二极管D2亮图1-33 就二二Mh :”八二二,:rF;C)单步运行仿真,Porto端口输出电平代码为:11111011,发光二极管D3亮图14d)单步运行仿真,Port。端口输出电平代码为:11110111,发光二极管D4亮“:篮:0:三浮te.2 .实验小结通过本次试验,我更加熟悉uVision3/4编译软件,掌握C51语言编译与调 试方法。在编程软件配合下,我实
5、现了 8只发光二极管做循环点亮控制,且亮灯 顺序为DI-D2-D3fD4f D5-D6fD7f D8,无限循环,两次亮灯的时间间隔约 为 0. 5s。“吃一堑,长一智”,有了上次试验的教训,这次上机我抓紧时间,认真预 习,没有落伍,实验时有不懂的问题马上询问同学和老师,很快就将电路原理图 画出来,代码写出来,一次成功,很开心!实验四 指示灯/数码管的中断控制一、实验目的掌握外部中断的工作原理,学会中断程序设计。二、实验内容.完成实验四电路原理图的绘制;1 .采用外部中断原理编程,按键KI、K2均设置为下降沿触发方式,且为自然 优先级;.编写C51程序,实现如下功能:K1对应于D1状态反转;K2
6、对应于0F 间的数码管加1计数显示;2 .观察仿真结果,完成实验报告。三、实验步骤.电路原理图isisi!rxii *3QbM 04 81 a: z QXE 仝 3MALIXTAL2RSTPOOADO PO VAOl PO2TAD2 P0UAD3 P04MQI P0VAD5 PO8心 P0 7/AD?P2 g8 P2 VA9 P2 3N0 P23/A11 P24/A12 P2W13 P2&*AW P27M15P30IRO P311D2 P32fJT5 P33fJTTP3M0 P35/T1 P3aWR P3TX35图211 .编写的C51源程序#includesbit P0_4=P(T4;uns
7、igned char count=0;unsignedcharled mod= 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x58, Ox5e, 0x79, 0x71;void main ()P2=0x00;P0_4=0;EA=1;EX1=EXO=1;IT1=ITO=1;while (1);)void INT OSVRO interrupt 0P0_4=!P0_4;)void INT_1SVR()interrupt 2count+;if(count=16)count=l;P2=led_modcount;)2 .实验调试过程1)程序启动后,D1处于熄灯、LED1处于黑屏状态akMUM. Ct44, v33d mao tlf2*:5:J- . :. , 4 -. - .3 O Mfr t -33 XIDT A-rfrm1rwellel ftl t* I* X PMH ft* S9i*CS tfMw Rl,f d XT OSVi 11 ifitwrnrt : e g.s,叫图222)单击K1,可使D1亮灯状态反转一次图233)模拟仿真运行程序,可使D1亮灯,LED1显示值图2-4
限制150内