资源简介
51单片机 CH452驱动数码管,按键,按键控制,简单的按键控制程序
代码片段和文件信息
/****************************************************************************** * 标题: SYZX_DZ02单片机最小系统板调试源程序 * * 日期: 2011-07-01 * * 描述: 在数码管上显示‘12345678‘A键按下右端两位显示按键值
B键按下循环显示F键按下蜂鸣器报警.(切换前先复位) * ******************************************************************************/
#include
#include
#include
#define CH452_I2C_ADDR1 0x60
#define CH452_I2C_MASK 0x3E
#define CH452_GET_KEY 0x0700
#define uchar unsigned char
#define uint unsigned int
sbit P15=P1^5;
sfr P1M1=0x91;
sfr P1M0=0x92;
#define CH452_DIG0 0x0800 //数码管位0显示
#define CH452_DIG1 0x0900 //数码管位1显示
#define CH452_DIG2 0x0a00 //数码管位2显示
#define CH452_DIG3 0x0b00 //数码管位3显示
#define CH452_DIG4 0x0c00 //数码管位4显示
#define CH452_DIG5 0x0d00 //数码管位5显示
#define CH452_DIG6 0x0e00 //数码管位6显示
#define CH452_DIG7 0x0f00 //数码管位7显示
sbit CH452_SDA=P1^6;
sbit CH452_SCL=P1^7;
sbit CH452_INT=P3^2;
volatile uchar keycode;
volatile uchar M;
volatile uchar N;
volatile bit flag;
void DELAY_1US()
{
_nop_();
}
void DELAYms(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<124;i++); }
}
void CH452_I2c_Start(void)//芯片启动程序 时序
{
EX0=0;
CH452_SDA=1;
CH452_SCL=1;
DELAY_1US();
CH452_SDA=0;
DELAY_1US();
CH452_SCL=0;
DELAY_1US();
}
void CH452_I2c_Stop(void)
{
CH452_SDA=0;
DELAY_1US();
CH452_SCL=1;
DELAY_1US();
CH452_SDA=1;
DELAY_1US();
DELAY_1US();
EX0=1;
}
void CH452_I2c_WrByte(unsigned char dat) {
uchar i;
for(i=0;i!=8;i++)
{
if(dat&0x80) {CH452_SDA=1;}
else
{CH452_SDA=0;
}
DELAY_1US();
CH452_SCL=1;
dat<<=1;
DELAY_1US();
DELAY_1US();
CH452_SCL=0;
DELAY_1US();
}
CH452_SDA=1;
DELAY_1US();
CH452_SCL=1;
DELAY_1US();
DELAY_1US();
CH452_SCL=0;
DELAY_1US();
}
unsigned char CH452_I2c_RdByte(void)
{
uchar dati;
CH452_SDA=1;
dat=0;
for(i=0;i!=8;i++)
{
CH452_SCL=1;
DELAY_1US();
DELAY_1US();
dat<<=1;
if(CH452_SDA) dat++;
CH452_SCL=0;
DELAY_1US();
DELAY_1US();
}
CH452_SDA=1;
DELAY_1US();
CH452_SCL=1;
DELAY_1US();
DELAY_1US();
CH452_SCL=0;
DELAY_1US();
return(dat);
}
void CH452_Write(unsigned short cmd)
{
CH452_I2c_Start();
CH452_I2c_WrByte((uchar)(cmd>>7)&CH452_I2C_MASK|CH452_I2C_ADDR1);
CH452_I2c_WrByte((uchar)cmd);
CH452_I2c_Stop();
}
unsigned char CH452_Read(void)
{
CH452_I2c_Start();
CH452_I2c_WrByte((uchar)(CH452_GET_KEY>>7)&CH452_I2C_MASK|0x01|CH452_I2C_ADDR1);
keycode=CH452_I2c_RdByte();
CH452_I2c_Stop();
return(keycode);
}
void CH452_bcd(uchar ds_bcd)
{
switch(ds_bcd)
{
case 0x40: M=0x00; break; //按键0被按下
case 0x41: M=0x01; break; //按键1被按下以此类推,主板从下到上,从左到右
case 0x42: M=0x02; break;
case 0x43: M=0x03; break;
case 0x48: M=0x04; break;
case 0x49: M=0x05; break;
case 0x4A: M=0x06; break;
case 0x4B: M=0x07; break;
case 0x50: M=0x08; break;
case 0x51: M=0x09; break;
case 0x52: M=0x0A; break;
case 0x53: M=0x0B; break;
case 0x58: M=0x0C; break;
case 0x59: M=0x0D; break;
case 0x5A: M=0x0E; break;
case 0x5B: M=0x0F; break;
default:return;
}
}
void CH452_inter()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4220 2015-05-17 09:47 实验按键\2.c
文件 8727 2015-05-17 14:42 实验按键\2.LST
文件 13446 2015-05-17 14:42 实验按键\2.OBJ
文件 12203 2015-05-24 13:12 实验按键\anjian
文件 36 2015-05-17 14:40 实验按键\anjian.__i
文件 4275 2015-05-24 13:12 实验按键\anjian.c
文件 1977 2015-05-24 13:12 实验按键\anjian.hex
文件 55 2015-05-24 13:12 实验按键\anjian.lnp
文件 8998 2015-05-17 14:40 实验按键\anjian.LST
文件 16508 2015-05-24 13:12 实验按键\anjian.M51
文件 182 2015-05-29 18:14 实验按键\anjian.plg
文件 56149 2015-05-29 18:15 实验按键\anjian.uvopt
文件 13524 2015-05-15 14:27 实验按键\anjian.uvproj
文件 56153 2015-05-29 15:06 实验按键\anjian_uvopt.bak
文件 0 2015-05-15 13:58 实验按键\anjian_uvproj.bak
文件 6376 2009-05-07 14:37 实验按键\STARTUP.A51
文件 14043 2015-05-17 14:42 实验按键\STARTUP.LST
文件 749 2015-05-17 14:42 实验按键\STARTUP.OBJ
相关资源
- 《手把手教你学51单片机》教材pdf
- LCD1602硬件结构及程序设计
- 经典51单片机开发板Protel99se文件含原
- STC8A加强版开发板配套程序
- 基于AT89C51单片机的水塔智能水位控制
- 基于51单片机的全自动洗衣机控制器的
- \\51单片机35个
- 单片机音乐彩灯
- 基于51单片机的简易交通灯设计
- 单片机课程设计:数字电压表8路通道
- 项目二-51单片机-倒车雷达控制系统设
- 简易电子琴设计
- 基于51单片机ACS712数字电流表,c、仿
- 51单片机涉及到的各种芯片手册
- 汇编51单片机密码锁含论文、程序、
- 51单片机超声波测距模块全套程序
- 51单片机便携式输液点滴控制报警器
- 单片机原理及应用.pdf
- 51单片机开发板PCB 原理图
- 51单片机和modbus中文资料软件源代码全
- 蓝牙模块详细资料 51单片机控制蓝牙
- 51单片机驱动TFT真彩屏
- 51单片机波形发生器设计,正弦波、三
- 51单片机Modbus_RTU
- 12864液晶带字库+不带字库+51单片机贪
- 51单片机音乐播放器的设计,在LCD12
- 基于51单片机串口温湿度采集和传输仿
- 汇编语言指令大全(详解版).pdf
- 51单片机门禁上位机,下位机全部工程
- 基于51单片机接入阿里云物联网.pdf
评论
共有 条评论