久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 74hc595+數(shù)碼管 單片機源程序Proteus仿真(剩用端口) [打印本頁]

作者: 七禾頁    時間: 2020-8-25 15:29
標(biāo)題: 74hc595+數(shù)碼管 單片機源程序Proteus仿真(剩用端口)
代碼+仿真


單片機源程序如下:
  1. #include <REGX51.H>
  2. sbit SH_CP = P0^0;// 移位寄存器的時鐘控制
  3. sbit DS = P0^1; // 數(shù)據(jù)傳輸線
  4. sbit ST_CP = P0^2;//數(shù)據(jù)輸出寄存器的時鐘控制
  5. unsigned int a[]={
  6.         0x3F,/*0*/
  7.         0x06,/*1*/
  8.         0x5B,/*2*/
  9.         0x4F,/*3*/
  10.         0x66,/*4*/
  11.         0x6D,/*5*/
  12.         0x7D,/*6*/
  13.         0x07,/*7*/
  14.         0x7F,/*8*/
  15.         0x6F,/*9*/

  16. };
  17. //延時函數(shù)
  18. void delayms(unsigned int m)
  19. {
  20.         unsigned int i, j;
  21.         for(i=0; i<m; i++)
  22.                 for(j=0; j<100; j++);
  23. }


  24. /****************************************************************
  25. 第一步:取出最高位   temp = value & 0x80;  //取最高位的值
  26. 第二步:判斷最高位是0還是1 if(temp)
  27. 第三步:向595發(fā)送最高位的值          DS = 1或0; 向595的移位寄存器發(fā)送一個1或0
  28. 第四步:向移位寄存器中發(fā)送數(shù)據(jù),將數(shù)據(jù)產(chǎn)生移位
  29.         只需給移位寄存器上升沿工作時鐘 SH_CP = 0; SH_CP = 1;
  30. 第五步:將要傳輸?shù)臄?shù)據(jù)進行移位,目的是將最高位去掉,
  31.         將次高位變?yōu)樽罡呶?value = value <<1;/
  32. 第六步:一個字節(jié)有8位數(shù)據(jù),每次只能發(fā)送一位數(shù)據(jù),
  33.         所以我們發(fā)送8次,用for循環(huán)
  34. 第七步:八個數(shù)據(jù)全部發(fā)送到移位寄存器之后,就要將移位寄存器的數(shù)據(jù)發(fā)送到數(shù)據(jù)輸出寄存器中,
  35.                 只需要給數(shù)據(jù)輸出寄存器一個上升沿工作時鐘即可ST_CP = 0; ST_CP = 1;
  36. ***************************************************************/
  37. void hc595(unsigned int value)
  38. {
  39.         bit temp;//位變量,temp的值為0或者1
  40.         unsigned char i;
  41.         for(i=0; i<8; i++)
  42.         {
  43.                 temp = value &0x80; // 取value的最高位  0000 0001  &1000 0000
  44.                 if(temp == 1) DS = 1;//如果最高位為1,那么就向595發(fā)送一個1
  45.                 else  DS =0; //否則就向595發(fā)送一個0
  46.                 SH_CP = 0;
  47.                 SH_CP = 1;//移位寄存器產(chǎn)生一個上升沿,將數(shù)據(jù)發(fā)送到移位寄存器中,使移位寄存器的數(shù)據(jù)產(chǎn)生移位
  48.                 value = value <<1;//將最高位去掉,將此高位變成最高位,為下一次發(fā)送最高位做準備               
  49.         }
  50.         ST_CP = 0;
  51.         ST_CP = 1;//產(chǎn)生一個上升沿,將移位寄存器的數(shù)據(jù)發(fā)送給數(shù)據(jù)輸出寄存器
  52. }
  53. /*************************
  54. 顯示函數(shù)
  55. 動態(tài)掃描:先寫位碼,再寫段碼,最后補一個延時
  56. */         
  57. void display(void)
  58. {
  59.         unsigned char n,x;
  60.         for(n=0; n<100; n++)
  61.         {
  62.                 for(x=0; x<50; x++)// 當(dāng)前數(shù)字刷新的次數(shù),起到延時的作用 每一消耗的時間20ms x  50 =1s
  63.                 {
  64.                  P3 = 0x01;//0000 0001   個位工作 位碼
  65.                   hc595(a[n%10]);//顯示0
  66.                   delayms(10);

  67.                   P3 = 0x02;//0000 0010  十位工作,位碼
  68.                   hc595(a[n/10]);//顯示1
  69.                   delayms(10);
  70.                 }        
  71.         }
  72.    
  73. }

  74. void  main(void)
  75. {
  76.         while(1)
  77.         {
  78.                 display();        
  79.         }
  80. }
復(fù)制代碼

下載: 595-雙數(shù)碼--0~99.rar (41 KB, 下載次數(shù): 62)

作者: 川人在柳    時間: 2020-9-5 13:55
void hc595(unsigned int value)

這個函數(shù)給了我另外一種發(fā)送數(shù)據(jù)給595的思路,謝謝!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一级做a爰片性色毛片视频停止 | 成人av看片| 视频一区二区在线观看 | 国产精品成人av | 久久成人一区 | 午夜视频免费在线观看 | 日韩精品一区二区三区中文字幕 | 亚洲精品视频一区 | 日韩av一区二区在线观看 | 亚洲看片网站 | 成人一区二区三区在线观看 | 中文字幕成人av | 国产精品国产三级国产aⅴ中文 | 日韩字幕一区 | 中文一区 | 黄色电影在线免费观看 | 欧美日韩在线免费观看 | 精品亚洲二区 | 成人片网址 | 欧美中文字幕一区二区三区亚洲 | 成人三级av | 日本一区二区高清不卡 | 久久精品日产第一区二区三区 | 久久久久国产精品 | 激情自拍偷拍 | 亚洲每日更新 | 在线国产一区二区 | 国精产品一区一区三区免费完 | 久久久资源 | 中文字幕日韩欧美一区二区三区 | 日韩成人免费视频 | 91福利在线观看 | 成人在线免费观看视频 | 国产福利91精品一区二区三区 | 国产日韩精品在线 | 亚洲第一天堂无码专区 | 亚洲精品一二区 | 免费精品视频一区 | 激情一区二区三区 | 午夜寂寞福利视频 | 国产精品一区二区三区在线播放 |