13级单片机作业6

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13级作业6
1.电路如图1所示。

(1)座号是偶数的同学,/RS触发器的输出接单片机的P3.2(/INT0)引脚,座号是奇数的同学,/RS触发器的输出接单片机的P3.3(/INT1)引脚;
(2)座号个位数是0~4的同学,使用共阴数码管,座号个位数是5~9的同学,使用共阳数码管;
(3)数码管段选信号接单片机的Px.0~Px.6,x=N%3(N是自己的座号,%3表示除以3取余);
(4)系统使用的晶振频率由表1决定,%4表示除以4取余。

图1 系统硬件电路
表1 晶振频率的选择
座号%4 晶振频率(MHz)
0 6
1 11.0592
2 22.1184
3 24
2.要求自选汇编语言或
功能:
(1)系统上电运行时,不管开关状态如何,数码管依次显示0,1,2,…,E,F这16个字符,每个字符停顿1秒钟。

(2)每次开关SW1从上往下按时,切换数码管的显示方式,当前是正计数的切换为倒计数,当前是倒计数的切换为正计数(切换计数方式时,不用
显示完一个周期才切换,而是马上切换,如正计数至8时计数方式被切
换为倒计数,则下一秒显示7)。

(3)关于1秒钟的定时,用“定时器+中断”实现,座号十位数是奇数的同学,采用T1,座号十位数是偶数的同学(含座号为1~9的同学),采用T0。

(4)要求用最少的中断次数实现1秒钟的定时(例如,使用12MHz的晶振,最长的定时时间是65.536ms,那么定时62.5ms,在中断里面计数16次
就是1秒钟;不要定时50ms,因为中断要计数20次)。

说明自己如何实
现1s的定时,用公式详细推导求解定时计数器的初值THx和TLx是怎
么计算得到的(只有最终答案,无过程者等价于答题错误)。

答题要求:
自己在宿舍用Proteus+Keil软件做计算机仿真,完成作业。

仿真完毕,把Proteus硬件电路图及汇编或C51源程序代码打印出来,再在打印纸上书写,说明自己如何实现1s的定时,用公式详细推导求解定时器的初值THx和TLx是怎么计算得到的。

不想打印Proteus硬件电路图及汇编、C51源程序代码的同学,也可以用作业本画出自己设计的Proteus电路图,同时将汇编和C51源程序抄写在作业本上,在作业本上说明自己如何实现1s的定时,用公式详细推导求解定时器的初值THx 和TLx是怎么计算得到的。

程序设计核心思路:
(1)设置一个全局位变量bitFlag,将其初值定义为0(假设定义为0时数码管正计数,为1时倒计数)。

(2)允许外部中断,并将外部中断设置为下降沿触发,每次外部中断到来时,将bitFlag取反。

(3)用定时器实现n毫秒的定时,在定时器中断服务程序中设置一个临时计数器,每次定时器中断到来,临时计数器加1,加至1000/n次,则说明一秒钟到来,临时计数器重置为0。

如果当前是正计数,则计数值加1,若计数值等于16,则将其重置为0;如果当前是倒计数,则计数值减1,若计数值等于255,则将其重置为15。

将最新的计数值送到数码管去显示。

提交作业时间:第13周星期一(6月1日),在上课铃响之前交。

朱老师
5月20日。

相关文档
最新文档