找回密码
 立即注册

QQ登录

只需一步,快速开始

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

将秒表程序改为定时报警裎序

[复制链接]
跳转到指定楼层
楼主
ID:65730 发表于 2014-9-5 17:43 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将下面秒表程序改为定时报警程序,即时间到,蜂鸣器响几秒,芯片ATmega16,pA6接蜂鸣器,谢谢大神们。
#include <iom16v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code const table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7 1};

void delay(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<1141;j++); } } void show(uchar j,uchar k) { PORTA|=BIT(3); PORTB=table[j]; PORTA&=~BIT(3);

PORTB=0XFF; PORTB&=~BIT(k); PORTA|=BIT(4); PORTA&=~BIT(4); delay(1); } void miao() { if(num==60) num=0; num++; TCNT1H=0X85; TCNT1L=0XED; } void main() { DDRB=0XFF; DDRA|=0X18;

TCCR1B=0X04; TCNT1H=0X85; TCNT1L=0XED; TIMSK|=BIT(2); SREG|=BIT(7);

while(1) { show(num/10,0); show(num%10,1); } }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2014-9-6 00:56 | 只看该作者
用 google 或者ie 或者360 浏览器 重启编辑一下吧  这样看不清楚
回复

使用道具 举报

板凳
ID:65730 发表于 2014-9-6 19:15 来自手机 | 只看该作者
谢谢指导,我把上面程序重编辑如下:      #include <iom16v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code const table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  void delay(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<1141;j++); } } void show(uchar j,uchar k) { PORTA|=BIT(3); PORTB=table[j]; PORTA&=~BIT(3);  PORTB=0XFF; PORTB&=~BIT(k); PORTA|=BIT(4); PORTA&=~BIT(4); delay(1); } void miao() { if(num==60) num=0; num++; TCNT1H=0X85; TCNT1L=0XED; } void main() { DDRB=0XFF; DDRA|=0X18;  TCCR1B=0X04; TCNT1H=0X85; TCNT1L=0XED; TIMSK|=BIT(2); SREG|=BIT(7);  while(1) { show(num/10,0); show(num%10,1); } }
回复

使用道具 举报

地板
ID:65730 发表于 2014-9-6 21:18 来自手机 | 只看该作者
不好意思,还是没有编辑好,再试一下
回复

使用道具 举报

5#
ID:65730 发表于 2014-9-6 21:20 来自手机 | 只看该作者
#include <iom16v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code const table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  void delay(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<1141;j++); } } void show(uchar j,uchar k) { PORTA|=BIT(3); PORTB=table[j]; PORTA&=~BIT(3);  PORTB=0XFF; PORTB&=~BIT(k); PORTA|=BIT(4); PORTA&=~BIT(4); delay(1); } void miao() { if(num==60) num=0; num++; TCNT1H=0X85; TCNT1L=0XED; } void main() { DDRB=0XFF; DDRA|=0X18;  TCCR1B=0X04; TCNT1H=0X85; TCNT1L=0XED; TIMSK|=BIT(2); SREG|=BIT(7);  while(1) { show(num/10,0); show(num%10,1); } }
回复

使用道具 举报

6#
ID:65730 发表于 2014-9-6 21:21 来自手机 | 只看该作者
#include <iom16v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code const table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  void delay(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<1141;j++); } } void show(uchar j,uchar k) { PORTA|=BIT(3); PORTB=table[j]; PORTA&=~BIT(3);  PORTB=0XFF; PORTB&=~BIT(k); PORTA|=BIT(4); PORTA&=~BIT(4); delay(1); } void miao() { if(num==60) num=0; num++; TCNT1H=0X85; TCNT1L=0XED; } void main() { DDRB=0XFF; DDRA|=0X18;  TCCR1B=0X04; TCNT1H=0X85; TCNT1L=0XED; TIMSK|=BIT(2); SREG|=BIT(7);  while(1) { show(num/10,0); show(num%10,1); } }
回复

使用道具 举报

7#
ID:1 发表于 2014-9-6 22:18 | 只看该作者
你这是手机发的帖?
回复

使用道具 举报

8#
ID:65730 发表于 2014-9-6 23:32 来自手机 | 只看该作者
是的,怎么也编缉不好,
回复

使用道具 举报

9#
ID:65608 发表于 2014-9-7 13:43 | 只看该作者
手机上玩代码不合适吧  编译工具不能在手机上面运行啊
回复

使用道具 举报

10#
ID:65730 发表于 2014-9-7 14:33 来自手机 | 只看该作者
学习板上都是计数器,计时器,没有计数计时控制程序,这类程序编不好就在此请教老师们。
回复

使用道具 举报

11#
ID:63997 发表于 2014-9-7 19:00 | 只看该作者

#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int uchar num=0;
#pragma interrupt_handler miao:9
#pragma data:code const table[]=
{
    0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};  
void delay(uint ms)
{     
    uint i,j;
    for(i=0;i<ms;i++)
    {
         for(j=0;j<1141;j++);
    }
}
void show(uchar j,uchar k)
{
    PORTA|=BIT(3);
    PORTB=table[j];
    PORTA&=~BIT(3);  
    PORTB=0XFF;
    PORTB&=~BIT(k);
    PORTA|=BIT(4);
    PORTA&=~BIT(4);
    delay(1);
}
void miao()
{
    if(num==60)
    num=0;
    num++;
    TCNT1H=0X85;
    TCNT1L=0XED;
}
void main()
{
    DDRB=0XFF;  
    DDRA|=0X18;  
    TCCR1B=0X04;
    TCNT1H=0X85;
    TCNT1L=0XED;
    TIMSK|=BIT(2);
    SREG|=BIT(7);  
    while(1)
    {
        show(num/10,0);
        show(num%10,1);
    }
}
我能帮你的就是整理一下 等待高人解惑了
回复

使用道具 举报

12#
ID:65730 发表于 2015-1-24 22:33 | 只看该作者
xueyunmicheng 发表于 2014-9-7 19:00
#include  
#include  
#define uchar unsigned char

好长时间没有上网了.还没顾上分析,在这里先谢谢大师了.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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