久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
avr單片機秒表Proteus仿真程序 tm1637數碼管顯示
[打印本頁]
作者:
taotie
時間:
2020-4-14 12:10
標題:
avr單片機秒表Proteus仿真程序 tm1637數碼管顯示
Proteus仿真電路圖如下:
tm1637.gif
(1.04 MB, 下載次數: 73)
下載附件
2020-4-14 12:05 上傳
單片機源程序如下:
/**
*版權所有(c)2018,艁ukasz Marcin Podkalicki
*2009年12月13日
*簡單定時器(啟動/復位/停止),使用基于TM1637的一個按鈕和7段顯示模塊。 *
*注意,這個ATtiny13項目使用的內部時鐘并不精確
*時間可以向前或向后流動,但是嘿!
*它仍然足夠做一個好的雞蛋計時器:)
*/
//#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "tm1637.h"
#define BUTTON_PIN PB2
#define TIMER_UPDATE (1 << 1)
#define TIMER_STOP (1 << 2)
#define TIMER_START (1 << 3)
#define TIMER_RESET (1 << 4)
static volatile uint8_t timer_counter;
static volatile uint8_t timer_events;
static volatile uint8_t timer_seconds;
static volatile uint8_t timer_minutes;
static volatile uint8_t timer_colon;
static void timer_init(void);
static void timer_handler(void);
static void timer_process(void);
static void timer_display(const uint8_t minutes, const uint8_t seconds, const uint8_t colon);
ISR(TIM0_COMPA_vect)
{
timer_handler();
}
int main(void)
{
/* setup */
timer_init();
/* loop */
while (1) {
timer_process();
}
}
void timer_init(void)
{
TM1637_init(1, 4);
DDRB &= ~_BV(BUTTON_PIN); //明確設置按鈕針作為輸入
PORTB |= _BV(BUTTON_PIN); // 設置按鈕銷的上拉電阻器
TCCR0A |= _BV(WGM01); // 將計時器計數器模式設置為CTC
TCCR0B |= _BV(CS01)|_BV(CS00); // 將預分頻器設置為64(CLK=1200000Hz/64/250=75Hz)
OCR0A = 249; // 設置定時器計數器最大值(250-1)
TIMSK |= _BV(OCIE0A);// 啟用定時器CTC中斷
timer_counter = timer_seconds = timer_minutes = 0; // 重置計數器
timer_events = TIMER_UPDATE | TIMER_RESET; // 重置計時器和更新顯示
timer_colon = 1; // 顯示冒號
sei(); //啟用全局中斷
}
void timer_handler(void)
{
if (!(timer_events & TIMER_START)) {
return;
}
timer_counter++;
if (timer_counter == 38) {
timer_colon = 1;
timer_events |= TIMER_UPDATE;
} else if (timer_counter == 75) {
timer_colon = 0;
timer_counter = 0;
if (++timer_seconds == 60) {
timer_seconds = 0;
if (++timer_minutes == 100) {
timer_minutes = 0;
}
}
timer_events |= TIMER_UPDATE;
}
}
void timer_process(void)
{
/* 過程啟動/停止/重置 */
if ((PINB & _BV(BUTTON_PIN)) == 0) {
_delay_ms(10); // 去噪時間
while((PINB & _BV(BUTTON_PIN)) == 0);
if (timer_events & TIMER_START) {
timer_colon = 1;
timer_events = TIMER_UPDATE | TIMER_STOP;
} else if (timer_events & TIMER_STOP) {
timer_minutes = timer_seconds = 0;
timer_colon = 1;
timer_events = TIMER_UPDATE | TIMER_RESET;
} else if (timer_events & TIMER_RESET) {
timer_events = TIMER_START;
}
}
/* 更新顯示 */
if (timer_events & TIMER_UPDATE) {
timer_display(timer_minutes, timer_seconds, timer_colon);
timer_events &= ~TIMER_UPDATE;
}
}
void timer_display(const uint8_t minutes, const uint8_t seconds, const uint8_t colon)
{
/* 顯示分鐘數*/
TM1637_display_digit(0, minutes / 10);
TM1637_display_digit(1, minutes % 10);
/* 顯示秒數 */
TM1637_display_digit(2, seconds / 10);
TM1637_display_digit(3, seconds % 10);
/* 顯示/隱藏冒號 */
TM1637_display_colon(colon);
}
復制代碼
51hei下載:
25tm1637.zip
(33.26 KB, 下載次數: 55)
2020-4-14 12:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品中文字幕在线观看
|
97伦理电影网
|
国产精品99久久久精品免费观看
|
人人鲁人人莫人人爱精品
|
久久网一区二区
|
精品久久久久久
|
午夜影院普通用户体验区
|
91久久精品一区二区二区
|
精品麻豆剧传媒av国产九九九
|
日韩国产一区二区三区
|
放个毛片看看
|
91免费电影
|
日韩一区二区在线观看视频
|
av网站免费在线观看
|
中文字幕综合在线
|
欧美黄色片
|
欧美视频中文字幕
|
欧美日韩福利
|
97国产一区二区精品久久呦
|
中文字幕亚洲一区
|
视频1区
|
亚洲一区免费
|
影音先锋欧美资源
|
日韩欧美第一页
|
91色视频在线观看
|
一区二区三区中文字幕
|
亚洲一区二区三区在线免费
|
日韩精品久久久久久
|
国产成人精品一区二区三
|
久热m3u8
|
蜜桃视频在线观看www社区
|
日韩伦理一区二区
|
精品婷婷
|
91精品国产91久久综合桃花
|
黄色一级大片在线免费看产
|
日韩欧美国产一区二区
|
av一级在线观看
|
欧美一区二区三区视频在线观看
|
成人免费观看男女羞羞视频
|
久久69精品久久久久久国产越南
|
成人不卡
|