单片机C语言程序设计实训99例(共77页)

上传人:博****1 文档编号:501866076 上传时间:2023-12-28 格式:DOC 页数:77 大小:1.81MB
返回 下载 相关 举报
单片机C语言程序设计实训99例(共77页)_第1页
第1页 / 共77页
单片机C语言程序设计实训99例(共77页)_第2页
第2页 / 共77页
单片机C语言程序设计实训99例(共77页)_第3页
第3页 / 共77页
单片机C语言程序设计实训99例(共77页)_第4页
第4页 / 共77页
单片机C语言程序设计实训99例(共77页)_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《单片机C语言程序设计实训99例(共77页)》由会员分享,可在线阅读,更多相关《单片机C语言程序设计实训99例(共77页)(77页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上单片机C语言程序设计实训99例案例第 01 篇 基础程序设计09 555定时器实验/*名称:555定时器实验说明:调节外部电阻RV1可改变延时值,从而影响灯点亮延时和发声延时。*/#include#define uchar unsigned char#define uint unsigned intsbit Signal=P10;sbit BEEP=P37;/延时void DelayMS(uint ms)uchar i;while(ms-) for(i=0;i120;i+);/主程序void main()while(1)if(Signal)BEEP=BEEP;Dela

2、yMS(3);10 BCD译码数码管显示数字/*名称:BCD译码数码管显示数字说明:BCD码经4511译码后输出数码管段码,实现数码管显示(4511驱动数码管)。*/#include#define uchar unsigned char#define uint unsigned int/数码管位码uchar code DSY_Index=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/待显示数字(10为不显示)uchar code BCD_CODE=2,0,1,0,10,3,10,5;/延时void DelayMS(uint ms)uchar i;while(

3、ms-) for(i=0;i120;i+);/主程序void main()uchar k;while(1)for(k=0;k8;k+)P2=DSY_Indexk;P1=BCD_CODEk;DelayMS(1);11 MAX7221控制数码管动态显示/*名称:MAX7221控制数码管动态显示说明:本例用MAX7221控制8只数码管动态显示,这样大大减少了单片机引脚和机器时间的占用。*/#include#include#define uchar unsigned char#define uint unsigned intsbit DIN=P20;sbit CSB=P21;sbit CLK=P22;

4、uchar Disp_Buffer=2,0,1,5,10,5,10,9;/显示缓冲,10为“-”/延时void DelayMS(uint ms)uchar i;while(ms-) for(i=0;i120;i+);/写数据void Write(uchar Addr,uchar Dat)uchar i;CSB=0;for(i=0;i8;i+)CLK=0;Addr=1;DIN=CY;CLK=1;_nop_();_nop_();CLK=0;for(i=0;i8;i+)CLK=0;Dat=1;DIN=CY;CLK=1;_nop_();_nop_();CLK=0;CSB=1;/MAX7221初始化vo

5、id Initialise()Write(0x09,0xff);/编码模式地址0x09 0x000xff,为1的则位选通Write(0x0a,0x07);/亮度地址0x0a 0x000x0f,0x0f最亮Write(0x0b,0x07);/扫描数码管个数地址0x0b,最多扫描8只数码管Write(0x0c,0x01);/工作模式地址0x0c 0x00:关闭;0x01:正常/主程序void main()uchar i;Initialise();/初始化DelayMS(1);for(i=0;i8;i+)/显示8个数码管Write(i+1,Disp_Bufferi);while(1);12 LCD1

6、602字符液晶滚动演示程序/main.c/*名称:LCD1602字符液晶滚动演示程序说明:K1K3按钮分别实现液晶垂直或水平滚动显示及暂停与继续控制。*/#include#include#define uchar unsigned char #define uint unsigned intvoid Initialize_LCD();void DelayMS(uint ms);void ShowString(uchar,uchar,uchar *);sbit K1=P30;sbit K2=P31;sbit K3=P32;uchar code Prompt=Press K1 - K3 To St

7、art Demo Prog;/待滚动显示的信息段落,每行不超过80个字符,共6行uchar const Line_Count=6;uchar code Msg80=Many CAD users dismiss schematic capture as a necessary evil in the ,process of creating PCB layout but we have always disputed this point ,of view. With PCB layout now offering automation of both component ,can often

8、be the most time consuming element of the exercise.,And if you use circuit simulation to develop your ideas, ,you are going to spend even more time working on the schematic.;/显示缓冲(2行)uchar Disp_Buffer32;/垂直滚动显示void V_Scroll_Display()uchar i,j,k=0;uchar *p=Msg0;uchar *q=MsgLine_Count+strlen(MsgLine_C

9、ount);/以下仅使用显示缓冲的前16字节空间while(pq)for(i=0;i16&pLine_Count) break;p=Msgk;/p指向下一串的首地址Disp_Bufferi=*p+;/不足16个字符时空格补充for(j=i;j16;j+) Disp_Bufferj= ;/垂直滚动显示while(F0) DelayMS(5);ShowString(0,0, );DelayMS(150);while(F0) DelayMS(5);ShowString(0,1,Disp_Buffer);DelayMS(150);while(F0) DelayMS(5);ShowString(0,0,

10、Disp_Buffer);ShowString(0,1, );DelayMS(150);/最后清屏ShowString(0,0, );ShowString(0,1, );/水平滚动显示void H_Scroll_Display()uchar i,j,k=0,L=0;uchar *p=Msg0;uchar *q=MsgLine_Count+strlen(MsgLine_Count);/将32个字符的显示缓冲前16个字符设为空格for(i=0;i16;i+) Disp_Bufferi= ;while(pq)/忽略缓冲中首尾可能出现的空格if(i=16|i=31)&*p= ) p+;for(i=16

11、;i32&pLine_Count) break;p=Msgk;/p指向下一串的首地址Disp_Bufferi=*p+;/不足32个字符时空格补充for(j=i;j32;j+) Disp_Bufferj= ;/水平滚动显示for(i=0;i=16;i+)while(F0) DelayMS(5);ShowString(0,L,Disp_Buffer+i);while(F0) DelayMS(5);DelayMS(20);L=(L=0)?1:0;/行号在0,1间交替DelayMS(300);/如果显示结束时停留在第0行,则清除第1行的内容if(L=1) ShowString(0,1, );/外部中断

12、0,由K3控制暂停与继续显示void EX_INT0() interrupt 0F0=!F0;/暂停与继续显示控制标志位/主程序void main()uint Count=0;IE=0x81;/允许外部中断0IT0=1;/下降沿触发F0=0;/暂停与继续显示控制标志位Initialize_LCD();ShowString(0,0,Prompt);ShowString(0,1,Prompt+16);while(1)if(K1=0)V_Scroll_Display();DelayMS(300);elseif(K2=0)H_Scroll_Display();DelayMS(300);/LCD1602.c/*

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

当前位置:首页 > 办公文档 > 教学/培训

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