湖南工业大学单片机课程入设计答案.docVIP

湖南工业大学单片机课程入设计答案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
湖南工业大学单片机课程入设计答案

单片机课程设计指导书 电气与信息工程学院实验室 一、设计任务: 1.1 设计一个单片机最小系统,用仿真软件设计,要求有5V电源,8个LED灯,12MHZ晶振,完成流水灯的仿真。 1.2外部脉冲自动计数,自动显示。 1.2.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。 1.2.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。 1.3 设计一个出租车计费系统: 起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元) 1.4 单片机最小系统实训板的设计。(要求采用PROTEL完成单片机最小系统的硬件电路设计) 二.课程安排: 17周完成设计任务(1.1-1.2)的程序设计以及软件仿真 18周完成设计任务(1.3-1.4)以及所有设计任务的硬件实现 三、单片机最小系统硬件资源介绍: 89S51单片机; 6位共阳极数码管; 段码驱动器74HC573,位选译码器74HC138; 4路独立式按键; 外部晶振电路; ISP下载接口(In system program,在系统编程); DC+5V电源试配器(选配); ISP下载线(选配)。 单片机最小系统实训板硬件资源分布见图1元件布局图和图2电路原理图:其中P1为外部电源输入座(DC+5V),S8为电源最小系统的电源开关,E1和C3为电源滤波,去耦电容。D1为系统电源指示灯。J2为ISP下载接口,S7系统复位按键。CRY1,C1,C2为外部时针电路。IC1为89S51(DIP-40),左上角为第一脚。PRE1,PRE2。为上拉排阻(阻值4.7k—10k)。J5,J9,J6,J10分别对应单片机的P0,P1,P2,P3口。便于二次开发。6路共阳极数码管动态显示电路,P0口通过74HC573(起驱动和隔离作用,让电流通过74CH573流入公共地),来控制数码管的8路段码,P20-P22通过74HC138译码器(使用其中的6路)控制数码管的公共端(中间还有三极管做驱动器)。这样设计的理由:为了保证该单片机最小系统的二次开发的资源充足和合理性。如果单只做一个动态显示电路,可以省去74HC573,和74HC138。 图1 元件布局图 图2 单片机最小系统原理图 四、设计思路: 1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。 开始 开始 初始化堆栈,定时器初始化 清零相关RAM地址单元 TF1=1? 调用显示子程序 脉冲数加1 即20H加1 20H=100? 21H加1 20清零 计算出脉冲数的个,十,百位 分别存放于30H,31H,32H (20H=54)(21H=2?) 脉冲数计到255后重新计数 即20H,21H清零 说明:1. 20H存放脉冲的个位和十位数值,21H存放脉冲的百位和千位数值。 2.计算脉冲数的个位和十位数值:(20H)/10的商即十位数值存放于31H,余数即个位数值存放于30H。 3. 计算脉冲数的百位数值:(20H)/10的余数即百位数值存放于32H。 例如:脉冲数212(十进制),(20H)=12,(21H)=2。脉冲的个位数值(30H)=2, 脉冲的十位数值(31H)=1, 脉冲的百位数值(32H)=2. 图3 255计数程序流程图 2、0-50000计数: 思路1:由于DIV AB指令中A、B均为8位寄存器,因此255二进制转十进制计数的方法不能用于0-50000的循环计数。可根据TH0(T0计数)或TH1(T1计数)中的内容为多少进行256累加,因为TH0或TH1中每一个二进制‘1’代表十进制的256,再和TL0或TL1按前一步二转十的方法转换 思路2:置TL0或TL1的内容为0FFH,这样每来一个计数脉冲,TL0或TL1的内容就会溢出回零,只要通过指令判断TL0或TL1的内容是否为零,为零则70H(个位)加1,70H(个位)逢9进一,71H(十位)加1,十位个位为99进一,72H(百位)加1,以此类推,可实现0-999999(只有

文档评论(0)

151****1459 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档