装 订线————————————————————————— ————————————————————————————————P3=P2=P0=P1=temp;//直接对1/0口赋值,使批输出低电平。 delay();//延时
for(i=1;i<8;i++)//实现广告灯的从右到左移动 {
a=temp<>(8-i); //右移8-i位 P3=P2=P0=P1=a|b;//相与求值 delay(); }
for(i=1;i<8;i++)//实现广告灯的从左到右移动 {
a=temp>>i; //右移i位 b=temp<<(8-i); //左移8-i位 P3=P2=P0=P1=a|b;//相与求值 delay(); } } }
/******************************************************************** 结束
*********************************************************************/ 方式二:
/*P0~P3一个灯循环亮且由慢变快*/
#include
#define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int //宏定义无符号整型
uint tc; /*延时变量tc*/
/******************************************************************** 主函数
*********************************************************************/ void main()
{ void delay(int t); /*定义延时函数delay(int t)或delay(t)但delay()是错的因此函数是有参数的。*/ void light(); /*void函数应无类型int. float等 说明,定义亮灯函数 light(),其是无参数的。*/ while(1) /*大循环*/ {
tc=5000;
装 订线————————————————————————— ———————————————————————————————— while(tc>500) /*tc由5000开始到500循环*/ {
light(); tc=tc-1500; }
while(tc>=100) /*tc由500开始到小于100循环*/ {light(); tc=tc-80;} } } /*継续大循环*/
/******************************************************************** 亮灯子函数
*********************************************************************/ void light() /*亮灯子函数 light()其无直接参数*/ {
uint c; int i; c=0x0fe; /*P0口亮*/ for(i=1;i<=9;i++) {P0=c; delay(tc);
c=c<<1|1; /*等价c=c<<1;c=c+0x01*/ } /*注:若用P0=P0<<1|1;因读P0再右移再加1,当P0某个脚外电路拉底就不对了*/ c=0x7f; for(i=1;i<=9;i++) {P2=c; delay(tc); c=c>>1|0X80; } c=0x7f; for(i=1;i<=9;i++) {P3=c; delay(tc); c=c>>1|0X80; } c=0x7f; for(i=1;i<=9;i++) {P1=c; delay(tc); c=c>>1|0X80; } }
装 订线————————————————————————— ————————————————————————————————
/******************************************************************** 延时函数
*********************************************************************/ void delay(int t) /*延时函数delay(int t)*/ {int i; for(i=1;i<=t;i++) { } }
/******************************************************************** 结束
*********************************************************************/ 4、看门狗应用c语言程序
#include
sfr WDTRST = 0xA6; //看门狗声明 unsigned char i; unsigned char temp; unsigned char a,b; delay()//延时程序 {unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }
main() {
/****************************初始化看门狗*************************************/ WDTRST=0x1E;
WDTRST=0xE1;//初始化看门狗。
/***************************初始化看门狗*************************************/ while(1) {
/*******************************喂狗指令*************************************/ WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
/********************************喂狗指令*************************************/ temp=0xfe;
P3=P2=P0=P1=temp;//直接对1/0口p3赋值,使批p3.0输出低电平。 delay();//延时
for(i=1;i<8;i++)//实现广告灯的从右到左移动 {
a=temp<
装 订线—————————————————————————— ———————————————————————————————b=temp>>(8-i); P3=P2=P0=P1=a|b; delay(); }
for(i=1;i<8;i++)//实现广告灯的从左到右移动 {
a=temp>>i; b=temp<<(8-i); P3=P2=P0=P1=a|b; delay(); } } }
/************************************结束*************************************/
参考文献
【1】张毅刚.刘杰.单片机原理及应用.[M]哈尔滨:哈尔滨工业大学出版社,2008. 【2】郭天祥.新概念51单片机C语言教程.[M]北京:电子工业出版社,2009. 【3】王静霞.单片机应用技术C语言版.[M]北京:电子工业出版社,2009.
【4】 孙涵芳.MCS-51/96系列单片机原理及应用(修订版).北京航空航天大学出版社.1994 【5】李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2005 【6】蒋辉平.基于Proteus的单片机系统设计与仿真实例.机械工业出版社.2009
指导教师评语:
—————————————————————————— 装 订 线———————————————————————————————
实 验 成 绩: 指导(辅导)教师 :
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机课程设计报告 - 图文(4)在线全文阅读。
相关推荐: