91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

本設計是按鍵數碼管顯示proteus仿真和C程序,本設計是按鍵數碼管顯示proteus仿真和C程序,本設計是按鍵數碼管顯示proteus仿真和C程序

資源截圖

代碼片段和文件信息

?#include?


#define?DATAP0?P0?//定義數據端口?
#define?KeyPort??P3

sbit?LOCK1=P2^0;//定義數碼管鎖存使能端口?
?????

unsigned?char?code?mcuend_DuanMa[]={
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x71};//?顯示段碼值0~F

unsigned?char?TempData[8];?//存儲顯示值的全局變量

void?DelayUs2x(unsigned?char?t);//us級延時函數聲明?
void?DelayMs(unsigned?char?t);?//ms級延時
void?Display(unsigned?char?FirstBitunsigned?char?Num);//數碼管顯示函數
unsigned?char?KeyScan(void);//鍵盤掃描
unsigned?char?KeyPro(void);
void?Init_Timer0(void);//定時器初始化
/*
????????????????????主函數
*/
void?main?(void)
{
unsigned?char?numi;??????????????????
unsigned?char?temp[8];
Init_Timer0();

while?(1)?????????//主循環
??{
??num=KeyPro();
??if(num!=0xff)
?????{
???????temp[i]=mcuend_DuanMa[num];
???TempData[i]=temp[i];
?????}
??
??}
}
/*------------------------------------------------
?uS延時函數,含有輸入參數?unsigned?char?t,無返回值
?unsigned?char?是定義無符號字符變量,其值的范圍是
?0~255?這里使用晶振12M,精確延時請使用匯編大致延時
?長度如下?T=tx2+5?uS?
------------------------------------------------*/
void?DelayUs2x(unsigned?char?t)
{???
?while(--t);
}
/*------------------------------------------------
?mS延時函數,含有輸入參數?unsigned?char?t,無返回值
?unsigned?char?是定義無符號字符變量,其值的范圍是
?0~255?這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void?DelayMs(unsigned?char?t)
{
?????
?while(t--)
?{
?????//大致延時1mS
?????DelayUs2x(245);
?DelayUs2x(245);
?}
}
/*------------------------------------------------
?顯示函數,用于動態掃描數碼管
?輸入參數?FirstBit?表示需要顯示的第一位,如賦值2表示從第三個數碼管開始顯示
?如輸入0表示從第一個顯示。
?Num表示需要顯示的位數,如需要顯示99兩位數值則該值輸入2
------------------------------------------------*/
void?Display(unsigned?char?FirstBitunsigned?char?Num)
{
??????static?unsigned?char?i=0;
??

???DATAP0=0;???//清空數據,防止有交替重影
???????LOCK1=1;?????//段鎖存
???????LOCK1=0;

???????DATAP0=TempData[i];?//取顯示數據,段碼
???????LOCK1=1;?????//段鎖存
???????LOCK1=0;
???????
???i++;
???????if(i==Num)
??????i=0;


}
/*------------------------------------------------
????????????????????定時器初始化子程序
------------------------------------------------*/
void?Init_Timer0(void)
{
?TMOD?|=?0x01; ??//使用模式1,16位定時器,使用“|“符號可以在使用多個定時器時不受影響 ?????
?//TH0=0x00; ??????//給定初值
?//TL0=0x00;
?EA=1;????????????//總中斷打開
?ET0=1;???????????//定時器中斷打開
?TR0=1;???????????//定時器開關打開
}
/*------------------------------------------------
?????????????????定時器中斷子程序
------------------------------------------------*/
void?Timer0_isr(void)?interrupt?1?
{
?TH0=(65536-2000)/256; ??//重新賦值?2ms
?TL0=(65536-2000)%256;
?
?Display(08);???????//?調用數碼管掃描

}

/*------------------------------------------------
????????按鍵掃描函數,返回掃描鍵值
------------------------------------------------*/
unsigned?char?KeyScan(void)??//鍵盤掃描函數,使用行列逐級掃描法
{
?unsigned?char?Val;
?KeyPort=0xf0;//高四位置高,低四位拉低
?if(KeyPort!=0xf0)//表示有按鍵按下
???{
????DelayMs(10);??//去抖
if(KeyPort!=0xf0)
??{???????????//表示有按鍵按下
???? KeyPort=0xfe;?//檢測第一行
if(KeyPort!=0xfe)
??

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-05-28?16:59??lab2\
?????文件????????6467??2018-05-28?16:43??lab2\lab_digital?pipe
?????文件????????5040??2018-05-28?16:43??lab2\lab_digital?pipe.c
?????文件??????106211??2018-05-28?16:59??lab2\lab_digital?pipe.DSN
?????文件????????1905??2018-05-28?16:43??lab2\lab_digital?pipe.hex
?????文件??????????64??2018-05-28?16:43??lab2\lab_digital?pipe.lnp
?????文件????????9733??2018-05-28?16:43??lab2\lab_digital?pipe.LST
?????文件???????11022??2018-05-28?16:43??lab2\lab_digital?pipe.M51
?????文件????????7429??2018-05-28?16:43??lab2\lab_digital?pipe.OBJ
?????文件?????????826??2018-05-28?16:43??lab2\lab_digital?pipe.plg
?????文件????????1052??2018-05-28?16:59??lab2\lab_digital?pipe.PWI
?????文件???????55250??2018-05-28?16:56??lab2\lab_digital?pipe.uvopt
?????文件???????????0??2018-05-28?16:25??lab2\lab_digital?pipe.uvproj
?????文件???????????0??2018-05-28?16:25??lab2\lab_digital?pipe_uvproj.bak
?????文件???????92033??2018-05-27?16:38??lab2\Last?Loaded?lab_digital?pipe.DBK

評論

共有 條評論