版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、硬件设计:硬件方案分析:此次课程设计我们使用芯片是8051,原因是8051片内有4k rom,无须外接外存储器和373,更能体现“单片”的简练,而且它的性能价格比高,开发装置多,国内技术人员熟悉,芯片功能够用适用并可广泛选择等特点;用四个7段led数码管显示倒计时,因为它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。用16个发光二极管,表示东西南北红黄绿灯,其中用四个蓝灯表示人行通道并且用四个按键控制灯。原理图如下:软件设计:资源分备:p1-字型口p3-控制口。 第一个数码控制口为p3.0、第二个数码控制口为p3.1、第三个数码控制口为p3.2、第四个数码控制口为p3.3。
2、(都是为1时亮)4位显示: 30h-33h 显示缓冲区 30h-第一组码管的十位31h-第一组数码管的个位32h- -第二组-数码管的十位33h-第二组数码管的个位p2、p0分别为东西南北红黄绿蓝灯按键1接p3.7按键2接p3.6按键3接p3.5按键4接p3.4程序流程图:东西绿灯亮,南北红灯亮,蓝灯闪。东西黄灯闪,南北红灯亮。东西红灯亮,南北黄灯闪烁是否有按键?是否有按键?开始东西红灯亮,蓝灯闪;南北绿灯亮。数码管显示,从30倒计至0数码管显示,从5倒计至0数码管显示,从30倒计至0数码管显示,从5倒计至0是否有按键?是否有按键?返回按键1按下-返回显示;按键2按下-东西南北黄灯亮,蓝灯闪。
3、数码管显示,从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按下-东西南北绿灯闪,数码显示,从
4、15倒计至0。程序清单: zixing equ p1kongzhi equ p3hh1 equ 30hhh2 equ 31hhh3 equ 32hhh4 equ 33hmain:mov p2,#01111101b ;东边红灯亮、蓝灯闪,北边绿灯亮mov p0,#11101011b ;西边红灯亮、蓝灯闪,南边绿灯亮mov hh1, #3 mov hh2, #0 ; 数码管一显示,从30倒计时至0lcall shuma mov p2,#01111011b ;东西红灯亮mov p0,#11101101b ;南北黄灯灯闪mov hh3, #0 mov hh4, #5 ; 数码管二显示,从5倒计时到0l
5、call shuma2 mov p2,#11010111b ;东边绿灯亮,北边红灯亮、蓝灯闪。mov p0,#10111110b ;西边绿灯亮,南边红灯亮、蓝灯闪。mov hh1, #3mov hh2, #0 ;数码管一显示,从30倒计时到0lcall shuma1mov p2,#10110111b ;东西黄灯灯闪mov p0,#11011110b ;南北红灯亮mov hh3, #0mov hh4, #5 ; 数码管二显示,从5倒计时到0lcall shuma4ljmp mainshuma: star: cpl p2.4 ;取反 cpl p0.7 ;取反 mov r6, #5 ;廷时 stt2
6、:mov r5, #100 stt1: lcall xianshi ;查表 djnz r5, stt1djnz r6, stt2lcall ccc ; 跳用按键程序zhou: dec hh2 ;第一组数码管的个位减1mov a, hh2 ;把hh2送到a中cjne a, #0ffh, star ;比较a是否为0,不为0继续显示。 mov hh2, #9 ;为0时,第一组数码管个置9 dec hh1 ;第一组数码十位减1 mov a, hh1 ;把hh1送到a中 cjne a, #0ffh, star ;比较a是否为0,不为0继续显示 ret shuma1: star1: cpl p2.0 ;取
7、反 cpl p0.3 ;取反 mov r6, #5stt4:mov r5, #100stt3: lcall xianshidjnz r5, stt3djnz r6, stt4lcall ccczhou1: dec hh2mov a, hh2cjne a, #0ffh, star1 mov hh2, #9 dec hh1 mov a, hh1 cjne a, #0ffh, star1 retshuma2: star2: cpl p2.2 cpl p0.1 mov r6, #5stt6:mov r5, #100stt5: lcall xianshi1djnz r5, stt5djnz r6, st
8、t6lcall ccczhou2: dec hh4mov a, hh4cjne a, #0ffh, star2 mov hh4, #9 dec hh3 mov a, hh3 cjne a, #0ffh, star2 ret shuma3: star3: cpl p2.5 cpl p2.1 cpl p0.6 cpl p0.2 mov r6, #5stt8:mov r5, #100stt7: lcall xianshi1djnz r5, stt7djnz r6, stt8lcall ccczhou3: dec hh4mov a, hh4cjne a, #0ffh, star3 mov hh4, #
9、9 dec hh3 mov a, hh3 cjne a, #0ffh, star3 ret shuma4: star4: cpl p2.6 cpl p0.5 mov r6, #5st1:mov r5, #100st2: lcall xianshi1djnz r5, st2djnz r6, st1lcall ccczhou4: dec hh4mov a, hh4cjne a, #0ffh, star4 mov hh4, #9 dec hh3 mov a, hh3 cjne a, #0ffh, star4 ret shuma5: star5: cpl p2.4 cpl p2.0 cpl p0.7
10、cpl p0.3 mov r6, #5st3:mov r5, #100st4: lcall xianshi1djnz r5, st4djnz r6, st3lcall ccczhou5: dec hh4mov a, hh4cjne a, #0ffh, star5 mov hh4, #9 dec hh3 mov a, hh3 cjne a, #0ffh, star5 ret xianshi: mov a, hh1 mov dptr, #tab movc a, a+dptr mov zixing, a mov kongzhi, #00000001b lcall delay mov a, hh2 m
11、ov dptr, #tab movc a, a+dptr mov zixing, a mov kongzhi, #00000010b lcall delay retxianshi1: mov a, hh3 mov dptr, #tab movc a, a+dptr mov zixing, a mov kongzhi, #00000100b lcall delay mov a, hh4 mov dptr, #tab movc a, a+dptr mov zixing, a mov kongzhi, #00001000b lcall delay ret delay: mov r7, #250 de
12、l1: djnz r7, del1 ;250*2us=500us=0.5ms ret tab: db 40h,79h,24h,30h,19h,12h,02h,78h,00h,10htbb: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hccc: setb p3.4 ;判断 p3.4是否有键按下jnb p3.4, aaa ;有键按下,跳用子程序aaasetb p3.5 ;判断 p3.5是否有键按下jnb p3.5, bbb ;有键按下,跳用子程序bbbsetb p3.6 ;判断p3.6是否有键按下jnb p3.6, www ;有键按下,跳用子程序w
13、wwsetb p3.7 ;判断3.7是否有键按下jnb p3.7, qqq ;有键按下,跳用子程序qqqretaaa:mov p2 ,#11011101b ;东西南北绿灯闪烁。 mov p0 ,#10111011b mov hh3, #1 mov hh4, #5 ;数码显示从15倒计至0。 lcall shuma3 setb p3.5 ;有键按下,跳用子程序bbb jnb p3.5, bbb ;有键按下,跳用子程序bbb ljmp mainbbb: mov p2, #01110111b mov p0, #11101110b mov p2, #11111111b mov p0, #1111111
14、1bsetb p3.7 ;判断3.7是否有键按下jnb p3.7, qqq ;有键按下,跳用子程序qqqljmp bbb www: mov p2,#10101010b mov p0,#01010101b mov hh3, #1 mov hh4, #0 lcall shuma5 setb p3.5 ;判断 p3.5是否有键按下 jnb p3.5, bbb ;有键按下,跳用子程序bbb ljmp mainqqq: ljmp main ;返回初始状态 end调试:1输入源程序输入源程序时,以西文方式输入字母和符号,且中文注释前要加分号。2) 对源程序进行汇编和纠错 在汇编过程出现了许多问题,比如,语
15、法错误、目标越界、程序名重复等,根据汇编提供的错误信息通过对照书本或请教老师逐条纠正错误,直至汇编信息提示“错误(0)”、“汇编结束”。3) 确定调试方案 我们采用的是单步运行的方法,把程序输入单片机中,观察仿真结果。4) 调试程序我们在设计过程中出现了许多的问题。比如,灯亮正确但数码管没有显示,问题出现在显示数码程序,分析原因可能是由于字型口接入错误,重新布线之后数码管显示成功。通过反复调试,发现并排除软件与硬件存在的各类问题,最终取得成功。 操作说明:输入程序运行,当没有键按下时东西南北的红黄绿蓝灯按流程循环进行,数码管分红蓝两组,第一个和第三个状态用红数码管显示从三十倒计至零,第二和第四
16、个状态用蓝数码管显示从五倒计至零。当有键按下时:按键1按下-返回初始状态;按键2按下-东西南北黄灯亮,蓝灯闪。数码管显示,从10倒计至0;按键3按下-东西南北红灯闪。按键4按下-东西南北绿灯闪,数码显示,从15倒计至0。注:当按键1按下时,按键2、3、4按下可以进行,同时当按键2、3、4按下时也可以由按键1返回;当按键3按下时,按按键2、4无效,它不能返回,只有当按键1按下时才能返回显示;按按键2时,按按键4可以进行反过来按按键4,按按键2也可以进行,它们通过数码显示倒计完毕之后自动返回显示。 总结:本次课程设计充分发挥了我们的想象空间,锻炼了我们的思维和运用能力。从选题到制作完毕,都需要我们充分考虑。如何选题,选什么题好呢?对于我们初学者来说,总感觉到眼高手低,想实现的功能多一点可又不能不想到其是否可行,通过我们共同讨论最终决定设计红绿灯。设计过程中,主要是软件方面花的精力较多,由于是第一次接触,只能边学边运用,好多东西还不太理解, 老师教都是些基础的的东
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精密激光切割电机行业跨境出海项目商业计划书
- 红外温度筛选装置行业跨境出海项目商业计划书
- 编程教育智能平台创新创业项目商业计划书
- 精密金属折弯机械行业跨境出海项目商业计划书
- 药品及食品包装设备创新创业项目商业计划书
- 电动轮椅电池维修与更换创新创业项目商业计划书-20250415-181312
- 跨国公司境外子公司与分公司设立对比
- 能源公司安全生产责任制度
- 便利店供应链运营优化策略
- 建筑施工进度计划表范本
- GB/T 4744-2013纺织品防水性能的检测和评价静水压法
- 安恩.雅各布森
- 耳鼻喉头颈外科实习生出科测试题附答案
- 日语精读246讲宿久高-课件02.第一册
- 单位工程(子单位)竣工验收备案表
- C语言期末题库(八套试卷)及答案
- 印刷包装企业风险分级管控告知牌
- 等差数列的前n项和 完整版PPT
- JJF 1318-2011 影像测量仪校准规范-(高清现行)
- 小学信息技术五年级全册教案(全面完整版)
- 卫生部心血管疾病介入诊疗技术培训教材(共206页)
评论
0/150
提交评论