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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5461|回復(fù): 1
收起左側(cè)

8位共陽(yáng)數(shù)碼管74HC595芯片AVR單片機(jī)控制 proteus仿真及源碼

[復(fù)制鏈接]
ID:196705 發(fā)表于 2017-5-4 22:26 | 顯示全部樓層 |閱讀模式
剛?cè)腴TAVR單片機(jī)一段時(shí)間,感覺(jué)資料很少,所以進(jìn)度很慢,剛才百度到這里來(lái),現(xiàn)上傳一個(gè)數(shù)碼管的程序來(lái)和大家分享,高手就跳過(guò)吧,初學(xué)可以下載來(lái)做參考

proteus仿真原理圖:
0.png

0.png

單片機(jī)源程序:
  1. /*
  2. * smg8_avr.h
  3. *
  4. * Created: 2017/3/16 1:54:20
  5. *  Author: lyl
  6. */

  7. #ifndef SMG8_AVR_H_
  8. #define SMG8_AVR_H_

  9. #include "lyl_avr.h"
  10. //數(shù)碼管端口定義
  11. #define smgPORT PORTA
  12. #define smgPORT_DDR DDRA

  13. #define DS PA5//串行數(shù)據(jù)輸入端口
  14. #define SHCP PA6//為移位寄存器的時(shí)鐘脈沖輸入口
  15. #define STCP PA7//為存儲(chǔ)寄存器的時(shí)鐘脈沖輸入口
  16. //OE為輸出使能端口,低電平有效,已直接接地

  17. void smgPortInit(void);//數(shù)碼管端口初始化
  18. void smg74HC595_WriteByte(uchar ucData);        //向74HC595發(fā)送一個(gè)數(shù)據(jù)
  19. void smgDisplay(uchar bitCode,uchar segCode,uchar dp);        //在數(shù)碼管的某一位上顯示某一個(gè)字符

  20. //共陽(yáng)數(shù)碼管的編碼,并將數(shù)據(jù)定義在CODE區(qū)
  21. const uchar SMG_SEG_CODE[18]={//共陽(yáng)數(shù)碼管的段碼編碼,并將數(shù)據(jù)定義在CODE區(qū)
  22.                                                         0xc0,/*0*/
  23.                                                         0xF9,/*1*/
  24.                                                         0xA4,/*2*/
  25.                                                         0xB0,/*3*/
  26.                                                         0x99,/*4*/
  27.                                                         0x92,/*5*/
  28.                                                         0x82,/*6*/
  29.                                                         0xF8,/*7*/
  30.                                                         0x80,/*8*/
  31.                                                         0x90,/*9*/
  32.                                                         0x88,/*A=10*/
  33.                                                         0x83,/*b=11*/
  34.                                                         0xC6,/*C=12*/
  35.                                                         0xA1,/*d=13*/
  36.                                                         0x86,/*E=14*/
  37.                                                         0x8E,/*F=15*/
  38.                                                         0xFF,/*不顯示=16*/
  39.                                                         0xBF,/*橫桿“-”=17*/
  40.                                                         };
  41. //數(shù)碼管的位選擇編碼
  42. const uchar SMG_BIT_CODE[10]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

  43. #define SMG8_SetDS()        setbit(smgPORT,DS)
  44. #define SMG8_ClrDS()        clrbit(smgPORT,DS)        //數(shù)據(jù)引腳

  45. #define smgSTCP_SET()        setbit(smgPORT,STCP)
  46. #define smgSTCP_CLR()        clrbit(smgPORT,STCP)        //上升沿更新數(shù)據(jù)

  47. #define smgSHCP_SET()        setbit(smgPORT,SHCP)
  48. #define smgSHCP_CLR()        clrbit(smgPORT,SHCP)        //上升沿移入數(shù)據(jù)

  49. #define smgDS_SET()        setbit(smgPORT,DS)
  50. #define smgDS_CLR()        clrbit(smgPORT,DS)        //數(shù)據(jù)引腳


  51. /************************************************************************/
  52. /* 函數(shù)名稱:smgPortInit
  53.    函數(shù)功能:初始化8位共陽(yáng)數(shù)碼管的數(shù)據(jù)端口
  54.    入口參數(shù):無(wú)
  55.    返回值:無(wú)                                                            */
  56. /************************************************************************/
  57. void smgPortInit(void){
  58.     smgPORT|=((1<<DS)|(1<<SHCP)|(1<<STCP));//初值為高電平
  59.     smgPORT_DDR|=((1<<DS)|(1<<SHCP)|(1<<STCP));//數(shù)碼管端口設(shè)置為輸出模式
  60. }

  61. /************************************************************************/
  62. /*函數(shù)名稱:smg74HC595_WriteByte
  63.   函數(shù)功能:向74HC595發(fā)送一個(gè)字節(jié)數(shù)據(jù)
  64.   入口參數(shù):ucData-要發(fā)送的數(shù)據(jù)
  65.   返回值:無(wú)                                                             */
  66. /************************************************************************/
  67. void smg74HC595_WriteByte(uchar ucData){
  68.     for(uchar i = 0 ;i < 8;i++){//高位在前低位在后
  69.         if((ucData & (0x80>>i)) != 0) smgDS_SET(); else smgDS_CLR();
  70.         
  71.         smgSHCP_CLR();
  72.         smgSHCP_SET();//SHCP引腳的上升沿移入數(shù)據(jù)
  73.                 _delay_us(10);
  74.     }
  75. }

  76. /************************************************************************/
  77. /*函數(shù)名稱:smgDisplay
  78.   函數(shù)功能:在8位共陽(yáng)數(shù)碼管的指定位置上顯示一個(gè)字符
  79.   入口參數(shù):bitCode-位選擇碼,即選擇要在哪位數(shù)碼管上顯示數(shù)據(jù)
  80.                  :segCode-數(shù)據(jù)段碼選擇,即要顯示什么數(shù)據(jù)
  81.                  :dp-當(dāng)dp取值不等于0時(shí),數(shù)碼管將顯示后面的小圓點(diǎn)
  82.   返回值:無(wú)                                                             */
  83. /************************************************************************/
  84. void smgDisplay(uchar bitCode,uchar segCode,uchar dp){//在數(shù)碼管的某一位上顯示某一個(gè)字符
  85.     uchar a;
  86.         if(dp==0) a=0x00; else a=0x80;
  87.         smg74HC595_WriteByte(SMG_BIT_CODE[bitCode]);  //顯示在哪一個(gè)數(shù)碼管上
  88.     smg74HC595_WriteByte(SMG_SEG_CODE[segCode]-a);  //顯示的數(shù)據(jù)
  89.     smgSTCP_CLR();
  90.    
  91. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

下載:
8位共陽(yáng)數(shù)碼管74HC595芯片AVR單片機(jī)控制.7z (71.49 KB, 下載次數(shù): 43)

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:196705 發(fā)表于 2017-5-4 22:39 | 顯示全部樓層
用的編程環(huán)境是Atmel Studio 7 和Proteus 8
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清在线观看 | 一区二区三区成人 | 香蕉视频91 | 插插插干干干 | 最大av在线 | 午夜网 | 伊人久久在线观看 | 国产精品一区二区三区在线 | 免费观看一区二区三区毛片 | 一区二区三区四区在线视频 | 久草中文在线 | 午夜一区 | 久久综合久色欧美综合狠狠 | 欧美一二三四成人免费视频 | 欧美精品一区三区 | 精品乱子伦一区二区三区 | 成人免费激情视频 | 国产一区二区不卡 | 新疆少妇videos高潮 | 综合久| 国产午夜精品久久久久免费视高清 | 男人电影天堂 | 99精品在线| 91在线精品视频 | 国产精品久久久久久久岛一牛影视 | 国产黄视频在线播放 | 高清av在线 | 91精品国产高清久久久久久久久 | 国产日屁 | 国产精品视频免费 | 免费一区二区三区 | 天堂一区二区三区 | 国产在线aa | 色又黄又爽网站www久久 | 91麻豆精品国产91久久久更新资源速度超快 | 久久精品国产一区 | 成人在线观看网站 | 99亚洲精品 | 男人天堂久久 | 久久国产婷婷国产香蕉 | 日韩中文一区二区 |