资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
1硬件设计:硬件设计:硬件方案分析:此次课程设计我们使用芯片是 8051,原因是80518051 片内有 4k ROM,无须外接外存储器和 373,更能体现“单片”的简练,而且它的性能 价格比高,开发装置多,国内技术人员熟悉,芯片功能够用适用并可广泛 选择等特点;用四个 7 段 LED 数码管显示倒计时,因为它具有显示清晰、 亮度高、使用电压低、寿命长的特点,因此使用非常广泛。用 16 个发光二 极管,表示东西南北红黄绿灯,其中用四个蓝灯表示人行通道并且用四个 按键控制灯。原理图如下:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51D5LED-REDD6LED-YELLOWD7LED-GREEND8LED-BLUED13LED-REDD14LED-YELLOWD15LED-GREEND16LED-BLUE+5vD1LED-REDD2LED-YELLOWD4LED-BLUED9 LED-REDD10 LED-YELLOWD11 LED-GREEND12 LED-BLUED3LED-GREEN+5vX1CRYSTALC133pC233p软件设计:软件设计: 资源分备: P1-字型口 P3-控制口。 第一个数码控制口为 p3.0、第二个数码控制口为 P3.1、第三个数码 控制口为 P3.2、第四个数码控制口为 p3.3。 (都是为 1 时亮) 4 位显示: 30H-33H 显示缓冲区30H-第一组码管的十位 31H-第一组数码管的个位 32H- -第二组-数码管的十位 33H-第二组数码管的个位 P2、p0 分别为东西南北红黄绿蓝灯 按键 1 接 p3.7 按键 2 接 p3.6 按键 3 接 p3.5 按键 4 接 p3.42程序流程图:程序流程图:东西绿灯亮,南北红灯亮,蓝灯 闪。东西黄灯闪,南北红灯亮。东西红灯亮,南北黄灯闪烁是否有按键?是否有按键?开始东西红灯亮,蓝灯闪;南北绿灯 亮。数码管显示,从 30 倒计至 0数码管显示,从 5 倒计至 0数码管显示,从 30 倒计至 0数码管显示,从 5 倒计至 0是否有按键?是否有按键?返回按键 1 按下-返回显示; 按键 2 按下-东西南北黄灯亮,蓝灯闪。 数码管显示,从 10 倒计至 0; 按键 3 按下-东西南北红灯闪, 按键 4 按下-东西南北绿灯闪,数码显示, 从 15 倒计至 0。按键 1 按下-返回显示; 按键 2 按下-东西南北黄灯亮,蓝灯闪。 数码管显示,从 10 倒计至 0; 按键 3 按下-东西南北红灯闪。 按键 4 按下-东西南北绿灯闪,数码显示, 从 15 倒计至 0。按键 1 按下-返回显示; 按键 2 按下-东西南北黄灯亮,蓝灯闪。 数码管显示,从 10 倒计至 0; 按键 3 按下-东西南北红灯闪。 按键 4 按下-东西南北绿灯闪,数码显示, 从 15 倒计至 0。按键 1 按下-返回显示; 按键 2 按下-东西南北黄灯亮,蓝灯闪。 数码管显示,从 10 倒计至 0; 按键 3 按下-东西南北红灯闪。 按键 4 按下-东西南北绿灯闪,数码显示, 从 15 倒计至 0。3程序清单:程序清单: zixing equ p1 kongzhi equ p3 hh1 equ 30h hh2 equ 31h hh3 equ 32h hh4 equ 33hmain: mov p2,#01111101b ;东边红灯亮、蓝灯闪,北边绿灯亮 mov p0,#11101011b ;西边红灯亮、蓝灯闪,南边绿灯亮 mov hh1, #3 mov hh2, #0 ; 数码管一显示,从 30 倒计时至 0 lcall shuma mov p2,#01111011b ;东西红灯亮 mov p0,#11101101b ;南北黄灯灯闪 mov hh3, #0 mov hh4, #5 ; 数码管二显示,从 5 倒计时到 0 lcall shuma2 mov p2,#11010111b ;东边绿灯亮,北边红灯亮、蓝灯闪。 mov p0,#10111110b ;西边绿灯亮,南边红灯亮、蓝灯闪。 mov hh1, #3 mov hh2, #0 ;数码管一显示,从 30 倒计时到 0 lcall shuma1 mov p2,#10110111b ;东西黄灯灯闪 mov p0,#11011110b ;南北红灯亮 mov hh3, #0 mov hh4, #5 ; 数码管二显示,从 5 倒计时到 0 lcall shuma4 ljmp main shuma: star: cpl p2.4 ;取反cpl p0.7 ;取反mov r6, #5 ;廷时 stt2: mov r5, #100 stt1: lcall xianshi ;查表djnz r5, stt1 djnz r6, stt2 lcall ccc ; 跳用按键程序 zhou: dec hh2 ;第一组数码管的个位减 1 mov a, hh2 ;把 hh2 送到 a 中 cjne a, #0ffh, star ;比较 a 是否为 0,不为 0 继续显示。mov hh2, #9 ;为 0 时,第一组数码管个置 9dec hh1 ;第一组数码十位减 14mov a, hh1 ;把 hh1 送到 a 中cjne a, #0ffh, star ;比较 a 是否为 0,不为 0 继续显示ret shuma1: star1: cpl p2.0 ;取反cpl p0.3 ;取反mov r6, #5 stt4: mov r5, #100 stt3: lcall xianshi djnz r5, stt3 djnz r6, stt4 lcall ccc zhou1: dec hh2 mov a, hh2 cjne a, #0ffh, star1mov hh2, #9dec hh1mov a, hh1cjne a, #0ffh, star1ret shuma2: star2: cpl p2.2cpl p0.1mov r6, #5 stt6: mov r5, #100 stt5: lcall xianshi1 djnz r5, stt5 djnz r6, stt6 lcall ccc zhou2: dec hh4 mov a, hh4 cjne a, #0ffh, star2mov hh4, #9dec hh3mov a, hh3cjne a, #0ffh, star2ret shuma3: star3: cpl p2.5cpl p2.1cpl p0.6cpl p0.25mov r6, #5 stt8: mov r5, #100 stt7: lcall xianshi1 djnz r5, stt7 djnz r6, stt8 lcall ccc zhou3: dec hh4 mov a, hh4 cjne a, #0ffh, star3mov hh4, #9dec hh3mov a, hh3cjne a, #0ffh, star3ret shuma4: star4: cpl p2.6cpl p0.5mov r6, #5 st1: mov r5, #100 st2: lcall xianshi1 djnz r5, st2 djnz r6, st1 lcall ccc zhou4: dec hh4 mov a, hh4 cjne a, #0ffh, star4mov hh4, #9dec hh3mov a, hh3cjne a, #0ffh, star4ret shuma5: star5: cpl p2.4cpl p2.0cpl p0.7cpl p0.3mov r6, #5 st3: mov r5, #100 st4: lcall xianshi1 djnz r5, st4 djnz r6, st3 lcall ccc zhou5: dec hh46mov a, hh4 cjne a, #0ffh, star5mov hh4, #9dec hh3mov a, hh3cjne a, #0ffh, star5ret xianshi: mov a, hh1mov dptr, #tabmovc a, a+dptrmov zixing, amov kongzhi, #00000001blcall delaymov a, hh2mov dptr, #tabmovc a, a+dptrmov zixing, amov kongzhi, #00000010blcall delayret xianshi1: mov a, hh3mov dptr, #tabmovc a, a+dptrmov zixing, amov kongzhi, #00000100blcall delaymov a, hh4mov dptr, #tabmovc a, a+dptrmov zixing, amov kongzhi, #00001000blcall delay retdelay:mov r7, #250del1: djnz r7, del1 ;250*2us=500us=0.5msret 7tab: db 40h,79h,24h,30h,19h,12h,02h,78h,00h,10h tbb: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hccc: setb p3.4 ;判断 p3.4 是否有键按下 jnb p3.4, aaa ;有键按下,跳用子程序 aaa setb p3.5 ;判断 p3.5 是否有键按下 jnb p3.5, bbb ;有键按下,跳用子程序 bbb setb p3.6 ;判断 p3.6 是否有键按下 jnb p3.6, www ;有键按下,跳用子程序 www setb p3.7 ;判断 3.7 是否有键按下 jnb p3.7, qqq ;有键按下,跳用子
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号