DHCP
DHCP
Published on 2024-05-07 / 268 Visits
7
2

单片机开发项目(考试) 总共两大题 其一

单片机开发项目(考试) 总共两大题 其一

1. 综合实验设计题目1要求

AT89S51单片机引脚接有15个按键K0~K14,另外还接有8个LED发光二极管和一个电磁式无源蜂鸣器,2个动态显示的数码管,绘制仿真电路并编程实现以下功能:
⑴按键K0~K11分别代表数值0~11。当相应的按键按下时,蜂鸣器发出250HZ鸣响,并且两位数码管显示出相应的按键代表的十进制数值(00∽11)。(说明:按键按下蜂鸣器响并显示数值得30分,按键按下无蜂鸣仅显示得20分)
⑵按K12按键, 用定时中断实现2位动态连接数码管60秒倒计数并显示(2个动态连接的数码管,60~00);(说明:定时中断来实现30分,不用定时中断实现15分)
⑶按K13按键,触发外部中断1,将数码管显示设置为“――”。(10分)
⑷按K14按键, 实现1个并行端口的8个LED灯每隔500ms双向流水点亮,从低位到高位,再回到低位,重复2次;(10分)

效果展示:

效果演示视频:

https://vvp.145959.xyz/DHCP/%E5%8D%95%E7%89%87%E6%9C%BA%E5%AD%A6%E4%B9%A0/%E5%8D%95%E7%89%87%E6%9C%BA%E5%BC%80%E5%8F%91%E9%A1%B9%E7%9B%AE(%E8%80%83%E8%AF%95)%20%E6%80%BB%E5%85%B1%E4%B8%A4%E5%A4%A7%E9%A2%98%E5%85%B6%E4%B8%80%E6%95%88%E6%9E%9C%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91.mp4

代码展示:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
unsigned char x=60;
sbit bb=P2^7;
void lsd(unsigned int y){
		uchar code smg[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
		P0=smg[y/10];
		P2=smg[y%10];
}

void time(int i){
	int j;
	for(i;i>0;i--)
		for(j=0;j<114;j++);
}

void time500(){
	int j;
	for(j=0;j<25;j++);
}

void beep()
{
	int o;
	for(o=0;o<1000;o++){
		bb=1;
		time500();
		bb=0;
		time500();
	}
}
void main(){
		uchar code smg[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
		int j=0,k,u,n;
		P2=0x80;
		P0=0xFF;
		while(1){
			P1 = 0x0f;
			if(P1!=0x0f)
				time(15);
			switch(P1)
			{
				case 0x0e:	j=0;	break;
				case 0x0d:	j=1;	break;
				case 0x0b:	j=2;	break;
				case 0x07:	j=3;
			}
			P1 = 0Xf0;
			switch(P1)
			{
				case 0xe0:	j+=0;beep();	break;
				case 0xd0:	j+=4;beep();	break;
				case 0xb0:	j+=8;beep();	break;
				case 0x70:	j+=12;beep(); break;
				//case 0xf0:	j=16;
			}
			if(j/9 != 0)
				k=j/10;
			else
				k=0;
			if (j==13){
						P0=smg[10];
						P2=smg[10];
			}
			else if(j==12){
					x=60;
					EA=1;
					ET0=1;
					TMOD=0x01;
					TH0=(65536-50000)/256;
					TL0=(65536-50000)%256;
					TR0=1;
					while(x)
						lsd(x);
					time(100);
					j=0;

				}
			else if (j==14){
				for(u=0;u<=1;u++){
					P3=0xfe;
					time(500);
					for(n=0;n<13;n++){
					if(n<7)
					P3=_crol_(P3,1);
					else
					P3=_crol_(P3,-1);
					time(500);
				}}
				P3=0xfe;
				time(500);
				P3=0xff;
				j=0;
			}
			else{
			P0=smg[k];
			P2=smg[j%10];}
			time(4);
		}}
void Time(void) interrupt 1 using 0{
				unsigned char n;
				n+=1;
				if(n==10){
					x-=1;
					n=0;
				}
			TH0=(65536-50000)/256;
			TL0=(65536-50000)%256;
			}

单片机开发项目(考试) 总共两大题其一仿真和源文件资源

地址:https://vvp.145959.xyz/DHCP/%E5%8D%95%E7%89%87%E6%9C%BA%E5%AD%A6%E4%B9%A0/%E5%8D%95%E7%89%87%E6%9C%BA%E5%BC%80%E5%8F%91%E9%A1%B9%E7%9B%AE(%E8%80%83%E8%AF%95)%20%E6%80%BB%E5%85%B1%E4%B8%A4%E5%A4%A7%E9%A2%98%E5%85%B6%E4%B8%80%E4%BB%BF%E7%9C%9F%E5%92%8C%E6%BA%90%E6%96%87%E4%BB%B6


Comment