- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR报告【DOC精选】
应用工程学院
AVR单片机上机考试实验报告
题 目: 计数时钟设计
专 业:
班 级:
姓 名: 学号:
指导老师:
一、题目要求与实训目的
要求:
设计一个秒表计时器,要求用四位数码管分别显示 分 秒 毫秒 ,其中分 一位显示;秒二位显示、毫秒一位显示,如 显示格式如: 1.23.4 代表:1分 23秒400毫秒。 最大显示时间为9.59.9 即:9分99秒900毫秒。当显示到此值后,计时从 0分0秒0毫秒从新开始。
功能实现:
(1)用Proteus 完成电路图的绘制
(2)4位数码管点亮显示功能实现
(3)从0分00秒0毫秒 正常计时**分**秒**毫秒
(4)固定时间正常计时功能实现
(5)固定时间倒计时功能实现
(6)自由设定时间 后正常计时功能实现
(7)自由设定时间 后 倒计时功能实现
二、实训中所用到的工具与仪表
(1)402教室电脑一台
(2)ATMEGA8芯片一块
(3)7SEG-MPX4-CC-BUNE数码管一块
(4)开关4个
(5)电阻4个
三、方案设计
本次设计是用单片机做为时钟的控制中心(单片机选择ATMEGA8),利用一个秒表计时器显示 分 秒 毫秒 ,其中分 一位显示;秒二位显示、毫秒一位显示,控制时间的自由调整。
四、作品测验
制作最终结果有(4)固定时间正常计时功能实现(5)固定时间倒计时功能实现
2个功能未能实现只得了80实在是毕生遗憾
五、电路原理图
六、电路控制程序
#include mega8.h
#includedelay.h
typedef unsigned int uint;
typedef unsigned char uchar;
uchar fen=0,miao=0; //用于设时的变量寄存
uint count; //用于定时器中断函数计数
uchar minute,second,decimal; //分、秒、小数位 变量定义
uchar add_sign=1,install_show_sign=1,add_all=0; //正计数标志、设置显示标志
void bufvalue(uchar*); //显示值处理函数声明
void display(uchar*,uchar*); //显示函数声明
interrupt [EXT_INT0] void ext_int0_isr(void) //TO外部中断
{
install_show_sign=0; //该标志置0时 显示部分显示值的设定情况
miao++;
if(miao==60)
{
miao=0;
fen++;
}
}
interrupt [EXT_INT1] void ext_int1_isr(void)
{
install_show_sign=1; //用于显示计数部分
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void) //T0溢出中断200us一溢出 //Timer 0 overflow interrupt service routine
{
if(install_show_sign)
{
// Reinitialize Timer 0 value
TCNT0=0x9B;
if(add_sign)
{
count++;
if(count==50){
count=0;
decimal++;
if(decimal==10){
decimal=0;
second++;
if(minute==fensecond==miao)
{
if(!add_all)
{
文档评论(0)