单片机c语言中void key(void),STC单片机C语言通用万能编程模板

《STC单片机C语言通用万能编程模板》由会员分享,可在线阅读,更多相关《STC单片机C语言通用万能编程模板(23页珍藏版)》请在人人文库网上搜索。

1、8051 单片机 C 语言编程模板1. 函数头文件 1秒级CPU延时函数 23.定时 / 计数器初始化函数 4备 注:本函数控制 T/C1和T/CO,不需要使用的部分可用时/计数器1中断处理函数 4void T_C1 (void) interrupt 3 using 3时/计数器 0中断处理函数 5void T_C0 (void) interrupt 1 using 1部中断 INT 初始化函数 5EA = 1;部中断 INT1 中断处理程序 6void INT_1 (void) interrupt 2using2部中断INT0 中断处理程序 6void INT_0 (void) interr。

2、upt 0using2通 I/O口模拟 PWM生成程序 7void display (unsigned int a)函数 764021,64103,64260,64400,8 个独立式键盘驱动程序 . 8unsigned char Key ( )16个阵列式键盘驱动程序 91. 函数头文件程序名:编写人:编写时间:20年 月曰硬件支持:接口说明:修改日志:说明:*#inelude /* 函数名:毫秒级CPLgE时函数调用:DELAY_MS ();参 数:1-65535 (参数不可为 0)返回值:无秒级CPIM时函数结 果:占用CPU方式延时与参数数值相同的毫秒时间 备 注:应用于1T单片机时i。

3、600,应用于12T单片机时i125 (在此预为1T单片机数值)/*/void DELAY_MS ( unsigned int a )unsigned int i;while ( -a != 0)for(i = 0; i 600; i+);*/M1M0方式说明00013位T/C,由TL低5位和TH的8位组成13位计数器01116位T/C,TL和TH共16位计数器1028位T/C, TL用于计数,当TL溢出时将TH中的值自动写入 TL113两组 8 位 T/C3. 定时 / 计数器初始化函数/*函数名:定时 / 计数器初始化函数调 用: T_C_init();参 数:无返回值:无结 果:设置 S。

4、FR 中 T/C1 和(或) T/C0 相关参数备 注:本函数控制T/C1和T/CO,不需要使用的部分可用 时/计数器1中断处理函数/*函数名:定时 / 计数器 1 中断处理函数调 用: T/C1 溢出后中断处理 参 数:无返回值:无结 果:重新写入 16 位计数寄存器初始值,处理用户程序备 注:必须允许中断并启动 T/C 本函数方可有效,重新写入初值需和 T_C_init 函数一致*时 / 计数器 0 中断处理函数void T_C1 (void) interrupt 3 using 3 /* 函数名:定时 / 计数器 0 中断处理函数 调 用: T/C0 溢出后中断处理 参 数:无返回值:无。

5、结 果:重新写入 16 位计数寄存器初始值,处理用户程序备 注:必须允许中断并启动 T/C 本函数方可有效,重新写入初值需和 T_C_init 函数一致 */void T_C0 (void) interrupt 1 using 1 部中断 INT 初始化函数 /* 函数名:外部中断 INT 初始化函数调 用: INT_init();参 数:无返回值:无结 果:启动外部中断 INT1、 INT0 中断,设置中断方式备 注:*void INTJnit (void)EA= 1;/*函数名:外部中断INT1中断处理程序调 用:外部引脚INT1中断处理参 数:无返回值:无结 果:用户处理外部中断信号备注。

6、:*/void INT_1 (void) interrupt 2 using 2*函数名:外部中断INTO中断处理程序调 用:外部引脚INTO中断处理参 数:无返回值:无部中断INT1中断处理程序部中断INTO中断处理程序结 果:用户处理外部中断信号备注:*void INT_0 (void) interrupt 0 using 2*函数名:普通I/O 口模拟PWMfe成程序调用:display ()备注:*void display (unsigned int a)/*函数名:主函数调用:无参 数:无返回值:无结 果:程序开始处,无限循环备注:通I/O 口模拟PWMk成程序函数void main。

7、 (void)/* 函数名:扬声器驱动备 注:/*/unsigned char MUSIC;unsigned char STH0;unsigned char STL0;个独立式键盘驱动程序unsigned int code tab=64021,64103,64260,64400,8/* 函数名: 8 个独立式键盘驱动程序调 用: = Key ();参 数:无返回值: unsigned char 键值 08结 果:有键按下时返回值为键值18 ,无键按下时返回值为 0备 注:在主函数中不断调用unsigned char Key ()* 函数名:16个阵列式键盘驱动程序调用:=Key ();参 数:。

8、无返回值:unsigned char 键值 016结 果:有键按下时返回值为键值116,无键按下时返回值为 0备注:在主函数中不断调用*/unsigned char Key (void)unsigned char a,b,c;KEY = OxOf;if (KEY != OxOf)Delay (20);if (KEY != OxOf)16个阵列式键盘驱动程序/4*4阵列键盘处理程序/设定键盘初始电平状态/读取键盘状态是否改变/延时20ms去抖动/重新读取a = KEY;KEY = OxfO; c = KEY;a = a|c; switch(a)case Oxee: b = 1; break; c。

9、ase Oxed: b = 2; break; case Oxeb: b = 3; break; case 0xe7: b = 4; break; case Oxde: b = 5; break; case Oxdd: b = 6; break; case Oxdb: b = 7; break; case 0xd7: b = 8; break; case Oxbe: b = 9; break;case Oxbd: b = 10; break; case Oxbb: b = 11; break;/寄存状态值到a/设定键盘反向电平状态/读取反向电平状态值到c/a与c相或/键盘状态查表case 0x。

10、b7: b = 12; break;case 0x7e: b = 13; break;case 0x7d: b = 14; break;case 0x7b: b = 15; break;case 0x77: b = 16; break;default: b = 0 ; break;return (b);*T_C_init();UART_init();INT_init();LCM2402nit();/P1M0 = 0xff;/P1M1 = 0x00;/将b中的键值代号送入函数返回值/将P1接口设置为高阻态输入 (去掉/ ”解除屏蔽)/触摸按键启用/DELAY_MS (200);while(1)/延时等待I/O接口电平状态稳定/PWM初始化/初始程序/无限循环程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值