找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2401|回复: 2
打印 上一主题 下一主题
收起左侧

C语言与单片机应用》补考试题 在线急等 求助

[复制链接]
跳转到指定楼层
楼主
ID:51038 发表于 2013-6-18 13:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一:keil平台的搭建与设置(12分)
选择单片机型号:89C52,晶振需为11.0592M ,编译输出HEX代码。
  二: 各子函数(共5个)的功能介绍(15分):


  三:现在程序中,用的T0定时器,改为用T1定时器(30分)
  四:将main函数中的程序段(如下)改为子函数调用的方式实现,子函数名为:Time_学号,放在other.c文件中(20分)
  if(miao==60)
   {
    miao=0;
    f++;
    if(f==60)
    {
     f=0;
     s++;
     if(s==24)  //为24h一个循环,若要12h,只需在此改为12即可。
     {
      s=0;
     }
    }
   }
  五:修改程序,使实验板上电时,时间显示为:12.00.00  (20分)



***********************************************************************************************************************/
#include "DEFINE.h"
void main()
{
uchar  shi_shi2;
uchar  shi_ge2;
uchar  fen_shi2;
uchar  fen_ge2;
uchar  miao_shi2;
uchar  miao_ge2;
// unsigned int miao_gewei,miao_shiwei;
// miao=0;
T0_chushihua();
// DULA=0;//关闭段的锁存器
// WELA=1;//打开位的锁存器,选择哪一位数码管亮
// P0=0xFE;//1 1 1 1 1 1 1 0,只有WE1为低电平,也就是选中了第一数码管
// WELA=0;//关闭位的锁存器
while(1)
{
keyscan();
    if(!lao_flag)
{
  if(miao==60)
   {
    miao=0;
    f++;
    if(f==60)
    {
     f=0;
     s++;
     if(s==24)  //为24h一个循环,若要12h,只需在此改为12即可。
     {
      s=0;
     }
    }
   }

   shi_shi2=s/10;
   shi_ge2=s%10;
   fen_shi2=f/10;
   fen_ge2=f%10;
   miao_shi2=miao/10;
   miao_ge2=miao%10;
//  if(miao_shiwei!=0)
//   {
  
  if(set)
  {
  TR0=0;//stop T0
  
  display(shi_shi1,shi_ge1,fen_shi1,fen_ge1, miao_shi1,miao_ge1);
  miao=miao_shi1*10+miao_ge1;
  f=fen_shi1*10+fen_ge1;
  s=shi_shi1*10+shi_ge1;
  }
  else
  {
   display(shi_shi2,shi_ge2,fen_shi2,fen_ge2, miao_shi2,miao_ge2);
   //闹钟
   if(lao_s==s&&lao_f==f&&lao_m==miao&&lao_flag==0)
   {
   beep=0;
   delayms(500);
   beep=1;
   }
   //end闹钟
  }
  }
// }
else if(lao_flag)
  {
   TR0=0;//stop T0
  
   display(shi_shi1,shi_ge1,fen_shi1,fen_ge1, miao_shi1,miao_ge1);
   lao_m=miao_shi1*10+miao_ge1;
   lao_f=fen_shi1*10+fen_ge1;
   lao_s=shi_shi1*10+shi_ge1;
  }
//   DULA=1;//打开段的锁存器,控制显示的内容
//  P0=table[1];
//  DULA=0;
//  delayms(1000);
// }
}

}

void T0_timer() interrupt 1
{
TH0=(65536-45872)/256;//装载初值
TL0=(65536-45872)%256;
num++;
if(num==20)
     {
   num=0;
   miao++;
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2013-6-18 15:35 | 只看该作者
这个很简单啊 先保存为2个文件  然后拉进keil里面去就行了 你可以看 单片机c语言教程:http://www.51hei.com/mcuteach/150.html
回复

使用道具 举报

板凳
ID:76287 发表于 2015-4-7 19:02 | 只看该作者
不懂,但是还是要顶,安抚楼主受伤心灵,每一个新手都是痛苦的开始,快乐的结局
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表