一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程.二 课程设计的要求和数据1 用单片机实现2 以0.1秒为最小单位显示3
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 18:31:58
![一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程.二 课程设计的要求和数据1 用单片机实现2 以0.1秒为最小单位显示3](/uploads/image/z/8699766-6-6.jpg?t=%E4%B8%80+%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1%E5%86%85%E5%AE%B9%EF%BC%9A%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E5%8D%95%E7%89%87%E6%9C%BA%E7%A7%92%E8%A1%A8%2C%E8%AF%A5%E7%A7%92%E8%A1%A8%E5%8F%AF%E6%98%BE%E7%A4%BA0.0%E5%88%B059.9%E7%A7%92%E7%9A%84%E6%97%B6%E9%97%B4%2C%E8%BF%9B%E8%A1%8C%E7%9B%B8%E5%BA%94%E7%9A%84%E5%8D%95%E7%89%87%E6%9C%BA%E7%A1%AC%E4%BB%B6%E7%94%B5%E8%B7%AF%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%B9%B6%E8%BF%9B%E8%A1%8C%E8%BD%AF%E4%BB%B6%E7%BC%96%E7%A8%8B.%E4%BA%8C+%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1%E7%9A%84%E8%A6%81%E6%B1%82%E5%92%8C%E6%95%B0%E6%8D%AE1+%E7%94%A8%E5%8D%95%E7%89%87%E6%9C%BA%E5%AE%9E%E7%8E%B02+%E4%BB%A50.1%E7%A7%92%E4%B8%BA%E6%9C%80%E5%B0%8F%E5%8D%95%E4%BD%8D%E6%98%BE%E7%A4%BA3)
一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程.二 课程设计的要求和数据1 用单片机实现2 以0.1秒为最小单位显示3
一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程.
二 课程设计的要求和数据
1 用单片机实现
2 以0.1秒为最小单位显示
3 秒表量程为0.0到59.9 用3位LED灯显示
4 个人根据情况设计加上清零,开始计时停止计时等功能
三 课程设计应完成工作
1 完成单片机秒表硬件和软件设计 绘制电路原理图
2 完成课程设计报告的撰写
一 课程设计内容:设计一个单片机秒表,该秒表可显示0.0到59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程.二 课程设计的要求和数据1 用单片机实现2 以0.1秒为最小单位显示3
这么复杂的问题应该到论坛上去找,给你个AVR单片机网址http://www.ourdev.cn/,可以到百度去搜,现成的应该很少,资料应该挺多的吧
别人都做了,你还做什么
给个邮箱,我发给你
汗 现在还有要这个程序的?
dula=1;
P0=table[three];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);
}
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;...
全部展开
dula=1;
P0=table[three];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);
}
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
是用74hc573锁存器连得的数码管,自己调整一下 如果要秒表显示点的话,重新定义个表,自己改改吧
收起
P3接字码,P2接位码。没有加按键功能。 #include <reg51.h> #define uchar unsigned char #define uint unsigned int //数码管字型表,对应0,1,2,3,4,5,6,7,8,9// uchar Table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint Data[2]={0,0}; data Buffer[1]={0}; uint TIME=0; //倒计时时间 uint j; sbit BEEP=P1^2; sbit Point=P3^7; void DelayMs(uint i ) { for(;i!=0;i--) {for(j=100;j!=0;j--) {;}} } void Display(uint *p) //动态显示函数,参数p为待显示的数组名 { P2=0xfe; P3=Table[p[2]]; //送字型码 DelayMs(3); P2=0xfb; P3=Table[p[1]]; //送字型码 Point=0; DelayMs(3); //显示延时 P2=0xfd; P3=Table[p[0]]; DelayMs(3); } void Process(uint i,uint *p) { p[0]=i/100; i=i%100; p[1]=i/10; p[2]=i%10; } void main(void) { EA=1; IT1=1; ET0=1; TMOD=0x01; //T0方式1计时0.01秒 TH0=65536-5000/256; TL0=65536-5000%256; TR0=1; //开中断,启动定时器 while(1) { Process(TIME,Data); Display(Data); if(TIME>599) { TIME=0; } } } /* 定时计数器0的中断服务子程序 */ void intserv1(void) interrupt 1 using 1 { TH0=65536-5000/256; TL0=65536-5000%256; Buffer[0]=Buffer[0]+1; // 定时器T0的低四位赋值 if (Buffer[0]==10) // 百分秒进位 { TIME+=1; Buffer[0]=0; } }