历史上的今天
今天是:2025年03月08日(星期六)
2020年03月08日 | 外部震荡源中断的计时实验
2020-03-08 来源:eefocus
简介:cd4060和2.048M晶体构成的方波震荡源用500Hz的输出连到ATmega16的PD3 ,INT1中断500次是1秒构成计时基准。
PA0-PA7 连到八段数码管的a-p ,PC0-PC5 分别连六个数码管的共阴极
c程序:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.5a Evaluation
Date : 2011/12/14
Author : Freeware, for evaluation and
non-commercial use only
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 4.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include #include flash unsigned char led_7[10] = {0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; flash unsigned char position[6]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; unsigned char time[3]; unsigned char dis_buff[6]; int time_counter; unsigned char posit; bit point_on,time_1s_ok; void display(void) { unsigned char i; for(i=0 ;i<=5; i++) { PORTC = 0xff; //防止在PORTC在上个循环选定的位置的数码管输出,造成一个数码管输出两个不同的数,从而在视觉上产生错误的图像 PORTA = led_7[dis_buff[i]]; if (point_on && (i==2 || i==4 )) PORTA |= 0x80; PORTC = position[i]; } PORTC = 0xff; //使最后一个数码管显示的时间 和前5个基本一样 这样亮度才能均匀 } interrupt [EXT_INT1] void ext_int1_isr(void) { if ( ++time_counter >= 500) { time_counter = 0; time_1s_ok = 1; } } void time_to_disbuffer(void) { unsigned char i,j = 0; for(i=0 ; i <=2; i++) { dis_buff[j++] = time[i] %10; dis_buff[j++] = time[i] /10; } } void main(void) { PORTA = 0x00; DDRA = 0xFF; PORTC = 0x3f; DDRC = 0x3f; time[2] = 23; time[1] = 58 ; time[0]=55 ; posit = 0; time_to_disbuffer(); GICR |= 0x80; MCUCR = 0x08; GIFR = 0x80; #asm("sei") while(1) { display(); if(time_1s_ok) { time_1s_ok = 0; point_on = ~point_on; if( ++time[0] >= 60) { time[0] = 0; if(++time[1] >=60) { time[1] = 0; if(++time[2] >=24 ) time[2] = 0; } } time_to_disbuffer(); } } ; }
史海拾趣
|
Found clock high time violation at 14.8 ns on register \"|counter|lpm_counter:count1_rtl_0|dffs[11]\"原因:违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间措施:在中间加个寄存器可能可以解决问题… 查看全部问答> |
|
大家好,最近想要把T9输入法移植到wince4.2平台上去,不知该怎么去做,输入法网上有很多源代码,但不知道是不是可用 好用适合wince4.2平台,不知大家有做过这方面工作的吗?请大侠给与指导和帮助。谢谢!!!… 查看全部问答> |
|
最近又看了遍485芯片的原理 发现这款芯片是自环的 即发送的数据也到了收端 之前我使用时 发送时候是 TI=RI=1 即禁止了RI 接收的时候 TI=RI=0 即禁止了TI 因为我试过TI=1 RI=0 好像不行(年代比较久远了) 但是今天有人问我 TI=1 RI=0 可以自环的 ...… 查看全部问答> |
|
有关在Smart Device环境下,在CView中放入CListCtrl控件的的问题 开发的环境:VS2005 Smart Device MFC 问题:目前我在我的一个CView里 放入了CEdit,CListCtrl等控件,我想在CEidt控件的Text不为空的时候的 (GetWindowText()),就在我的CEdit的下方出现ClistCtrl控件响应的会出现,比方CEdit的第一个字符为0,在 ...… 查看全部问答> |
|
求助:WINCE6.0 导出SDK时,在SDK属性页中无法配置Emulation中的设置 Clone了Device Emulator,做了一个OS,导出SDK时,在SDK属性页中无法配置Emulation中的设置。这样在应用中就无法启动设备访真… 查看全部问答> |
|
“声纹鉴定与自动识别技术研究”项目是由公安部物证鉴定中心等单位完成,其主要研究成果是将声纹自动识别功能植入VS99语音工作站,该系统能对说话人特征进行自动分析、判断和语图显示及测量,并可结合专家鉴定以确定说话人身份,适合于法庭科学实际 ...… 查看全部问答> |
|
《AN2441 - 在STR71x上使用低成本的振荡器》 发表于 2007年4月 新笔记 意法半导体的STR71x微控制器需要在CK脚上连接一个外部的振荡器。一个最直接的办 ...… 查看全部问答> |




