Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
1,5 MB
Nội dung
ĐỒN THANH NIÊN CỘNG SẢN HỒ CHÍ MINH BAN CHẤP HÀNH TP HỒ CHÍ MINH CƠNG TRÌNH DỰ THI GIẢI THƯỞNG SINH VIÊN NGHIÊN CỨU KHOA HỌC EURÉKA LẦN THỨ XIX NĂM 2017 TÊN CƠNG TRÌNH: HỆ THỐNG BÁN VÉ THÔNG MINH LĨNH VỰC NGHIÊN CỨU: KỸ THUẬT CÔNG NGHỆ CHUYÊN NGÀNH: ĐIỆN, ĐIỆN TỬ Mã số cơng trình: …………………………… MỤC LỤC DANH MỤC HÌNH LỜI MỞ ĐẦU .4 Tính cấp thiết đề tài .4 Mục đích nghiên cứu Nội dung nghiên cứu CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Tổng quan toán tự động 1.1.1 Khái niệm 1.1.2 Thanh toán truyền thống hạn chế 1.1.3 Mục tiêu đề tài .6 1.1.4 Giải pháp toán tự dộng CHƯƠNG GIỚI THIỆU VỀ LINH KIỆN, THIẾT BỊ 2.1 Đầu đọc tiền giấy NV9 2.1.1 Giới thiệu chung 2.1.2 Cấu tạo 2.1.3 Thông số kỹ thuật .8 2.1.4 Nguyên lý hoạt động 2.2 Thiết bị Payout Note 10 2.2.1 Giới thiệu .10 2.2.2 Thông số kỹ thuật 10 2.2.3 Nguyên lý hoạt động 10 2.3 Vi điều khiển STM32F103VTC6 .11 2.3.1 Giới thiệu chung .11 2.3.2 Sơ đồ chân vi điều khiển 12 2.3.3 Chức chân vi điều khiển .12 2.3.4 Tổ chức nhớ 13 2.4 Màn hình cảm ứng LCD HMI 15 2.5 Máy in nhiệt mini .16 2.6 IC nguồn .17 2.6.1 LM2576 .17 2.6.2 LD1085 17 2.6.3 LM1117 .18 CHƯƠNG 3: TÍNH TỐN, THIẾT KẾ 20 3.1 Sơ đồ khối 20 3.2 Tính tốn thiết kế 21 3.2.1 Khối điều khiển 21 3.2.2 Khối nguồn 21 3.3 Sơ đồ nguyên lý 22 3.4 Nguyên lý hoạt động 25 3.4.1 Giai đoạn khởi động 25 3.4.2 Giai đoạn hoạt động .25 CHƯƠNG 4: THI CƠNG MƠ HÌNH .26 4.1 Mạch in 26 4.2 Mạch thực tế 27 4.3 Giao tiếp với máy tính 28 4.4 Lưu đồ giải thuật 29 4.4.1 Lưu đồ giải thuật hệ thống 29 4.4.2 Lưu đồ giải thuật NV 30 4.4.3 Lưu đồ giải thuật Payout 31 4.4.4 Lưu đồ giải thuật PC 32 4.4.5 Lưu dồ giải thuật LCD 33 4.4.6 Lưu đồ giải thuật máy in nhiệt mini 34 CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ 35 5.1 Kết luận 35 5.1 Kiến nghị 35 TÀI LIỆU THAM KHẢO 36 PHỤ LỤC 37 DANH MỤC HÌNH Hiǹ h 2.1: Đầu đọc xác định mệnh giá tiền VNĐ NV9 Hiǹ h 2.2: Các chân kết nối NV9 .8 Hình 2.3: Chức chân kết nối chân N9 .9 Hình 2.4: Thiết bị tích hợp thối tiền cho NV9 (smart pauout) 10 Hình 2.5: Các dịng chip STM32 11 Hình 2.6: Sơ đồ chân vi điều khiển STM32F103VTC6 12 Hình 2.7: Tổ chức nhớ vi điêu khiển .14 Hình 2.8: Màn hình LCD HMI 15 Hình 2.9: Máy in nhiệt 16 Hình 2.10: Ký hiệu IC LM2576 .17 Hình 2.11: Ký hiệu IC LD1085 18 Hình 2.12:Ký hiệu IC LM1117 19 Hình 3.1: Sơ đồ khối mạch 20 Hình 3.2: Mạch nguyên lý 22 Hình 3.3: Mạch nguyên lý 23 Hình 3.4: Mạch nguyên lý 24 Hình 4.1: Mạch in .26 Hình 4.2: Mạch Demo 27 Hình 4.3: Phần mềm giao tiếp với điều khiển 28 Hình 4.4: Lưu đồ giải thuật hệ thống 29 Hình 4.5: Lưu đồ giải thuật NV 30 Hình 4.6: Lưu đồ giải thuật Payout 31 Hình 4.7: Lưu đồ giải thuật PC 32 Hình 4.8: Lưu đồ giải thuật LCD 33 Hình 4.9: Lưu đồ giải thuật máy in nhiệt 34 LỜI MỞ ĐẦU Tính cấp thiết đề tài Cùng với xu chung giới, máy giao dịch tự động xuất ngày nhiều Việt Nam Tuy nhiên, nay, hình thức kinh doanh chưa thể phát triển mạnh mẽ phổ biến.Điều xuất phát từ thực tế hầu hết máy giao dịch tự động Việt Nam đa phần sản phẩm nhập Các loại máy có đặc điểm là: + Chỉ chấp nhận toán tiền xu, nhận tiền polyme người mua hàng trả tiền thừa tiền xu Trong đó, dùng vào thị trường Việt Nam khơng có tiền xu để vận hành Điều dẫn đến số bất cập + Khơng linh hoạt hình thức tốn + Khơng giao dịch giá trị sản phẩm, sản phẩm bị giao dịch mức giá cao thấp + Giao dịch không thực người sử dụng dịch vụ khơng có tiền loại mệnh giá yêu cầu Mục đích nghiên cứu - Tạo hệ thống bán vé thông minh có khả tốn tiền VNĐ với tất loại mệnh giá, có khả thối tiền thừa - Với việc nghiên cứu đề tài “Hệ thống bán vé thơng minh” ta đưa thêm giải pháp, lựa chọn cho nhà quản lý, người sử dụng Đây hệ thống thuận tiện dễ lắp đặt, bảo trì, sữa chữa cần thiết Và hết tính minh bạch hệ thống làm việc khơng biết mệt mỏi Đây nói lựa chọn tốt cho việc tiết kiệm chi phí nhân cơng, nâng cao suất hoạt động hoạt động 24/24 Nội dung nghiên cứu Đề tài hệ thống bán vé thơng minh gồm có nội dung chính: - Điều khiển, giao tiếp thiết bị ngoại vi với vi điều khiển có hệ thống - Thao tác, sử dụng hệ thống thơng qua hình cảm ứng Touchscreen - Nhận tiền thông qua đầu đọc tiền giấy NV11 - In hóa đơn, vé sau hồn tất giao dịch CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Tổng quan toán tự động 1.1.1 Khái niệm Khái niệm tốn tự động khơng cịn q xa lạ người tiêu dung tồn giới nói chung nước Việt Nam nói riêng, hiểu tồn phần toán phiên giao dịch thực máy móc Với tốc độ phát triển nhanh hiệnnay việc mở rộng quy mô kinh doanh người kinh doanh điều tất yếu, bên cạnh việc mở rộng phải liền với hiệu Mở rộng quy mơ mà khơng có hiệu cao dẫn đến việc ảnh hưởng tốc độ phát triển doanh nghiệp Nền kinh tế phát triển, nhu cầu việc tự động hóa dịch vụ cao xem bước tiến cần thiết kinh tế đại hóa 1.1.2 Thanh tốn truyền thống hạn chế Trước tốn hoạt động điều có can thiệp người, có mặt người để đãm bảo cho việc toán diễn Dẫn đến việc người phải ln có mặt trực suốt thời gian diễn kinh doanh, để khách hàng đến mua thực giao dịch Việc dễ dẫn đến việc có nhiều thời gian bị lãng phí việc giao dịch khơng diễn liên tục Thời gian tiền bạc việc, thời gian trơi qua khơng thể lấy lại Với xuất thiết bị tốn tự động, giao dịch tốn hồn tồn phá bỏ rào cản Việc toán thực lúc, nơi, khơng cần có hỗ trợ người Việc giúp cho nói kinh doanh tận dụng nguồn tài nguyên người vào việc hữu dụng việc đứng vài chỗ cố định tốn hóa đơn Đồng thời góp phần cho doanh nghiệp tiết kiệm khoảng chi phí để trả cho nhân viên tốn 1.1.3 Mục tiêu đề tài Nghiên cứu chế tạo thiết bị, hệ giao dịch tự động nhằm cải thiện khả toán tạo thân thiện cho người sử dụng Áp dụng vào thực tiễn sống 1.1.4 Giải pháp toán tự dộng Với hình thức tốn này, người dùng khơng phải lo lắng chi phí phát sinh dịch vụ bị gián đoạn tốn chậm trễ Nền tảng cơng nghệ đại khiến toán tự động diễn gần tức thì, giúp tiết kiệm thời gian đáng kể Với hỗ trợ thiết bị tốn tự động thay cơng sức người chủ tiệm tạp hóa, khoản thời gian dành cho việc đứng chờ khách hàng tận dụng vào việc khác để phát triển nhiều cơng việc kinh doanh Tính tiện lợi triển khai áp dụng vào mơ hình kinh doanh điểm mạnh cho giải phát liên quan đến hình thức tốn tự động Đáp ứng tính tiện lợi khiến cho người kinh doanh bắt kịp xu hướng đời sống đại CHƯƠNG GIỚI THIỆU VỀ LINH KIỆN, THIẾT BỊ 2.1 Đầu đọc tiền giấy NV9 2.1.1 Giới thiệu chung Đây thiết bị thuộc dòng NV dùng để đọc tiền giấy hãng Innovation-echnology Đây thiết bị thân thiện với người sử dụng nhờ tính tích hợp khởi động nhanh, sử dụng linh hoạt nhiều loại tiền tệ giới tính ổn định, độ bền học cao Đây xem lựa chọn tốt việc toán tự động cách dễ dàng hợp lý Hin ̀ h 2.1: Đầu đọc xác định mệnh giá tiền VNĐ NV9 2.1.2 Cấu tạo Hộp đựng tiền (Cash Box): chứa tiền từ người thực giao dịch Hộp chứa tiền thừa (Note Float): chứa sẵn mệnh giá tiền để tiếng hành thối lại tiền thừa phiên giao dịch kết thúc (hoạt động có gắn thêm thiết bị Payout Note) Bộ phận nhận tiền phát tiền (NV9USB validator head): Nhận dạng mệnh giá tiền tiếng hành cất tiền hợp lệ Khả nhận dạng tiền: nhận dạng tiền có mệnh giá từ 2000 VNĐ đến 100.000 VNĐ 2.1.3 Thông số kỹ thuật Nguồn cung cấp: 10.8 V – 13.2V Dòng cup cấp: - Chế độ nghỉ: 200mA - Chế độ chạy: 1A - Tối đa: 1.5 A Nhận diện mức logic: - Mức thấp: – 0.5V - Mức cao: 3.7 – 12V Giao diện kết nối: NV9 hỗ trợ nhiều chuẩn giao tiếp kết nói : SSP, Pulse, MDB, ccTalk, SIO, Parallel Kết nối IO NV9: Hin ̀ h 2.2: Các chân kết nối NV9 Sơ đồ chân kết nối: Chân Miêu tả Chân truyền liệu TX Chân truyền liệu RX 11 USB Data + 12 USB Data - 13 USB Power (5V) 15 +Vcc 16 GND/0V Hình 2.3: Chức chân kết nối chân N9 2.1.4 Nguyên lý hoạt động Khi NV9, cảm biến màu sắc cảm biến hồng ngoại hoạt động, bên cạnh động chạy thử Nếu khơng có cố xảy đèn thơng báo tráng trạng thái trang bị bên chớp tắt tuần hoàn thể trạng thái sẵn sàng hoạt động Tiền giấy cho vào, đầu đọc quét tia hồng ngoại để kiểm tra tiền thật tiền giả, qua khâu kiểm tra tới khâu phân tích, ánh sáng chiếu vào tiền giấy, cảm biến ánh phân tích màu sắc phát Tùy theo phiên phần mềm mà nhà cung cấp hổ trợ cho nước sở mà đọc trực tiếp mệnh giá tờ tiền không cần thơng qua tùy chỉnh Bên cạnh khơng hổ trợ phiên phần mềm người thiết kế tùy chỉnh chế độ hoạt động máy để phù hợp với nước sở 58 { unsigned char cmd[4]; if(on) { sprintf((char *)cmd,"%c%c%c",0x1B,0x61,49);; } else { sprintf((char *)cmd,"%c%c%c",0x1B,0x61,48);; } HAL_UART_Transmit(&huart3,cmd,strlen((char *)cmd),1000); } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { int ii; if(huart->Instance==huart2.Instance) // for LCD { if(receive_lcd[0]==26||receive_lcd[0]==255) { } else { if (receive_lcd[0]!=13||receive_lcd[0]!=0||receive_lcd[0]!=26) //if received data different from ascii 13 (enter) { 59 receive_data_lcd[receive_data_lcd_index++]=receive_lcd[0]; //add data to Rx_Buffer } else //if received data = 13 { receive_data_lcd_index=0; Transfer_cplt_lcd =1;//transfer complete, data is ready to read } } HAL_UART_Receive_IT(&huart2, receive_lcd, 1); //activate UART receive interrupt every time } /* int i; if(huart->Instance == huart1.Instance) // for NV { if(Rx_index_NV==0){for(i=0;iInstance == huart1.Instance) { 60 if(Rx_indx_NV==0){for(inv=0;invInstance==huart3.Instance) // for Printer { HAL_UART_Receive_IT(&huart3, receive_data_Printer, 1); //activate UART receive interrupt every time } } /***************Printer_2*****************/ /* USER CODE END PFP */ /* USER CODE END */ int main(void) { /* USER CODE BEGIN */ /* USER CODE END */ /* MCU Configuration */ /* Reset of all peripherals, Initializes the Flash interface and the Systick */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ 61 /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI1_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); MX_USART3_UART_Init(); MX_UART4_Init(); MX_UART5_Init(); /* USER CODE BEGIN */ SYNC_CMD();HAL_Delay(100); GET_DEVICE_SETUP(); SYNC_CMD();HAL_Delay(100); HOST_PROTOCOL();HAL_Delay(100); POLL_CMD();HAL_Delay(100); POLL_CMD();HAL_Delay(100); cmd_SETUP_REQUEST();HAL_Delay(100); cmd_SET_VALUE_ROUTE(0x43,5000,"VND");HAL_Delay(100); SET_INHIBITS(0x00,0xFF);HAL_Delay(100); ENABLE_CMD();HAL_Delay(100); re_set(); HAL_Delay(100); SYNC_CMD(); HAL_UART_Receive_IT(&huart1,&receive_data_nv,1); // bat nhan uart HAL_UART_Receive_IT(&huart2,receive_lcd,1);// bat nhan uart //HAL_UART_Receive_IT(&huart3,receive_lcd,1);// bat nhan uart //HAL_UART_Receive_IT(&huart3,receive_lcd,1); /* USER CODE END */ 62 /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN */ checkDataReceiveLCD(); if(active_NV==1) { while(1) { HAL_UART_Receive_IT(&huart1,Rx_data_NV,1); // bat nhan uart HAL_Delay(50); sendValueToLCD(val,"sotien");// bo bot di 000 HAL_UART_Receive_IT(&huart2,receive_lcd,1); checkDataReceiveLCD(); HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); while(check) { HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); HAL_Delay(300); check ;// them check vao checkDataReceiveLCD test check =1; de lay gia tri tempCheckExchance=numberToExchange; tempCheckToPrint=numberToTprint printTicket(tempCheckToPrint,tempCheckExchance,val_TE,val_NL,val_To 63 ngCong); val_TongNhan=val_TongCong+tempCheckExchance; sprintf(stringToPc_2,"[%d,%d,%d,%d,%d,%d]",val_TongNhan,val_TongCo ng,tempCheckToPrin ,val_NL,val_E,tempCheckExchance) HAL_UART_Transmit(&huart4, (unsigned char *)stringToPc_2,strlen((char *)stringToPc_2), 1000);//test hello uart1 } /***** for testing stringToPc[1]=(5+'0'); stringToPc[3]=(6+'0'); stringToPc[5]=(7+'0'); stringToPc[7]=(8+'0'); stringToPc[9]=(9+'0'); stringToPc[11]=(10+'0'); HAL_UART_Transmit(&huart4, (unsigned char *)stringToPc,strlen((char *)stringToPc), 1000);//test hello uart1 *****/ } } else { HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); //printf("hello world \n"); HAL_Delay(2000); HAL_UART_Transmit(&huart4, (unsigned char *)stringToPc,strlen((char *)stringToPc), 1000);//test hello uart1 //tempTestTien +=10; sendValueToLCD(tempTestTien,"sotien"); // chay 64 set_heat_time(); } /* USER CODE END */ } } /** System Clock Configuration */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler( FILE , LINE ); } /**Initializes the CPU, AHB and APB busses clocks */ 65 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLKRCC_CLOCKTYPE_SYSCLK RCC_CLOCKTYPE_PCLK1RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { _Error_Handler( FILE , LINE ); } /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /* SPI1 init function */ static void MX_SPI1_Init(void) { hspi1.Instance = SPI1; 66 hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi1) != HAL_OK) { _Error_Handler( FILE , LINE ); } } /* UART4 init function */ static void MX_UART4_Init(void) { huart4.Instance = UART4; huart4.Init.BaudRate = 9600; huart4.Init.WordLength = UART_WORDLENGTH_8B; huart4.Init.StopBits = UART_STOPBITS_1; huart4.Init.Parity = UART_PARITY_NONE; huart4.Init.Mode = UART_MODE_TX_RX; huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart4.Init.OverSampling = UART_OVERSAMPLING_16; 67 if (HAL_UART_Init(&huart4) != HAL_OK) { _Error_Handler( FILE , LINE ); } } /* UART5 init function */ static void MX_UART5_Init(void) { huart5.Instance = UART5; huart5.Init.BaudRate = 115200; huart5.Init.WordLength = UART_WORDLENGTH_8B; huart5.Init.StopBits = UART_STOPBITS_1; huart5.Init.Parity = UART_PARITY_NONE; huart5.Init.Mode = UART_MODE_TX_RX; huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart5.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart5) != HAL_OK) { _Error_Handler( FILE , LINE ); } } /* USART1 init function */ static void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 9600; 68 huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_2; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { _Error_Handler( FILE , LINE ); } } /* USART2 init function */ static void MX_USART2_UART_Init(void) { huart2.Instance = USART2; huart2.Init.BaudRate = 9600; huart2.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart2.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart2) != HAL_OK) { _Error_Handler( FILE , LINE ); } } 69 /* USART3 init function */ static void MX_USART3_UART_Init(void) { huart3.Instance = USART3; huart3.Init.BaudRate = 19200; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart3) != HAL_OK) { _Error_Handler( FILE , LINE ); } } /** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ 70 HAL_RCC_GPIOC_CLK_ENABLE(); HAL_RCC_GPIOA_CLK_ENABLE(); HAL_RCC_GPIOB_CLK_ENABLE(); HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|CS_ENC_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(RESET_ENC_GPIO_Port, RESET_ENC_Pin, GPIO_PIN_RESET); /*Configure GPIO pins : PC13 CS_ENC_Pin */ GPIO_InitStruct.Pin = GPIO_PIN_13|CS_ENC_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pin : RESET_ENC_Pin */ GPIO_InitStruct.Pin = RESET_ENC_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(RESET_ENC_GPIO_Port, &GPIO_InitStruct); } /* UER CODE BEGIN */ /* USER CODE END */ /** * @brief This function is executed in case of error occurrence * @param None * @retval None 71 */ void _Error_Handler(char * file, int line) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ while(1) { } /* USER CODE END Error_Handler_Debug */ } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* USER CODE BEGIN */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END */ #endif 72 /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ ... Mục đích nghiên cứu - Tạo hệ thống bán vé thơng minh có khả toán tiền VNĐ với tất loại mệnh giá, có khả thối tiền thừa - Với việc nghiên cứu đề tài ? ?Hệ thống bán vé thông minh? ?? ta đưa thêm giải... dung nghiên cứu Đề tài hệ thống bán vé thơng minh gồm có nội dung chính: - Điều khiển, giao tiếp thiết bị ngoại vi với vi điều khiển có hệ thống - Thao tác, sử dụng hệ thống thông qua hình cảm ứng... giải pháp, lựa chọn cho nhà quản lý, người sử dụng Đây hệ thống thuận tiện dễ lắp đặt, bảo trì, sữa chữa cần thiết Và hết tính minh bạch hệ thống làm việc mệt mỏi Đây nói lựa chọn tốt cho việc