51单片机实验报告.docx

上传人:枫** 文档编号:548793376 上传时间:2023-08-30 格式:DOCX 页数:11 大小:15.93KB
返回 下载 相关 举报
51单片机实验报告.docx_第1页
第1页 / 共11页
51单片机实验报告.docx_第2页
第2页 / 共11页
51单片机实验报告.docx_第3页
第3页 / 共11页
51单片机实验报告.docx_第4页
第4页 / 共11页
51单片机实验报告.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《51单片机实验报告.docx》由会员分享,可在线阅读,更多相关《51单片机实验报告.docx(11页珍藏版)》请在金锄头文库上搜索。

1、51单片机实验报告 单片机实验报告 实验一 点亮流水灯 实验现象 Le灯交替亮,间隔大约0ms。 实验代码 #iclde eg51、 od Delay10ms(unsigned nt c); oi ain() )1(elihw P0 = 0x00; Del10(5); ;x0 = 0P ;)5(sm1yaleD oid ely1m(unsigd nt c) unned cha a, ; fr (;c0;c-) )b;0b;83=b( rof fo (=130;a;-); 实验原理 W W i i ( 1) 表示一直循环。 循环体内首先将 P0 得所有位都置于零,然后延时约5 5 *10=500

2、m,接着 0 P0 位全置于 1 1 ,于就是 D LED 全亮了。接着循环,直至关掉电源. . 延迟函数就是通过多个r r 循环实现得。 实验 2 流水灯(不运用库函数) 实验现象 起初 led 只有最右面得那一个不亮,半秒之后从右数第二个也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #nlud eg5、 incude inr、h vid ela1s(nsigned nt c); mi() unignd car LED; E = 0fe; while (1) ;L = 0P Dlay1m(50); ; DEL = DL )00x0 = 0P( fi ;ex0 =

3、DEL void Dlay10(nsined int ) unsied ca a, b; fo (;0;c) )-;0;8=b( rof ;)-;a;03a( rf 实验原理 这里运用了语言中得位运算符, , 位运算符左移, , 初始值得二进制为 111 1 0, 之后左移一次变成 111 1 0 0 ,当变成0000 0 0000 时通过 f if 语句重置 1 1 1 11110 、延迟函数在第一个报告已经说出了,不再多说. . 实验 3 流水灯(库函数版) 实验现象 最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环. 实验代码 #nude

4、re5、 clde intrns、 vid ela10(unsignd int c); vo man(voi) unsined char ED; ;EFx0 DE )1(eiw P0 = LED; ;)05(s01yaleD ;)1,DE(_lorc_ = EL void Dlay10s(unsigne in c) unsin ca , b; fr (;c0;) o (=38;b0;b-) ;)-;0a;01a( 实验原理 利用头文件中得函数, _cro _( , , ), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位 补全时都就是用那个移位移除得

5、数据, , 由此比前一个例子不需要f if 语句重置操作. . 数码管实验 实验现象 单个数码管按顺序显示-与 A-F。 #nclude5、h o Dlayms(usge nt ); unsigne c co DG_CODE16=0xF, 06, 05B, x4F, 0x6, 06D, xD, 07,F, x6F, 0x7, 0xC, 09, x5E, x79, 0x71; m(void) ;0 i rahc dngsnu whie(1) P0= G_CODE; ;+i )61 = i(f ; = i ;)0(sm1ale voi Deay10ms(unsgd int c) / 0us usi

6、gn hr a, ; fo (;c0;c-) r (38;0;-) ;);0;0=a( f 实验原理 根据数码管得点亮原理,依次找到代表 0 0 ,A- -F F 得位码,用循环与延迟函数就可以达到要求了。 实验 动态数码管 #ncludreg1、h eine GPIO_DIG 0 #define GP_PLACE P1 unsned char code DIG_PAC8 = xe,0xfd,f,xf7,0xef,0xd,0bf,x7; unsiged chr code DG_OE17 = 0x3f,0x06,0x5,04f,x66,0xd,0x7d,0x, x7f,0x6f,7,x7c,0x

7、3,x5e,0x79,0x1; nsnd cha DipaData8; void igDisply(); oi (void) unsigned char i; f(i=; ; i+) Displaatai = DIG_CODEi; wle(1) ;)(alsiDgi void Digiplay() ;i rahc disnu ;j i dgsnu for(i=; 8; i+) ;iECP_GID = ECAPIPG ;itDyalpsiD = IIPG ;1 = j hl(j); ;0x = GID_OPG 实验原理 依然找到相应数字与字母得编码, , 由于必须通过快速扫 描利用视觉暂留来实现

8、数码管得显示, , 分段码与位码,不断扫描。最后如果更换数字得话, , 需要消隐操作,防止数码管重复显示所带来得不清楚. . 实验 外部中断 实验现象 每按一下独立按键,就会在数码管显示屏上+1. include re1、h #include inrin、h si LS13A=P; sbit LS13B=P3; it LS13C=P2; unignd in Ldumal_1,LedumVl,edOut8; Uined char code Dip_ab= 0x3f ,006 , x5b ,xf, 0x6 , xd , 0xd , 0x07 , 0x7f , , 040; vi delay(sig

9、ne it i) har ; fr(i; i 0; i-) for(j = 200; 0; -); vod in(id) unsignd a i; =0xff; P=0xff; P2=0xff; IT0=1; EX0=; 1=1; EX=1; EA=1; hle(1) LedOu0Dis_TabLedNmVal_%000/10; LedOu1=i_TabLedNmV_1%1000/10080; edOutDis_TabLdNumVl_%10/10; edOt3DispTabdNumVal_1%0; ;0001/000012_lamuNdeLaT_psi=4tuOeL LdOu=DipTaLed

10、NumVal_2%100/10; dut6=Disp_TabLedumVal_100; Ledut7=Dip_TbLedumVal_210; for( i0; i8; +) ;iuOdeL = P witch(i) ase :S138; L138B0; LS8=0; beak; se 1:LS138=1; 18B=0; S38C0; rk; cae 2:S18A=; S38=; L13C=0; ra; 3:L18A=1; LS138=; S130; brea; case 4:L8=0; L138B=0; LS18C=1; beak; cas 5:S38A=1; L38B=; LS13C=1; rak; se 6:LS138=; LS138B1; LS138C=1; beak; case 7:S138=; LS18B1; L38C=; break; ;)0(yaled void cnter0(voi) interrupt 0 sng 1 0=; LdNumal_1+; EX0=1; vid cter1(void) irrpt 2 ui

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档 > 租房合同

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号