一、功能描述
按下SW1控制左側(cè)數(shù)碼管會(huì)從0~9依次變化都弹;按下SW2控制右側(cè)數(shù)碼管也會(huì)從0~9依次變化娇豫,然后循環(huán)。
二畅厢、結(jié)構(gòu)圖
三冯痢、流程
/******************D???·?à?ê|μ?51μ¥???ú?a·¢????°?ày********************
**********************************************************************/
#include "reg52.h"
sbit C1 = P2^7;
sbit C2 = P2^6;
sbit C3 = P2^5;
sbit C4 = P2^4;
sbit SW1 = P3^4;
sbit SW2 = P3^3;
//?¨ò?12??êy??1ü?TD?êyμ?μ?êy×??????μ
unsigned char SMGNoDot_CA[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
unsigned char s1 = 0, s2 = 0;
/*==================êy??1ü?ˉì???ê?רó??óê±oˉêy==================*/
void DelaySMG(unsigned int t)
{
while(t--);
}
/*=====================μ¥??êy??1ü??ê?oˉêy=======================*/
void DisPlaySMG_Bit(unsigned char pos, unsigned char dat)
{
P0 = 0xff; //??òt
switch(pos) //????êy??1ü????
{
case 1:
C1 = 1; C2 = 0; C3 = 0; C4 = 0;
break;
case 2:
C1 = 0; C2 = 1; C3 = 0; C4 = 0;
break;
case 3:
? C1 = 0; C2 = 0; C3 = 1; C4 = 0;
break;
case 4:
C1 = 0; C2 = 0; C3 = 0; C4 = 1;
break;
}
P0 = dat; //ê?3?êy??1ü??ê?μ??úèY
}
/*====================4??êy??1ü?ˉì???ê?oˉêy======================*/
void DisPlaySMG()
{
DisPlaySMG_Bit(1, SMGNoDot_CA[s1]);
DelaySMG(100);
DisPlaySMG_Bit(2, 0xbf);
DelaySMG(100);
DisPlaySMG_Bit(3, 0xbf);
DelaySMG(100);
DisPlaySMG_Bit(4, SMGNoDot_CA[s2]);
DelaySMG(100);
}
/*======================°′?üé¨?è′|àíoˉêy=======================*/
void Scan_Keys()
{
//SW1°′?üé¨?è′|àí
if(SW1 == 0)
{
DelaySMG(200);
if(SW1 == 0)
{
while(SW1 == 0)
{
DisPlaySMG();
}
s1++;
if(s1 == 10)
{
s1 = 0;
}
}
}
//SW2°′?üé¨?è′|àí
if(SW2 == 0)
{
DelaySMG(200);
if(SW2 == 0)
{
while(SW2 == 0)
{
DisPlaySMG();
}
s2++;
if(s2 == 10)
{
s2 = 0;
}
}
}
}
/*==========================?÷oˉêy============================*/
void main()
{
while(1)
{
DisPlaySMG();
Scan_Keys();
}
}
四、流程圖
五框杜、小結(jié)
本節(jié)課是期末考試的上機(jī)部分考試浦楣,老師發(fā)給了我們一個(gè)上機(jī)任務(wù),讓我們修改程序咪辱,實(shí)現(xiàn)正常功能振劳,完成本程序的結(jié)構(gòu)圖和流程圖,并上傳至簡(jiǎn)書油狂。
課上在改程序的部分還是比較基礎(chǔ)的历恐,沒有花費(fèi)太多的時(shí)間寸癌,但在分析這個(gè)程序的功能,燒錄出來后顯示的功能是弱贼,一直不太確定我們的結(jié)論是否正確蒸苇,花費(fèi)了大量時(shí)間,分析吮旅。
但好在最后還是有成果的溪烤。