好文档 - 专业文书写作范文服务资料分享网站

单片机C语言程序设计代码和仿真图

天下 分享 时间: 加入收藏 我要投稿 点赞

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例

case 1: KeyNo=0;break; case 2: KeyNo=1;break; case 4: KeyNo=2;break; case 8: KeyNo=3;break; default:KeyNo=16; //无键按下 }

P1=0xf0; //低4位置0,放入4列 DelayMS(1);

Tmp=P1>>4^0x0f;//按键后f0变成XXXX0000,X中有1个为0,三个仍为1;高4位转移到低4位并异或得到改变的值

switch(Tmp) //对0~3行分别附加起始值0,4,8,12 {

case 1: KeyNo+=0;break; case 2: KeyNo+=4;break; case 4: KeyNo+=8;break; case 8: KeyNo+=12; } } //蜂鸣器 void Beep() {

41

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例

uchar i;

for(i=0;i<100;i++) {

DelayMS(1); BEEP=~BEEP; } BEEP=0; } //主程序 void main() {

P0=0x00; BEEP=0; while(1) {

P1=0xf0;

if(P1!=0xf0) Keys_Scan(); //获取键序号 if(Pre_KeyNo!=KeyNo) {

P0=~DSY_CODE[KeyNo]; Beep();

Pre_KeyNo=KeyNo; }

42

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例

DelayMS(100); } }

18 开关控制LED

/* 名称:开关控制LED 说明:开关S1和S2分别控制LED1和LED2。 */

#include sbit S1=P1^0; sbit S2=P1^1; sbit LED1=P0^0; sbit LED2=P0^1; //主程序 void main() {

while(1) {

LED1=S1;

43

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例

LED2=S2; } }

19 继电器控制照明设备

/* 名称:继电器控制照明设备

说明:按下K1灯点亮,再次按下时灯熄灭 */

#include

#define uchar unsigned char #define uint unsigned int sbit K1=P1^0; sbit RELAY=P2^4; //延时

void DelayMS(uint ms) {

uchar t;

while(ms--)for(t=0;t<120;t++); } //主程序

44

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例

void main() {

P1=0xff; RELAY=1; while(1) {

if(K1==0) {

while(K1==0);

RELAY=~RELAY; DelayMS(20); } } }

20 数码管显示拨码开关编码

/* 名称:数码管显示拨码开关编码

说明:系统显示拨码开关所设置的编码000~255 */

#include #include

45

单片机C语言程序设计代码和仿真图

《单片机C语言程序设计实训100例---基于8051和PROTEUS仿真》案例case1:KeyNo=0;break;case2:KeyNo=1;break;case4:KeyNo=2;break;case8:KeyNo=3;break;default:KeyNo=16;//无键按下}P1=0xf0;
推荐度:
点击下载文档文档为doc格式
9kxd01cs1i4uc568cqjj1x2cx44ea901aap
领取福利

微信扫码领取福利

微信扫码分享