手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

hd7279键盘显示芯片c51代码

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
注意:经我的实验hd7279的耐压性能不是太好,最好不要超过5.5v。

/************************************************************************************/
/* */
/* S A G E T E C H . P R O P R I E T A R Y */
/* */
/* COPYRIGHT (c) 2005 BY SAGE TECH. CHINA. */
/* -- ALL RIGHTS RESERVED -- */
/* */
/* File Name: HD7279Atest.c */
/* Author: sagestar */
/* Created: 2005 */
/* Modified: no */
/* Revision: V1.0 */
/************************************************************************************/
/*程式作用:测试Sage Tech.研发板(MCP300)中hd7279键盘显示芯片是否能正常工作 */
/*程式功能:按下1号键显示0、1、2、3,按下2号键显示c、d、e、f,按下3号键显示4、5、6、7 */
/* 按下4号键显示8、9、a、b,按下0号键点亮4个LED灯 */
/************************************************************************************/
#include <reg51.h> /*定义头文档*/
/************************************************************************************/
typedef unsigned char BYTE; /*自定义字节类型*/
/************************************************************************************/
#define Set_Bit(BIT) (BIT = 1) /*定义置1函数*/
#define Clear_Bit(BIT) (BIT = 0) /*定义清0函数*/
/************************************************************************************/
void Led_On(BYTE); /*定义点亮LED灯函数*/
void Led_Off(BYTE); /*定义熄灭LED灯函数*/
void Write_Hd7279(BYTE,BYTE); /*定义HD7279写函数*/
BYTE Read_Hd7279(BYTE); /*定义HD7279读函数*/
void Send_Byte(BYTE); /*定义HD7279发送字节函数*/
BYTE Receive_Byte(void); /*定义HD7279接收字节函数*/
void Short_Delay(void); /*定义短延时函数*/
void Long_Delay(void); /*定义长延时函数*/
void Mcu_Init(void); /*定义MCU初始化函数*/
void Delay_200_mS(void); /*定义200ms延时函数*/
/************************************************************************************/
BYTE Keyboard_Out; /*定义键值变量*/
bit Keyboard_Flag; /*定义按键标志*/
/************************************************************************************/
sbit Hd7279_Key=P3^2; /*定义HD7279中断硬件连接*/
sbit Hd7279_Clk=P2^1; /*定义HD7279时钟硬件连接*/
sbit Hd7279_Data=P2^0; /*定义HD7279数据硬件连接*/
/************************************************************************************/
void main(void) /*主函数*/
{
Mcu_Init(); /*MCU初始化*/
while(1)
{
if(Keyboard_Flag)
{
Clear_Bit(Keyboard_Flag);
if(Keyboard_Out==0) /*0号键处理*/
{
Led_On(0x00);
Led_On(0x01);
Led_On(0x02);
Led_On(0x03);
}
else if(Keyboard_Out==1) /*1号键处理*/
{ /*显示0、1、2、3*/
Write_Hd7279(0xc9,0x03);
Write_Hd7279(0xca,0x02);
Write_Hd7279(0xcb,0x01);
Write_Hd7279(0xcc,0x00); Led_Off(0x02);
}
else if(Keyboard_Out==2) /*2号键处理*/
{ /*显示c、d、e、f*/
Write_Hd7279(0xc9,0x0f);
Write_Hd7279(0xca,0x0e);
Write_Hd7279(0xcb,0x0d);
Write_Hd7279(0xcc,0x0c); Led_Off(0x02);
}
else if(Keyboard_Out==3) /*3号键处理*/
{ /*显示4、5、6、7*/

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!