用51单片机连接max7219芯片做秒计时器,求帮看下程序
-
这是我的程序:#include
#include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { un... 这是我的程序:#include #include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--);}void sendbyte (uchar dat){ uchar i,temp; _nop_(); for (i=0;i<8;i++) { temp=dat&0x80; dat=dat<<1; if(temp) pinDIN=1; else pinDIN=0; pinCLK=0; _nop_(); pinCLK=1; }}void sendword (uchar addr,uchar dat){ pinLOAD=0; _nop_(); sendbyte (addr); _nop_(); sendbyte (dat); _nop_(); pinLOAD=1; delay1000();}void init7219 (void){sendword (0x0c,0x01); sendword (0x0a,0x09);sendword (0x0b,0x03); sendword (0x09,0x00);sendword (0x0f,0x00); }void clear7219(void){ uchar i; for(i=8;i>0;i--) { sendword(i,0x00); }}void main(void){int n=60;int s=0;int g=0;init7219 ();while(1) {clear7219();if(n>0){n=n-1;s=n/10;g=n%10;LEDcode[s];LEDcode[g];}sendword(0x01,LEDcode[1]);sendword(0x02,LEDcode[2]|0x80); sendword(0x03,LEDcode[3]);sendword(0x04,LEDcode[4]);sendword(0x05,LEDcode[5]);sendword(0x06,LEDcode[6]);sendword(0x07,LEDcode[7]);sendword(0x08,LEDcode[8]); }}不知道为什么,数码管上只显示“12.”然后就一直没变化,看下面是由高低电平的变化的,就是数字一直不变,请问是哪里出错? 展开
全部评论(1条)
-
- LUOBOBAICAI123 2017-06-05 00:00:00
- 程序没有格式,太乱,没法看
-
赞(9)
回复(0)
热门问答
- 用51单片机连接max7219芯片做秒计时器,求帮看下程序
- 这是我的程序:#include
#include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { un... 这是我的程序:#include #include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--);}void sendbyte (uchar dat){ uchar i,temp; _nop_(); for (i=0;i<8;i++) { temp=dat&0x80; dat=dat<<1; if(temp) pinDIN=1; else pinDIN=0; pinCLK=0; _nop_(); pinCLK=1; }}void sendword (uchar addr,uchar dat){ pinLOAD=0; _nop_(); sendbyte (addr); _nop_(); sendbyte (dat); _nop_(); pinLOAD=1; delay1000();}void init7219 (void){sendword (0x0c,0x01); sendword (0x0a,0x09);sendword (0x0b,0x03); sendword (0x09,0x00);sendword (0x0f,0x00); }void clear7219(void){ uchar i; for(i=8;i>0;i--) { sendword(i,0x00); }}void main(void){int n=60;int s=0;int g=0;init7219 ();while(1) {clear7219();if(n>0){n=n-1;s=n/10;g=n%10;LEDcode[s];LEDcode[g];}sendword(0x01,LEDcode[1]);sendword(0x02,LEDcode[2]|0x80); sendword(0x03,LEDcode[3]);sendword(0x04,LEDcode[4]);sendword(0x05,LEDcode[5]);sendword(0x06,LEDcode[6]);sendword(0x07,LEDcode[7]);sendword(0x08,LEDcode[8]); }}不知道为什么,数码管上只显示“12.”然后就一直没变化,看下面是由高低电平的变化的,就是数字一直不变,请问是哪里出错? 展开
- 求51单片机语言用动态显示设计0-60秒的计时器程序,原理图如图。
- 求51单片机语言用动态显示设计0-60秒的计时器程序,原理图如图。动态显示管是阴极的,我编的程序是不是哪里进入误区了,能我帮指出来或者求大神编好正确的程序,诚信感谢,赏金不够见谅。 。还有这种原理图位选和段选如何选,好像不同于P2^6和P2^7的位选段... 求51单片机语言用动态显示设计0-60秒的计时器程序,原理图如图。动态显示管是阴极的,我编的程序是不是哪里进入误区了,能我帮指出来或者求大神编好正确的程序,诚信感谢,赏金不够见谅。 。还有这种原理图位选和段选如何选,好像不同于P2^6和P2^7的位选段选是吗? 展开
- 51单片机 芯片是89C52 实现秒表计时器!急急……
- 51单片机 芯片是89C52 实现秒表计时器 一到59秒循环 到59秒可实现风铃器发声 可实现中断 按一下可暂停 再按一下 可继续 以下是程序 求每一项的解释注明 因为我看不懂什么意思 很急 #include
unsigned char x,y;sbit H=P3^6;unsigned char D[10]={0xc...
- 基于51单片机,ADC0804,光敏电阻,湿度传感器,求程序!!!!
- 我用的51单片机,采集光强度和空气湿度,利用了两个ADC0804进行转换(光敏电阻和电阻式湿度传感器),但是没有相应程序,哪位大哥能帮忙弄一个程序啊?如果是可行的程序,我账号里剩下... 我用的51单片机,采集光强度和空气湿度,利用了两个ADC0804进行转换(光敏电阻和电阻式湿度传感器),但是没有相应程序,哪位大哥能帮忙弄一个程序啊?如果是可行的程序,我账号里剩下的分全给你,虽然不多... 展开
- 汇编语言 51单片机 器程序
- 单片机编程实现0---20秒计时器
- 求一个51单片机控制的温度计显示程序
- stc98c51控制2个4位数码管,温度传感器为DS18B20。数码管的a,b,c,d,e,f,g,dp端接在P0口... stc98c51控制2个4位数码管,温度传感器为DS18B20。数码管的a,b,c,d,e,f,g,dp端接在P0口 展开
- 求用51单片机做的温度测量仪的参考文献
- RT
- 求用51单片机与DS18B20测温的C程序。完整的。
- 求写一段单片机程序 关于STC的计时器
- 用单片机的定时器功能 每过1s一个变量a+1 晶振是12M 单片机是12C2052AD 就写这一小段就行了 datasheet看得我头晕。。 去这个地址回答有悬赏 http://zhidao.baidu.com/question/248093397.htm
- 51单片机制作简易数字频率计程序
- 51单片机信号发生器的正弦波程序
- voidvout_sin(void)//输出正弦波{floatx;//用于正弦波发生器if(Voutsin())//“正弦波按键”被有效按下do{for(x=-3.1415;x<3.1415;x+=0.1)//正弦波发生器{vout=255*(1+sin(x))/2;//输出... void vout_sin(void) //输出正弦波
{ float x; //用于正弦波发生器
if(Voutsin()) //“正弦波按键”被有效按下
do{
for(x=-3.1415;x<3.1415;x+=0.1) //正弦波发生器
{ vout=255*(1+sin(x))/2; //输出值vout必须大于0
P1=vout;
delay_out();
} } while(P3_0==1&P3_1==1&P3_2==1&P3_4==1) } 此段程序中do{}内的内容不是很理解,希望好心网友帮忙解释一下,财富值不是很多,谢谢了。 展开
- 求51单片机设计数字频率计,附带Proteus仿真和程序
- 单片机60秒计时器的程序,用AT89C51实现
- 基于51单片机用LCD1602液晶显示的频率计程序
- 求程序——————
- 51单片机计时器可否分享给我🌝
- C51单片机计时器50ms程序编写
- 求一段汇编程序,利用51单片机控制超声波传感器测距的程序。
- 求个51单片机超声波测距(距离+报警)的c程序
- 求个51单片机超声波测距(距离+报警)的c程序
- 温度控制51单片机,DS1820温度传感器的程序
- 只要一小段,温度加热时候的程序,我要用Keil和proteus编程仿真的,加热到40,60,80的时候分别需要恒定温度一段时间后,在继续加热....... 只要一小段,温度加热时候的程序,我要用Keil 和 proteus 编程仿真的,加热到40,60,80 的时候分别需要恒定温度一段时间后,在继续加热.... 展开
5月突出贡献榜
推荐主页
最新话题
-
- #DeepSeek如何看待仪器#
- 干体炉技术发展与应用研究
- 从-70℃到150℃:一台试验箱如何终结智能...从-70℃到150℃:一台试验箱如何终结智能调光膜失效风险?解决方案:SMC-210PF-FPC温湿度折弯试验箱的五大核心价值1. 多维度环境模拟,覆盖全生命周期测试需求超宽温域:支持-70℃至+150℃的极限温度模拟(可选配),复现材料在极寒、高温、冷热冲击下的性能表现;控湿:湿度范围20%~98%RH(精度±3%RH),模拟热带雨林、沙漠干燥等复杂工况,暴露材料吸湿膨胀、分层缺陷;动态折弯:0°~180°连续可调折弯角度,支持R1~R20弯曲半径设定,模拟实际装配中的微小应力,提前预警裂纹、断裂风险。
参与评论
登录后参与评论