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

  • 大小: 115KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-01
  • 語言: 其他
  • 標簽:

資源簡介

CH452鍵盤數碼管驅動程序,配有電路圖,很方便查看是使用!

資源截圖

代碼片段和文件信息

/**************************************************
*程序名稱:CH452+AT89S52?C控制程序 ?????????
*程序功能:?用CH452驅動16個按鍵 ?
* 12MHZ晶振
* ?P2口用LED燈顯示按鍵值 ?
* ? ??
*編寫:fw&x 編寫時間:2008\11\3
***************************************************/
#include
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int

/*?4線SPI接口的連接與實際電路有關?*/
sbit???CH452_DCLK=P3^6;?????????????????????//?串行數據時鐘上升延激活
sbit???CH452_DIN=P3^5; ????????????????//?串行數據輸出,接CH452的數據輸入
sbit???CH452_LOAD=P3^4;?????????????????????//?串行命令加載,上升延激活
sbit???CH452_DOUT=P3^3;?????????????????????//?INT1,鍵盤中斷和鍵值數據輸入,接CH452的數據輸出

//#pragma?NOAREGS //?如果MCS51使用鍵盤中斷功能,那么建議加入此編譯選項
#define DELAY_1US {_nop_();} //?MCS51<=20MHz
/*?4線接口的位操作與單片機有關?*/
#define CH452_DCLK_SET {CH452_DCLK=1;}
#define CH452_DCLK_CLR {CH452_DCLK=0;}
#define CH452_DCLK_D_OUT {} //?設置DCLK為輸出方向對于雙向I/O需切換為輸出
#define CH452_DIN_SET {CH452_DIN=1;}
#define CH452_DIN_CLR {CH452_DIN=0;}
#define CH452_DIN_D_OUT {} //?設置DIN為輸出方向對于雙向I/O需切換為輸出
#define CH452_LOAD_SET {CH452_LOAD=1;}
#define CH452_LOAD_CLR {CH452_LOAD=0;}
#define CH452_LOAD_D_OUT {} //?設置LOAD為輸出方向對于雙向I/O需切換為輸出
#define CH452_DOUT_D_IN {CH452_DOUT=1;} //?設置DOUT為輸入方向對于雙向I/O需切換為輸入

#define DISABLE_KEY_INTERRUPT {EX1=0;}
#define ENABLE_KEY_INTERRUPT {EX1=1;}
#define CLEAR_KEY_INTER_FLAG {IE1=0;}
#define?CH452_RESET?????0x0201 //?復位
#define?CH452_SYSON2????0x0403 //?開啟顯示、鍵盤

volatile?uchar?keyp;

?//輸出操作命令子程序
?//定義一無符號整型變量存儲12字節的命令字。
void?CH452_Write(unsigned?short?cmd)
{
unsigned?char?i;
DISABLE_KEY_INTERRUPT; //禁止鍵盤中斷防止傳輸過程中被CH452中斷而進入中斷服務程序中再次傳輸
CH452_LOAD_CLR;?????????//命令開始LOAD=0
CH452_LOAD_D_OUT; //?設置LOAD為輸出方向
CH452_DOUT_D_IN; //?設置DOUT為輸入方向
CH452_DIN_D_OUT; //?設置DIN為輸出方向
CH452_DCLK_D_OUT; //?設置DCLK為輸出方向
for(i=0;i!=12;i++) //送入12位數據,低位在前
{
if?(cmd&1)?{CH452_DIN_SET;}
else?{CH452_DIN_CLR;}??//?輸出位數據
???? CH452_DCLK_CLR;
???? cmd>>=1;
???? CH452_DCLK_SET;?????????????//上升沿有效
}
?? CH452_LOAD_SET;?????????//加載數據LOAD上升沿
DELAY_1US; //命令數據加載周期不小于6USCH451不需要該周期
DELAY_1US;
DELAY_1US;
DELAY_1US;
DELAY_1US;
DELAY_1US;
?? ENABLE_KEY_INTERRUPT;
}

//*************************************************
//輸入按鍵代碼子程序,從CH452讀取
unsigned?char?CH452_Read(?void?)
{
unsigned?char?i;
?? unsigned?char?cmdkeycode; //定義命令字,和數據存儲器
?? DISABLE_KEY_INTERRUPT; //禁止鍵盤中斷防止傳輸過程中被CH452中斷而進入中斷服務程序中再次傳輸
?? cmd=0x07; ???????????????//讀按鍵的命令字
?? CH452_LOAD_CLR;
?? for(i=0;i!=4;i++)??//?只需要發出高4位多發也可以但應該確保最后留下的4位是該命令碼
{
if?(cmd&1)?{CH452_DIN_SET;}
else?{CH452_DIN_CLR;}??//?輸出位數據
// CH452_DIN=cmd&1; ??????//送入最低位
???? CH452_DCLK_CLR; ?
???? cmd>>=1; ??????//往右移一位
???? CH452_DCLK_SET; ??????//產生時鐘上升沿鎖通知CH451輸入位數據
? }
?? CH452_LOAD_SET; ??????//產生加載上升沿通知CH451處理命令數據
?? keycode=0; ??????//清除keycode
?? for(i=0;i!=7;i++)
{
keycode<<=1; ??????//數據移入keycode高位在前低位在后
if?(CH452_DO

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2009-08-26?21:31??ch452鍵盤驅動和數碼管驅動\
?????目錄???????????0??2009-08-18?14:20??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\
?????目錄???????????0??2009-08-18?14:20??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\
?????文件????????6575??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c
?????文件????????5275??2009-08-05?15:50??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.c
?????文件????????1102??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.hex
?????文件??????????40??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.lnp
?????文件???????10249??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.LST
?????文件????????8018??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.M51
?????文件????????7095??2009-08-05?15:53??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.OBJ
?????文件?????????988??2009-08-05?15:54??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.Opt
?????文件?????????844??2009-08-05?15:54??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.plg
?????文件????????2125??2009-03-26?16:31??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c.Uv2
?????文件?????????984??2009-07-24?14:56??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c_Opt.Bak
?????文件???????????0??2009-03-26?15:54??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\452c_Uv2.Bak
?????文件???????35272??2009-05-10?22:49??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\CH452鍵盤驅動板原理圖.pdf
?????文件???????12917??2009-05-11?00:29??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\CH452鍵盤驅動板布局圖.pdf
?????目錄???????????0??2009-08-18?14:20??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\
?????文件?????????605??2009-05-13?12:04??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\CH452CMD.H
?????文件????????5329??2009-05-13?14:14??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\CH452KEY.H
?????文件?????????401??2009-05-13?14:10??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\CH452W4.C
?????文件????????1717??2006-11-05?00:00??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\EXAM.C
?????文件????????1572??2009-05-13?12:06??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板\泌恒庫\PIN.H
?????文件???????35272??2009-08-05?15:58??ch452鍵盤驅動和數碼管驅動\CH452鍵盤驅動板\CH452鍵盤驅動板原理圖.pdf
?????目錄???????????0??2009-08-18?14:20??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\
?????目錄???????????0??2009-08-18?14:20??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\
?????文件???????10807??2009-08-05?16:04??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\452c
?????文件????????4006??2009-08-05?15:57??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\452c.c
?????文件????????1585??2009-08-05?16:04??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\452c.hex
?????文件??????????40??2009-08-05?16:04??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\452c.lnp
?????文件????????7845??2009-08-05?16:04??ch452鍵盤驅動和數碼管驅動\CH452驅動8個數碼管和20個按鍵\CH452測\452c.LST
............此處省略11個文件信息

評論

共有 條評論

相關資源