找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求热心人帮忙用C、定时/计数器编写如下程序

[复制链接]
跳转到指定楼层
楼主
ID:25279 发表于 2010-8-5 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 

一,1号按钮按下,1号2号灯亮,延时5秒后,2号灭,3号灯亮,2号按钮按下,1号3号灯灭。

(4个独立按键:P32外中断0      P34定时器0       P36WR        P37RD;P3_3外中断1,P3_5定时器1)



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

使用道具 举报

沙发
ID:1 发表于 2010-8-8 20:39 | 只看该作者
帮你搞定了,在51hei-5板子上运行成功,一号按钮为板子下面的独立按键 INT0键
#include<at89x52.h>
#include<intrins.h>//参数左移头文件
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,numdu,numwe;
sbit dula=P2^6;//定义dula
sbit wela=P2^7;//定义wela
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//数给的格试uchar code table[]={}在{}中要写入数据
uchar code tablewe[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

void main()
{
 numdu=0;
 numwe=0;
 aa=0;
 
 TMOD=0x01;//对TMOD付值也可写:TMOD=1;
 TH0=(65536-50000)/256;//THO初值,"/"为求莫,(65536-50000)/256放到高8位中
 TL0=(65536-50000)%256;//HO初值,"*"为求余,(65536-50000)%256放到低8位中
 EA=1;//开总中断
 ET0=1;//开定时器中断
 TR0=1;//启动定时器
/*定时器/计数器设置流程
1对TMOD赋值,以确定T0及T1的工作方式;
2计算初值,并将其值写入TH0,TL0或TH1,TL1中;
3中断方式时,则对IE赋值,开放中断;
4致TR0或TR1置位,启动定时/计数器定时或计数
*/
while(1)
{

if(P3_2==0)
  {
  P1_4=0;
  P0_0=0;
  P0_1=0;
  }

 if(aa==100)  
 {
  aa=0;    
  P0_1=1;
  P0_2=0;
  }


if(P3_4==0)
  {
  P1_4=0;
  P0_0=1;
  P0_2=1;
  }
 
 }
}
void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 aa++;
}
回复

使用道具 举报

板凳
ID:25279 发表于 2010-8-10 22:48 | 只看该作者
版主辛苦了,谢谢您!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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