defineulongunsignedlonginclude//包括一个,准内核的头文件sbitP,=P,,//头文件中没有定义的IO就要自己来定义了sbitP,=P,,sbitP,=P,,sbitP,=P,,bitldelay=,//长定时溢出标记,预置是。includevoidtime(unsignedintucMs);//函数声明voidmain(void){unsignedcharucTimes;defineDELAY_TIME,while({P,,ff;P,,ff;for(ucTimes=,ucTimes<,ucTimes ){P,=P,-(,<ucTimes);time(DELAY_TIME);}for(ucTimes=,ucTimes<。
我们要用到,,独立键盘控制的,可是我是新手不懂能给我一个程序不??呵呵,下面就是程序,你试试看就知道了。;—你的程序,有三种流水灯的模式,就是按键功能,检测不出来。电路图,不清楚,看个大概。现在是:K,K,别按下,各显示一种模式,两个键盘都不按,显示第三种模式。贴个延时函数给你参考吧!延时一次为,S,系统用的是,晶振,你用的是,,调用时把参数设置为,行了,你,灯我不知道你是用,IO口驱动呢还是,IO口驱动,驱动跑马灯可以用数据右以左移的方法,也可以用查表法!参考参考吧!voiddelay(uint,MS){uint,i,j;for(i=。
我给你一个程序,单片机为STC,晶振为,Hz。跑马灯采用查表法,定时用查询式定时器,时间为,s;I/O口用,引脚,P,P,P,用,,P,P,程序用C语言。为了取得一个较好的观赏效果,对你的要求作了少许修改,你可以用PROTEUS仿真观看效果。程序已仿真调试通过。片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)voiddelay(inttimes){//延时函数,times控制延时时间inti,j;for(i=,i<times;i )for(j=,j<,j );}intmain(void){unsignedchardata。
给你参考,可按你的要求自行更改。;外部中断,键按下,P,水灯(跑马灯),P,鸯戏水灯(交叉点亮)ORG,AJMPMAINORG,AJMPEX,NTORG,MAIN:MOVSP,#SETBEASETBEX,SETBIT,MOVR,#JNBF,MOVA,#EHLED:MOVP,AMOVP。八个灯连至P,程序如下:MOVA,START:MOVP,ARLACALLDELAYJMPSTARTDELAY:RETEND其中DELAY是一个延时,子程序(不要改变A的值),具体要根据单片机的时钟计算延时时间,可以采用循环嵌套的方式,很容易就可以实现。
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容