/********函数声明********/voidwrite7279(unsignedchar,unsignedchar);//写入到HD72"> /********函数声明********/voidwrite7279(unsignedchar,unsignedchar);//写入到HD72" />
欢迎来到天天文库
浏览记录
ID:11186972
大小:39.00 KB
页数:5页
时间:2018-07-10
《定时器c 语言程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、定时器c语言程序#include"c8051f020.h"#include/********函数声明********/voidwrite7279(unsignedchar,unsignedchar);//写入到HD7279voidSend7279Byte(unsignedcharch);//发送一个命令字voidDelay1us(unsignedcharus);//延时1μvoidDelay1ms(unsignedcharT);//延时1msvoidTimer0_Init(void);voidSYSCL
2、K_Init(void);//****变量及I/O口定义*********unsignedchardatashi_at_0x30;//时unsignedchardatafen_at_0x31;//分unsignedchardatamiao_at_0x32;//秒unsignedchardatazdjs_at_0x33;//中断计数unsignedcharbdataBZW_at_0x20;sbitBZW0=BZW^0;sbitCLK=P1^6;//HD7279sbitDAT=P1^7;//HD7279#defineNOSELE
3、CT7279P5
4、=0x80//SPICS4(P57)=1#defineSELECT7279P5&=~(0x80)//SPICS4(P57)=0//***********延时N*1μ*****************************//voidDelay1us(unsignedcharus)//延时1μ{while(us){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();--us;}}//*********发送一个命令字****************//voidSen
5、d7279Byte(unsignedcharch)//发送一个命令字{chari;SELECT7279;//置CS低电平Delay1us(100);//延时50μfor(i=0;i<0x8;i++){if(ch&0x80)//输出7位到HD7279A的DATA端{DAT=1;}else{DAT=0;}CLK=1;//置CLK高电平ch=ch<<1;//待发数据左移Delay1us(20);//延时8μCLK=0;//置CLK低电平Delay1us(20);//延时50μ}DAT=0;//发送完毕,DATA端置低,返回}/**
6、***********显示时钟************/voiddisplaytime()//显示时钟{Send7279Byte(0x85);Send7279Byte(shi/10);//显示时的十位Send7279Byte(0x84);Send7279Byte(shi%10);//显示时的个位Send7279Byte(0x83);Send7279Byte(fen/10);//显示分的十位Send7279Byte(0x82);Send7279Byte(fen%10);//显示分的个位Send7279Byte(0x81);Se
7、nd7279Byte(miao/10);//显示秒的十位Send7279Byte(0x80);Send7279Byte(miao%10);//显示秒的个位}//*********单片机时钟初始化***********//voidSYSCLK_Init(void){inti;//delaycounterOSCXCN=0x65;//startexternaloscillatorwith//18.432MHzcrystalfor(i=0;i<256;i++);//Waitforosc.tostartupwhile(!(OSCXCN
8、&0x80));//Waitforcrystalosc.tosettleOSCICN=0x88;//selectexternaloscillatorasSYSCLK//sourceandenablemissingclock//detector}//***************//初始化IO口*************************//voidPORT_Init(void){XBR0=0x07;//EnableSMBus,SPI0,andUART0XBR1=0x02;//交叉开关允许XBR2=0x40;//Enab
9、lecrossbarandweakpull-ups}//***************定时器0初始化**************//voidTimer0_Init(void){//CKCON
10、=0x8;TMOD=0x01;//定时器0工作方式1//TR0=0;TH0=0x70;//setT
此文档下载收益归作者所有