基于Proteus的多功能单片机仿真开发板(内含多个程序模块)

2019-04-02 12:41

1. 流水灯同数码管报警实验

程序:#include #include #define uint unsigned int #define uchar unsigned char uchar tt,num,temp; sbit dula=P2^6; sbit wela=P2^7;

sbit BEEP = P2^3; //蜂鸣器控制端口P2.3 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; void xu(uint z);

void delay(unsigned int cnt)//延时 {

while(--cnt); }

void beep() //蜂鸣器响一声函数 {

unsigned char i;

for (i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短 {

delay(80);//参数决定发声的频率,估算值 BEEP=!BEEP; //BEEP取反 }

BEEP=1; //喇叭停止工作,间歇的时间,可更改 delay(20000); //延时 } void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1; dula=1; P0=table[0]; dula=0; wela=1; P0=0xc0; wela=0; temp=0xfe; while(1) {

P1=temp; beep(); xu(100); temp=_crol_(temp,1); P1=0xff; //beep(); xu(100); //P0=0x8f; //beef=1; //wela=1; // } } void xu(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void time() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%6; tt++; if(tt==10) { tt=0; num++; if(num==16) num=0; dula=1; P0=table[num]; dula=0; } }

2. 矩阵键盘检测

//4*4键盘检测程序,按下键后相应的代码显示在数码管上 #include sbit beep=P2^3; sbit dula=P2^6;

sbit wela=P2^7;

unsigned char i=100; unsigned char j,k,temp,key; void delay(unsigned char i) {

for(j=i;j>0;j--)

for(k=125;k>0;k--); }

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; display(unsigned char num) {

P0=table[num]; // P0=0xff; dula=1; dula=0; P0=0xc0; wela=1; wela=0; }

void main() {

dula=0; wela=0; while(1) {

P3=0xfe; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

delay(10); if(temp!=0xf0) {

temp=P3; switch(temp) {

case 0xee: key=0; break;

case 0xde: key=1; break;

case 0xbe: key=2; break;

case 0x7e: key=3; break; }

while(temp!=0xf0) {

temp=P3;

temp=temp&0xf0; beep=0; }

beep=1; display(key); // P0=table[key]; /* P0=0xff; dula=1;

while(i--); dula=0; P0=0xc0; wela=1; wela=0; dula=0; wela=0; P0=0xff; dula=1; dula=0; P0=0xc5; wela=1; wela=0; */

P1=0xfe; } }

P3=0xfd; temp=P3;

temp=temp&0xf0; if(temp!=0xf0) {

delay(10); if(temp!=0xf0)


基于Proteus的多功能单片机仿真开发板(内含多个程序模块).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青岛市重点车辆交通安全隐患核查表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: