微电子技术与工程常见课题_第1页
微电子技术与工程常见课题_第2页
微电子技术与工程常见课题_第3页
微电子技术与工程常见课题_第4页
微电子技术与工程常见课题_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 闪烁的LED 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:LED单个闪烁原理图:程序:#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P10;/延时 void DelayMS(uint x)uchar i;while(x-)for(i=0;i<120;i+);/主程序void main()while(1)LED=LED;DelayMS(150);单只数码管循环显示0-9 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求

2、:单只数码管循环显示0-9原理图:程序:#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff; / 延时 void DelayMS(uint x) uchar t; while(x-) for(t=0;t<120;t+); / 主程序 void main() uchar i=0; P0=0

3、x00; while(1) P0=DSY_CODEi; i=(i+1)%10; DelayMS(300); 8只数码管流动显示单个数字 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:8只数码管流动显示单个数字原理图:程序:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07;void delayms(ui

4、nt x)uchar t;while(x-)for(t=0;t<120;t+); void main() uchar i,wei=0x80; while(1) for(i=0;i<8;i+) P2=0xff; wei=_crol_(wei,1); P0=DSY_CODEi; P2=wei; delayms(300); 数码管显示4*4矩阵按键号 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:数码管显示4*4矩阵按键号原理图:程序:KEYBUF EQU 30H ORG 00HSTART: MOV KEYBUF,#2WAIT: MOV P3,#0FFH CLR

5、 P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1NK4: NOPDK

6、1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,ADK1A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK1ANOKEY1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2NK5: CJNE A,#0DH

7、,NK6 MOV KEYBUF,#5 LJMP DK2NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2NK8: NOPDK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,ADK2A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK2ANOKEY2: MOV P3,#0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL D

8、ELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3NK12: NOPDK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR

9、MOV P0,ADK3A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK3ANOKEY3: MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4NK14: CJNE A,#

10、0BH,NK15 MOV KEYBUF,#14 LJMP DK4NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4NK16: NOPDK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,ADK4A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK4ANOKEY4: LJMP WAITDELY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETTABLE: DB 0c0H,0f9H,0a4H,0b0H,099H

11、DB 092H,082H,0f8H,080H,090H DB 088H,083H,0c6H,0a1H,086H,08eH END按键发音 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:按键发音原理图:程序:#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit BEEP=P15; sbit K1=P24; sbit K2=P25; sbit K3=P26; sbit K4=P27; / 延时 void DelayMS(uint x) uchar t; whil

12、e(x-) for(t=0;t<120;t+); / 按周期t 发音 void Play(uchar t) uchar i; for(i=0;i<100;i+) BEEP=BEEP; DelayMS(t); BEEP=0; void main() P1=0xff; BEEP=0; while(1) if(K1=0) Play(1); if(K2=0) Play(2); if(K3=0) Play(3); if(K4=0) Play(4); INT0及INT1的中断计数 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:INT0及INT1的中断计数原理图:程序:

13、#include <reg51.h>#define uchar unsigned char#define uint unsigned int sbit K3=P34;sbit K4=P35;uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x90,0xff;uchar code DSY_Scan_Bits=0x20,0x10,0x08,0x04,0x02,0x01;uchar data Buffer_Counts=0,0,0,0,0,0;uint Count_A,Count_B=0;void DelayMS(u

14、int x) uchar t; while(x-)for(t=0;t<120;t+);void show_Counts() uchar i; Buffer_Counts2=Count_A/100; Buffer_Counts1=Count_A%100/10; Buffer_Counts0=Count_A%10; if(Buffer_Counts2=0) Buffer_Counts2=0x0a; if(Buffer_Counts1=0) Buffer_Counts1=0x0a; Buffer_Counts5=Count_B/100; Buffer_Counts4=Count_B%100/1

15、0; Buffer_Counts3=Count_B%10; if(Buffer_Counts5=0) Buffer_Counts5=0x0a; if(Buffer_Counts4=0) Buffer_Counts4=0x0a;for(i=0;i<6;i+) P2=DSY_Scan_Bitsi; P1=DSY_CODEBuffer_Countsi; DelayMS(1);void main() IE=0x85; PX0=1; IT0=1; IT0=1; while(1) if(K3=0)Count_A=0; if(K4=0)Count_B=0; show_Counts(); void EX

16、_INT0()interrupt 0 Count_A+;void EX_INT1()interrupt 2 Count_B+;100000以内的计时程序 专业:微电子1104班 姓名:王宁 学号:1102050415功能要求:100000以内的计时程序原理图:程序:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

17、0x6f;uchar Digits_of_6DSY=0,0,0,0,0,0;uchar Count;sbit Dot=P07;void DelayMS(uint ms) uchar t; while(ms-)for(t=0;t<120;t+);void main() uchar i,j; P0=0x00; P3=0xff; Count=0; TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; IE=0X82; TR0=1; while(1) j=0x7f; for(i=5;i!=-1;i-) j=_crol_(j,1); P3=j; P0=D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论