亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1604|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

有大佬能幫我看看為什么單片機(jī)數(shù)碼管沒有反應(yīng)嗎?要如何修改?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar bufr[]="------\r\n";//存放接收數(shù)據(jù)
  6. uchar *prx=&bufr;//接收指針
  7. bit str; //接收完畢標(biāo)志位
  8. //段碼
  9. uchar code leddata[]={
  10. 0xC0, //"0"
  11. 0xF9, //"1"
  12. 0xA4, //"2"
  13. 0xB0, //"3"
  14. 0x99, //"4"
  15. 0x92, //"5"
  16. 0x82, //"6"
  17. 0xF8, //"7"
  18. 0x80, //"8"
  19. 0x90, //"9"
  20. 0x88, //"A"
  21. 0x83, //"B"
  22. 0xC6, //"C"
  23. 0xA1, //"D"
  24. 0x86, //"E"
  25. 0x8E, //"F"
  26. 0x89, //"H"
  27. 0xC7, //"L"
  28. 0xC8, //"n"
  29. 0xC1, //"u"
  30. 0x8C, //"P"
  31. 0xA3, //"o"
  32. 0xBF, //"-"
  33. 0xFF, //熄滅
  34. 0xFF //自定義
  35. };
  36. //延時(shí)函數(shù)
  37. void delay(uint i)
  38. {
  39. uint m,n;
  40. for(m=i;m>0;m--)
  41. for(n=90;n>0;n--);
  42. }
  43. //數(shù)碼管顯示函數(shù)
  44. void led_display()
  45. {
  46. uchar i;
  47. P2=0x01;
  48. for(i=0;i<6;i++)
  49. {
  50. P0=0xff;
  51. P2=_cror_(P2,1);
  52. P0=leddata[bufr[i]-'0'];
  53. delay(2);
  54. }
  55. }
  56. //字符發(fā)送函數(shù)
  57. void putchar(uchar data1)
  58. {
  59. SBUF=data1; //將待發(fā)送的字符送入發(fā)送緩沖器
  60. while(!TI); //等待發(fā)送完成
  61. TI=0; //發(fā)送中斷標(biāo)志請(qǐng)0
  62. }
  63. //字符串發(fā)送函數(shù)
  64. void putstring(uchar *dat)
  65. {
  66. while(*dat!='\0')    //判斷字符串是否發(fā)送完畢
  67. {           
  68. putchar(*dat);        //發(fā)送單個(gè)字符
  69. dat++;                //字符地址加1,指向先下一個(gè)字符
  70. delay(5);
  71. }
  72. }
  73. //串口初始化函數(shù)
  74. void serial_init()
  75. {
  76. TMOD=0x20;  //定時(shí)器工作方式2
  77. SCON=0x50;  //串行口工作方式2
  78. PCON=0x80; //SMOD =1,波特率加倍
  79. TH1=0xfa;
  80. TL1=0xfa;    //波特率設(shè)置9600
  81. ES=1;
  82. EA=1;//開總中斷
  83. }
  84. void main()
  85. {
  86. serial_init();
  87. TR1=1;
  88. putstring("Receiving from 8051...\r\n");      
  89. putstring("----------------------\r\n");
  90. delay(50);
  91. while(!str);//等待接收完畢
  92. while(1)
  93. {   
  94. P0=0xff;
  95. while(!str);
  96. led_display();
  97. }
  98. }
  99. void serial() interrupt 4
  100. {
  101. if(RI!=1) return;//判斷是否接收
  102. {   
  103. str=0;
  104. ES=0;
  105. *prx=SBUF; //接收存放數(shù)據(jù)
  106. putchar(*prx);
  107. RI=0;
  108. prx++;    //指針自加
  109. if(*prx=='\0') //是否接收完成
  110. {
  111. prx=&bufr;//指針初始化
  112. str=1; //標(biāo)志位置1
  113. putstring("\r\n");
  114. putstring("translate over!\r\n");
  115. ES=1;
  116. return;
  117. }
  118. ES=1;
  119. return;    //退出中斷
  120. }
  121. }
復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

地板
ID:636538 發(fā)表于 2020-6-19 16:26 | 只看該作者
P0=leddata[bufr[i]-'0'];
uchar bufr[]="------\r\n";//存放接收數(shù)據(jù)這兩句話讓我看著怎么像是字符變量,不是實(shí)際的數(shù);
你直接輸入
P0=leddata[i];
看看是不是顯示的012345,如果是,說明P0=leddata[bufr[i]-'0'];
uchar bufr[]="---需要改,就是這個(gè)有問題


回復(fù)

使用道具 舉報(bào)

板凳
ID:783500 發(fā)表于 2020-6-19 12:30 來自觸屏版 | 只看該作者
xianfajushi 發(fā)表于 2020-6-19 07:41
去掉三極管試看。

去掉了,但是數(shù)碼管顯示的不是我在pc端輸入的數(shù)據(jù),可以幫我看看程序嗎?
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:332444 發(fā)表于 2020-6-19 07:41 | 只看該作者
去掉三極管試看。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表