单片机程序源代码_第1页
单片机程序源代码_第2页
单片机程序源代码_第3页
单片机程序源代码_第4页
单片机程序源代码_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章任务1 :闪烁广告灯的设计利用89c51单片机的端口控制两个LED(D0和D1 ),编制程序,实现两个LED的闪烁。#include#define uint unsigned int#define uchar unsigned charsbit LED1=P00;sbit LED2=P01;void delayms(uint ms )举止uint i;while (毫秒-)举止for(i=0; i120; PS )以下以下void main ()举止while(1)举止LED1=0;LED2=1;delayms(500 )LED1=1;LED2=0;delayms(500 )以下以下任务

2、2 :流水广告灯的设计用89c51单片机的端口循环点亮8个LED(D0D7 ),开始时点亮D0,延迟一段时间后点亮D1,依次点亮D2-D3-D4-D5 -D6-D7,然后#include#include#define uint unsigned int#define uchar unsigned charuint i;uchar temp;uint a8=0xfe,0xfd,0xbf,0 xf 7,0 eff,0xff,0x7f;void delayms(uint ms )举止while (毫秒-)uint j;for(j=0; j120; j;以下以下void main ()举止while(

3、1)举止P0=0xfe;PS (PS!=0x7f )举止/P1=temp;/delayms(500 )p0=_ crol _ (p 0,1,1 )delayms(250 )以下temp=0x7f;PS (PS!=0xfe )举止P0=temp;delayms(500 )temp=_cror_(temp,1 )以下以下以下任务3 :闭幕式和闭幕式广告灯的设计利用89c51单片机的P0端口,实现了8个LED D0D7的闭幕式和闭幕式广告灯设计。拉幕式: D0D7开始全灭,经过一段时间后,首先D3和D4亮,接着D2和D5亮,然后D1和D6亮,最后D0和D7亮。闭幕式: D0D7开始全灯,经过一段时间

4、延迟,D0和D7首先消失,接着D1和D6消失,进而D2和D5消失,最后D3和D4消失。#include#define uint unsigned int#define uchar unsigned charucharcodetable =0xe 7,0x C3,0x 81,0x 00 ;void delay(uint x )举止uint i,j;for(i=x; i0; i- )for(j=120; j0; j- );以下void main ()举止uint i;while(1)举止P1=0xff;delay(500 )for(i=0; i4; PS )举止P1=tablei;delay(50

5、0 )以下for(i=3; i0; i- )举止P1=tablei-1;delay(500 )以下以下以下任务4 :复杂的广告灯的设计利用89c51单片机端口,实现了8个LED(D0D7 )的复杂广告灯的控制,要求正向流水-反向流水-隔离灯有规则地闪烁3次-高度4次,低4次-2次-间隔3次,反复循环。#include#define uint unsigned int#includevoid delayms(uint ms )举止uint i;while (毫秒-)举止for(i=0; I10; PS )以下以下void main ()举止uint i,j,xx2=0xaa,0xff,YY 2=

6、0xf 0,0x0f ,ZZ 2=0xb 6,0x ff ;无符号char aa;while(1)举止aa=0xfe;for(i=0; i7; PS )举止P0=aa;PS=_ crol _ (PS,1 )delayms(500 )以下for(i=0; i8; PS )举止P0=aa;PS=_ cror _ (PS,1 )delayms(500 )以下for(i=0; i3; PS )for(j=0; j2; j )举止P0=xxj;delayms(500 )以下for(i=0; i2; PS )for(j=0; j2; j )举止P0=yyj;delayms(500 )以下for(i=0;

7、i3; PS )for(j=0; j2; j )举止P0=zzj;delayms(500 )以下以下以下任务5 :单个LED数字码管显示设计将89c51的P0端口用作输出端口,外接LED数字管,编写程序,使数字管从09的正1开始计数。#include#define uint unsigned int#define uchar unsigned charuchar table 10 =0xc 0,0 x f 9,0 x a a 4,0 XB 0,0x99、0x92、0x82和0xf80x80、0x90;uint key=0;void int_int ()举止EA=1;IT0=1;EX0=1;以下

