单片机程序源代码

上传人:壹****1 文档编号:503690039 上传时间:2022-12-11 格式:DOC 页数:42 大小:99KB
返回 下载 相关 举报
单片机程序源代码_第1页
第1页 / 共42页
单片机程序源代码_第2页
第2页 / 共42页
单片机程序源代码_第3页
第3页 / 共42页
单片机程序源代码_第4页
第4页 / 共42页
单片机程序源代码_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《单片机程序源代码》由会员分享,可在线阅读,更多相关《单片机程序源代码(42页珍藏版)》请在金锄头文库上搜索。

1、.第二章任务一:闪烁广告灯的设计利用89c51单片机的端口控制两个LEDD0和D1,编写程序,实现两个LED互闪。 *include *define uint unsigned int *define uchar unsigned char sbit LED1=P00; sbit LED2=P01; void delayms(uint ms) uint i;while(ms-)for(i=0;iD3-D4-D5 -D6-D7 ,然后再点亮D7-D6-D5-D4 -D3-D2-D1-D0,重复循环。*include*include *define uint unsigned int*define

2、 uchar unsigned charuint i;uchar temp;uint a8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;void delayms(uint ms) while(ms-) uint j; for(j=0;j120;j+); void main() while(1) P0=0xfe; while(P0!=0x7f) /P1=temp; /delayms(500); P0=_crol_(P0,1); delayms(250); temp=0x7f; while(P0!=0xfe) P0=temp; delayms(500); tem

3、p=_cror_(temp,1); 任务三:拉幕式与闭幕式广告灯的设计利用89c51单片机的P0端口实现8个LED D0D7的拉幕式与闭幕式广告灯设计。拉幕式: 开场D0D7全灭,延时片刻后首先D3和D4亮,其次是 D2和D5亮,再是D1和D6亮,最后是D0和D7亮。闭幕式:开场D0D7全亮,延时片刻后首先D0和D7灭,其次是 D1和D6灭,再是D2和D5灭,最后是D3和D4灭。*include*define uint unsigned int*define uchar unsigned charuchar code table=0xe7,0xc3,0x81,0x00;void delay(u

4、int 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;i0;i-)P1=tablei-1;delay(500);任务四:复杂广告灯的设计利用89c51单片机的端口实现8个LEDD0D7复杂广告灯的控制,要求显示规律为:正向流水-反向流水-隔灯闪烁3次-高四盏、低四盏闪烁2次-隔两盏闪烁3次,再重复循环。 *include *define uint unsigned int *include void delayms(uint ms) uint i;wh

5、ile(ms-) for(i=0;i110;i+); void main() uint i,j,*2=0xaa,0xff,yy2=0xf0,0x0f,zz2=0xb6,0xff;unsigned char aa; while(1) aa=0xfe; for(i=0;i7;i+) P0=aa; aa=_crol_(aa,1); delayms(500); for(i=0;i8;i+) P0=aa; aa=_cror_(aa,1); delayms(500); for(i=0;i3;i+) for(j=0;j2;j+) P0=*j; delayms(500); for(i=0;i2;i+) for

6、(j=0;j2;j+) P0=yyj ; delayms(500); for(i=0;i3;i+) for(j=0;j2;j+) P0=zzj ; delayms(500); 任务五:单个LED数码管显示设计使用89c51的P0口作为输出口,外接LED数码管,编写程序,使数码管循环显示从09的加1计数。*include *define uint unsigned int *define uchar unsigned char uchar table10= 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90;uint key=0;void int_

7、int()EA=1;IT0=1;EX0=1;void count_num() interrupt 0if(key=9)key=0;else key+;void main()int_int();while(1)P0=tablekey;任务六:多个LED数码管显示设计使用单片机P0和P2口作为输出口,外接一个8位LED数码管,编写程序,使数码管显示“872AF635。*include*include*define uint unsigned int*define uchar unsigned chardelay(ms) while(ms-) int i; for(i=0;i110;i+); mai

8、n() uchar a16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uchar b8=0x08,0x07,0x02,0x0a,0x0f,0x06,0x03,0x05,j;uint i; while(1) j=0x01; for(i=0;i8;i+) P2=j; P0=abi;j=_crol_(j,1);delay(3); 任务七:查询式按键设计将8个按键从18进展编号,如果其中一个键被按下,那么在LED数码管上显示相应的键值。*include*define uint unsi

9、gned int*define uchar unsigned charmain() uchar a16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;P0=0xff;while(P0!=0xff) switch(P0)case 0xfe:P2=a1; break;case 0xfd:P2=a2; break;case 0xfb:P2=a3; break;case 0xf7:P2=a4; break;case 0xef:P2=a5; break;case 0xdf:P2=a6; br

10、eak;case 0xbf:P2=a7; break;case 0x7f:P2=a8; 任务八:LED数码管显示矩阵键盘按键的设计设计一个4*4的矩阵键盘,以P1.0P1.3作为行线,以P1.4P1.7作为列线。要求:未按下按键时,LED数码管显示“-,按下按键时,在数码管上显示相应的键值。*include*define uchar unsigned char*define uint unsigned intuchar table17=0xbf,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,

11、0x8e;uint num=0;void delay(uint x)uchar i,j;for(i=x;i0;i-)for(j=120;j0;j-);keyscan() uint temp; temp=P2; temp&=0x0f; if(temp=0x0e) P2=0xf0; temp=P2; temp&=0xf0; switch(temp) case 0xe0:num=1;break; case 0xd0:num=2;break; case 0xb0:num=3;break; case 0x70:num=4; if(temp=0x0d) P2=0xf0; temp=P2; temp&=0xf0; switch(temp) case 0xe0:num=5;break; case 0xd0:num=6;break; case 0xb0:num=7;break; case 0x70:num=8; if(temp=0x0b)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号