这个是我写的作业的计划,单片机课程结课作业,以下是我写的规划计划,写的不咋滴 欢迎拍砖。。
一、具体功能规划
1、依据51单片机倒计时秒表,最大值为9999秒,计时单位为0.1秒;
2、计时的初始值为组员学号后4位,键盘发动/中止计时;
3、规划多个按键,运用键盘挑选不同成员的学号作为初始值。
二、8031最小体系规划
1、最小体系规划原理图如图1.0所示:
2、8031最小体系概述;
8031最小体系包括晶振电路与复位电路。 晶振挑选12MHZ晶振,晶振电容运用30pf电容瓷片%&&&&&%。复位电路挑选上电复位。
三、硬件规划
1、数码管电路
在本规划中,运用7段共阴极数码管,挑选数码管的型号为7SEG-MPX6-CC;
2、数码管片选电路;
因为本规划需求显现五位数字,一起为了驱动数码管,运用了74HC154芯片。与此一起,运用74HC154芯片还能够扩展数码管显现数字的个数。
三、软件规划
1、程序流程图如图3.0所示:
图3.0 程序流程图
2、程序流程阐明
数码管显现和扫描键盘子函数放在0.1秒的定时器中止里,而主函数的while(1)函数向数码管显现数据变量送数据。数码管显现函数承受键盘状况,依据状况履行开端计时、暂停、挑选学号等功能。
四、调试阐明
1、仿真调试如图4.0所示:
图4.0 proteus 仿真作用
2、按下以组员的姓名命名的按键时,能够挑选相应同学的学号的后四位为倒计时的初始值,如不设置初始值为0336,若按下“张洪荣”按键,初始值为0337;按下“开端”按键时开端倒计时;按下“暂停”按键时,计时中止;
附录:源代码下载:http://www.51hei.com/f/szgg.rar
1,程序源码;
#include
#include
#include
int num =03; //咱们学号的班别 03
int stu_num0 =36; //学号后两位
int stu_num1 =37;
int stu_num2 =42;
int stu_num3 =11;
int stu_num4 =22
int num_count = 36; //将学号吼两位挑选的值赋给 num_count,初始值为36
sbit start = P1^0; //开端按键
sbit stop = P1^1; //中止按键
sbit key0 = P1^2; //挑选同学
sbit key1 = P1^3; //挑选同学
sbit key2 = P1^4; //挑选同
sbit key3 = P1^5; //挑选同学
sbit key4 = P1^6; //挑选同学
sbit key5 = P1^7;
unsigned int T1msc;
unsigned char Ledc;
unsigned char Leds[]={8,6,0×13,5,1,2,3,4};
bit isStart;
int temp=9; //0.1秒存储变量 初始值 9
code char LEDTAB[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x00,
};