8、void count_num() interrupt 0举止PS (PS=9) PS=0;else key;以下void main ()举止int_int ();while(1)举止P0=tablekey;以下以下任务6 :多个LED代码管显示设计将单片机P0和P2端口用作输出端口,外接8位LED数字代码管,制作程序,使数字代码管显示“872AF635”。#include#include#define uint unsigned int#define uchar unsigned char延迟(毫秒)举止PS (PS- ) int i;for(i=0; I10; PS )以下以下main ()

9、举止uchara 16 =0xc 0,0 x f 9,0 x a 4,0 XB 0,0 x 99,0 x 92,0 x 82,0 x f 8,0 x 80,0 x 90,0 x 88,0 x 83,0 xc 6,0 x a 1,0 x 86,0 x8e ;ucharb8=0x08、0x0f、0x0f、0x0f、0x0f、0x0f、0x0f、0x0f、j;PS;while(1) j=0x01;for(i=0; i8; PS )举止P2=j;P0=abi;j=_crol_(j,1 )延迟(3)以下以下以下任务7 :查询键设计从18开始对8个键进行编号,按下任一键后,显示与LED代码相应的键值。#i

10、nclude#define uint unsigned int#define uchar unsigned charmain ()举止uchara 16 =0xc 0,0x F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,0x 80,0x 90,0x 88,0x 83,0xc 6,0x a1,0x 86,0x8e ;P0=0xff;PS (PS!=0xff )交换机(P0 )case0xfe:P2=a1; break;case0xfd:P2=a2; break;case0xffff:P2=a3; break;case0xf7:P2=a4; break;case0x

11、ef:P2=a5; break;case0xdf:P2=a6; break;case0xbf:P2=a7; break;case0x7f:P2=a8;以下以下以下任务8:led数字代码管显示矩阵键盘键的设计设计了4*4矩阵键盘,P1.0P1.3为行线,P1.4P1.7为列线。 请求:如果未按下键,LED代码管将显示“-”,如果按下键,代码管将显示相应的键值。#include#define uchar unsigned char#define uint unsigned intuchar table17=0xbf,0xc 0,0x f F9,0x D4,0xb 0,0x 99,0x 92,0x

12、F8,0x 80,0x 90,0x 88,0x 83,0xc 6,0x a1,0x 86,0x8e ;uint num=0;void delay(uint x )举止uchar i、j;for(i=x; i0; i- )for(j=120; j0; j- );以下keyscan () uint temp;温度=p2;temp=0x0f;if(temp=0x0e )举止P2=0xf0;温度=p2;temp=0xf0;交换机(临时)举止case0xe0:num=1; break;case0xd0:num=2; break;case0xb0:num=3; break;case0x70:num=4;以

13、下以下if(temp=0x0d )举止P2=0xf0;temp=P2;temp=0xf0;交换机(临时)举止case0xe0:num=5; break;case0xd0:num=6; break;case0xb0:num=7; break;case0x70:num=8;以下以下if(temp=0x0b )举止P2=0xf0;温度=p2;temp=0xf0;交换机(临时)举止case0xe0:num=9; break;case0xd0:num=10; break;case0xb0:num=11; break;case0x70:num=12;以下以下if(temp=0x07 )举止P2=0xf0;

14、温度=p2;temp=0xf0;交换机(临时)举止case0xe0:num=13; break;case0xd0:num=14; break;case0xb0:num=15; break;case0x70:num=16;以下以下返回编号;以下void显示(uint num )if(num=0)P0=0xbf;p0=table;以下main ()举止uint temp;while(1)举止P2=0x0f;温度=p2;暂停!=0x0f )keyscan ();显示(数字)以下以下(2)#include#define uchar unsigned char#define uint unsigned intsbit LED1=P20

温馨提示

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

评论

0/150

提交评论